从另一个存储过程调用Sybase存储过程

问题描述:

我调用一个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

尝试捕获结果的临时表设置,像这样:

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://*.com/questions/166080/how-cani-i- get-data-from-a-stored-procedure-into-a-temp-table),我没有sybase实际尝试这些,但我一直这样做(十多年前,所以我不会不记得它确切) – 2010-08-31 15:46:10

这里是你想做的事:

主要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