【发布时间】:2014-06-27 15:31:17
【问题描述】:
情况:SQL Server 2008 查询调用 Informix IDS 11.7 上的存储过程
我需要使用动态 SQL 在变量中捕获来自 N'SELECT * 的所有返回数据(不希望在临时表中)。
什么有效:数据可以从 Informix 正常返回,但我需要在表单的列名中使用它。
我尝试过的:
N'SELECT @Credit = *不起作用,因为在N'SELECT @Credit = cx.SP_Credit中没有引用来自 Informix SP 的列名称尝试使用
OpenQuery链接服务器,但实际上遇到了更多问题——无法从返回的 Informix 获取数据。
通用代码:
DECLARE @parameter NVARCHAR(32)
DECLARE @Credit NVARCHAR (32)
SET @parameter = N'@Credit NVARCHAR (32) OUTPUT'
DECLARE @SQL_TEXT NVARCHAR(1000)
SET @SQL_TEXT = N'Select * from OPENROWSET ( ''MSDASQL'' , ''DSN=Informix_DB'' , ''execute procedure an_informix_stored_procedure ("parameter1", "parameter2")'') as cx'
EXECUTE sp_executesql
@SQL_TEXT,
@parameter,
@Credit OUTPUT;
select @Credit as credit;
到目前为止的结果(我希望将“1-3”存储在当前为 NULL 的 Credit 列中):
想法?谢谢。
【问题讨论】:
标签: sql sql-server stored-procedures