4

我迫切需要帮助执行一个 Oracle 存储过程,该过程将 Oracle XMLTYPE 的 XML 作为输入并输出 Oracle XMLTYPE 的 XML。

我应该能够使用带有输入变量映射和输出变量映射的 SSIS 执行 SQL 任务来执行这个 Oracle 存储过程。

我尝试使用 OLEDB 适配器和 ADO.NET 适配器,但未能成功使其工作。

我能够通过使用表达式构建脚本来使输入变量类型工作,但无法获得输出。

如果有人致力于使用 XMLTYPE 数据类型执行 Oracle 存储过程,如果您能指出正确的方向,那将非常有帮助

这是我试图在 SSIS 中执行的 Oracle 存储过程。

declare
  x_api_call XMLTYPE := XMLTYPE('<APICall><SeqID>110682</SeqID></APICall>');
  x_result XMLTYPE; 
BEGIN
  XML_READ_API.GET_PERSON ( p_api_call => x_api_call, p_result => x_result );
END;

我试图在 SSIS 中执行上述 Oracle 过程,如下所示,并且很难确定变量连接类型和我应该用来捕获 XML 的变量类型。

declare
BEGIN
  XML_READ_API.GET_PERSON ( p_api_call => ?, p_result => ? );
END;

提前致谢。

4

1 回答 1

0

Xmltype是一个复杂的东西,包含 XML 文档的二进制表示。所以它作为两个这样不同的系统之间的接口类型标准化的可能性很小。

尝试在CLOB参数中将 XML 作为文本传递:

declare
  x_result XMLTYPE; 
BEGIN
  XML_READ_API.GET_PERSON ( p_api_call => XMLTYPE(?), p_result => x_result );
  ? := x_result.getCLOBVal;
END;

SQLFiddle illustration

于 2013-11-13T05:36:28.700 回答