【发布时间】:2016-06-09 11:45:51
【问题描述】:
全部。
我正在使用来自链接服务器的存储过程。我想使用ole db源中的过程。
我编写了在 SSIS 中工作的查询。
select ID,
LAST_NAME_ENG,
LAST_NAME_G,
FST_NAME_ENG,
FST_NAME_G,
BIRTHDATE
from openquery (linkedserver,
'exec [linkedserver].get_records @SESSION_ID = 12 , @SYSTEM = ''oCRM'', @ENTITY_NAME = ''CLIENT''
WITH RESULT SETS (([ID] [int] NOT NULL,
[LAST_NAME_ENG] [varchar](50) NOT NULL,
[LAST_NAME_G] [varchar](50) NOT NULL,
[FST_NAME_ENG] [varchar](50) NOT NULL,
[FST_NAME_G] [varchar](50) NOT NULL,
[BIRTHDATE] [date] NOT NULL))');
我可以在 SSIS ole db 源中使用它并成功获取所需的数据。但是在下一步就有问题了:
我需要将参数从 SSIS 传递给 @SESSION_ID 而不是“12”。而且我找不到正确的方法。
有很多建议使用动态 sql 并使用所需的参数值构造完整的查询字符串然后执行它,但如果我会这样做 - SSIS 无法从动态查询中获取列数据。
有办法解决吗? 任何想法都会有所帮助。
谢谢。
问好,尤里。
【问题讨论】:
-
为什么不直接连接到其他服务器?
-
很遗憾,我不允许这样做。
标签: sql-server stored-procedures ssis linked-server openquery