【发布时间】:2022-01-23 18:58:49
【问题描述】:
我正在尝试使用 Visual Studio SSIS 中的 SQL 任务来获取存储到变量的两个输出值。
我已经对这个问题进行了一系列谷歌搜索,并且能够让插入工作,但我似乎看不到输出值。
我尝试过同时使用“?”和@NameVariables,但我运气不佳。
SELECT `LocalUnitCode`,`IBDAuditCode`
FROM `tablename`.`provenance`
WHERE `DataCaptureTool` <> 'DataCaptureTool'
AND RIGHT(REVERSE(`IBDR_Source`),LENGTH(`IBDR_Source`)-LOCATE('_',REVERSE(`IBDR_Source`))) = ?;
或
SELECT `LocalUnitCode`,`IBDAuditCode`
FROM `tablename`.`provenance`
WHERE `DataCaptureTool` <> 'DataCaptureTool'
AND RIGHT(REVERSE(`IBDR_Source`),LENGTH(`IBDR_Source`)-LOCATE('_',REVERSE(`IBDR_Source`))) = @Source;
或
SET @LocalUnitCode =
(SELECT `LocalUnitCode`
FROM `tablename`.`provenance`
WHERE `DataCaptureTool` <> 'DataCaptureTool'
AND RIGHT(REVERSE(`IBDR_Source`),LENGTH(`IBDR_Source`)-LOCATE('_',REVERSE(`IBDR_Source`))) = @Source);
不太确定是语法有问题还是参数映射或结果集需要更改。如果我尝试按照用于 SQL Server 的指南进行操作,它似乎无法正常运行。
任何正确方向的指针将不胜感激。
谢谢,
大卫
这是我在 SQL 语句中使用的代码:
SELECT ? = `LocalUnitCode`, ? = `IBDAuditCode`
FROM `ibdr_staging_K`.`provenance`
WHERE `DataCaptureTool` <> 'DataCaptureTool'
AND RIGHT(REVERSE(`IBDR_Source`),LENGTH(`IBDR_Source`)-LOCATE('_',REVERSE(`IBDR_Source`))) = ?;
【问题讨论】:
-
错误信息是什么?
-
发布一些执行 SQL 任务的屏幕截图。主选项卡,参数和结果集,如果您愿意的话
-
这是我目前收到的错误消息:[执行 SQL 任务] 错误:执行查询“SELECT ? =
LocalUnitCode, ? =IBDAuditCodeFR...”失败并显示以下内容错误:“字符串 [1]:大小属性的大小为 0 无效。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或者连接没有正确建立。 -
对于连接类型 ADO.NET,您应该使用 @parametername 映射到变量,您可以在“参数映射”选项卡中定义这些变量
标签: mysql input ssis ado.net output