我在IBM AS400盒子上有一个SP,我需要调用它并将记录集返回到SQL Server 2012表中。我如何执行此操作是SQL Server的世界?
我从SQL Server那样调用IBM SP:
DECLARE @PC CHAR(20)
DECLARE @TIME CHAR(6)
DECLARE @WHLO CHAR(3)
DECLARE @BODT1 CHAR(8)
DECLARE @BODT2 CHAR(8)
DECLARE @SEAS CHAR(2)
SET @PC='XXXXXXXX'
SET @TIME ='142000'
SET @WHLO='100'
SET @BODT1='20150319'
SET @BODT2='00000000'
SET @SEAS='SS'
EXEC ('CALL XXXX.SL400SP(?, ?, ?, ?, ?, ?) ',
@PC, @TIME, @WHLO, @BODT1, @BODT2, @SEAS OUTPUT)
AT XXXXXXXXX
我的问题是,如何将上述结果集导入SQL Server临时表?它只是循环记录集并插入值的情况?关闭连接怎么样?
任何指针都会非常感激。
答案 0 :(得分:1)
您可以将结果插入到临时表中,如下所示:
CREATE TABLE #TEMP (id INT, ... [other columns defined here])
INSERT #TEMP
EXEC ('CALL XXXX.SL400SP(?, ?, ?, ?, ?, ?) ',
@PC, @TIME, @WHLO, @BODT1, @BODT2, @SEAS OUTPUT)
AT XXXXXXXXX)
SELECT * FROM #TEMP
DROP TABLE #TEMP
这将获取存储过程的结果,并将INSERT
它们放入临时表中。