2010-08-31 247 views
1

我調用一個Sybase存儲過程X,它返回一個由servlet使用的數據。從另一個存儲過程調用Sybase存儲過程

在存儲過程X,存儲過程get_business_day被以下面的方式稱爲:

EXEC get_business_day @CBDate,-1,@prevBusDay輸出

所以,調用此(在DBArtisan將)的結果被:

2010年6月25日12:00:00.000上午
1行受影響。

的問題是,我不需要這個上面一行執行X時要輸出,作爲輸出我得到(在DBArtisan中)是:

6/25/2010 12:00:00.000 AM
-2817773441.669999

這顯然會影響servlet獲得的結果,因爲它只期望值-2817773441.669999。

有什麼辦法可以抑制調用X時出現get_business_day的輸出嗎?

THX Agnyata

回答

-1

嘗試捕獲結果的臨時表設置,像這樣:

CREATE TABLE #BadResultSet (DateOf datetime) 

INSERT INTO #BadResultSet (DateOf) 
EXEC get_business_day @CBDate, -1, @prevBusDay output 
+0

不工作...的iget以下消息: 20:43:20.546 \t DBMS \t - 數(156)嚴重性(15)國(2)服務器不正確的關鍵字附近有語法「EXEC 」。 – Chapax 2010-08-31 15:13:59

+0

即使在訂單更改後仍然不起作用 – Chapax 2010-08-31 15:37:01

+0

試試這個:[如何從存儲過程獲取數據到臨時表中?](http://stackoverflow.com/questions/166080/how-cani-i- get-data-from-a-stored-procedure-into-a-temp-table),我沒有sybase實際嘗試這些,但我一直這樣做(十多年前,所以我不會不記得它確切) – 2010-08-31 15:46:10

0

這裏是你想做的事:

主要PROC:

... 
create table #tmp(
    CBDate datetime 
) 
EXEC get_business_day @CBDate, -1 

select CBDate from #tmp 
-- use it 

drop table #tmp 
-- before end 

get_business_day:

create table #tmp(
    CBDate datetime 
) 
go 
create proc get_business_day 
as 

-- find the value to be inserted into @day 
insert into #tmp select @day 

go 

drop table #tmp 
go 
相關問題