如何在使用Oracle OLE DB提供程序时解决SQL查询参数映射问题?

Ric*_*nce 9 oracle ssis

当尝试使用Oracle OLE DB提供程序输入带有参数的SQL查询时,我收到以下错误:

无法从SQL命令中提取参数.提供程序可能无法帮助解析命令中的参数信息.在这种情况下,使用"来自变量的SQL命令"访问模式,其中整个SQL命令存储在变量中.
附加信息:
提供程序无法派生参数信息,并且尚未调用SetParameterInfo.(适用于Oracle的Microsoft OLE DB提供程序)

我已尝试按照此处的建议,但不太了解所需内容:针对Oracle的参数化查询

有任何想法吗?

Ric*_*nce 18

要扩展问题中给出的链接:

  1. 创建一个包变量
  2. 双击包变量名称.(这允许您访问变量的属性)
  3. 将属性"EvaluateAsExpression"设置为true
  4. 在表达式构建器中输入查询.
  5. 从OLE中将OLE DB源查询设置为SQL命令

表达式构建器可以使用变量动态创建表达式以创建"参数化查询".
所以以下'正常'查询:

select * from book where book.BOOK_ID = ?
Run Code Online (Sandbox Code Playgroud)

可以在表达式构建器中编写为:

"select * from book where book.BOOK_ID = " + @[User::BookID]
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用表达式构建器执行空值处理和数据转换.