从另一个存储过程调用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
答
这里是你想做的事:
主要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
不工作...的iget以下消息: 20:43:20.546 \t DBMS \t - 数(156)严重性(15)国(2)服务器不正确的关键字附近有语法“EXEC ”。 –
Chapax
2010-08-31 15:13:59
即使在订单更改后仍然不起作用 – Chapax 2010-08-31 15:37:01
试试这个:[如何从存储过程获取数据到临时表中?](http://*.com/questions/166080/how-cani-i- get-data-from-a-stored-procedure-into-a-temp-table),我没有sybase实际尝试这些,但我一直这样做(十多年前,所以我不会不记得它确切) – 2010-08-31 15:46:10