【问题标题】:Call AS400 SP and return recordset into SQL Server调用 AS400 SP 并将记录集返回到 SQL Server
【发布时间】:2015-04-30 14:59:17
【问题描述】:

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

任何指针将不胜感激。

【问题讨论】:

  • 你能做一个select * from (exec....)吗?

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


【解决方案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它们放入临时表中。

【讨论】:

  • 好的,谢谢。我需要关闭 IBM 存储过程吗?我记得你必须在 VBA 中,但不确定 SQL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
相关资源
最近更新 更多