调用AS400 SP并将记录集返回到SQL Server

时间:2015-04-30 14:59:17

标签: sql sql-server stored-procedures db2 ibm-midrange

我在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临时表?它只是循环记录集并插入值的情况?关闭连接怎么样?

任何指针都会非常感激。

1 个答案:

答案 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它们放入临时表中。