我有一个复制事件列表,这些事件在 ADF 管道中并行动态触发,以将数据从 Azure SQL 加载到 Oracle 9i 数据库。如果我的所有加载都成功完成,我需要更新 Oracle 上的状态表。
我尝试了该社区提供的多种方法,但没有成功。只是想知道我是否遗漏了什么。请问有什么指点吗?
方法 1: 在 Oracle 上创建 SP:
CREATE OR REPLACE PROCEDURE AZ.UPDATE_LOOKUP_TEST AS
BEGIN
update AZ.STATUS_DIM set Status='Completed' where Database ='NLM';
COMMIT;
END;
错误详细信息
错误代码 2100
故障类型
用户配置问题
详情
ErrorCode=InvalidParameter,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=属性'columns'的值无效:'值不能为空。参数名称:columns'.,Source=,''Type=System.ArgumentNullException,Message=Value 不能为空。参数名称:columns,Source=Microsoft.DataTransfer.Common,'
方法 2:
查找事件中的查询:
执行 AZURE45.UPDATE_LOOKUP_TEST;
错误:
“源”端发生故障。 ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,消息=ERROR [42000] [Microsoft][ODBC Oracle Wire Protocol 驱动程序][Oracle]ORA-00900:无效的 SQL 语句,源=Microsoft.DataTransfer。 ClientLibrary.Odbc.OdbcConnector,''Type=System.Data.Odbc.OdbcException,Message=ERROR [42000] [Microsoft][ODBC Oracle Wire Protocol 驱动程序][Oracle]ORA-00900:无效的 SQL 语句,源 = msora28.dll ,'
方法 3:
直接在Query中提供更新语句
查询:更新 AZ.STATUS_DIM set Status='Completed' where Database ='NLM';
错误:
ErrorCode=InvalidParameter,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=属性“columns”的值无效:“值不能为 null。参数名称:columns'.,Source=,''Type=System.ArgumentNullException,Message=Value 不能为空。参数名称:columns,Source=Microsoft.DataTransfer.Common,'
如何从 Azure 数据工厂执行 Oracle 存储过程?
最佳答案
有类似的问题。最终是 ADF 使用的 ODBC 驱动程序出现问题。它需要特定的语法。
我成功使用的语法是:
CALL NAMEOFPACKAGE_PKG.NameOfFuntion()
我从脚本事件中调用
关于oracle - 从 Azure 数据工厂 v2 在 Oracle 中执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65282135/