从SSIS OLE DB命令执行Oracle函数



我试图使用ole db命令从oracle调用oracle的函数,我的连接设置正确,但我认为我的调用该函数的语法不正确?

EXEC UPDATE_PERSON ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? output

我已经在SQL存储的Proc进行了测试&它起作用了。Oracal连接是第三方&他们刚刚提供了函数名称&预期参数。我应该得到1个返回参数。

错误:

Error at Data Flow Task [OLE DB Command [3013]]: SSIS Error Code DTS_E_OLEDBERROR. AN OLE DB error has occurred. Error code 0x80040e14.
An OLE DB record is available. Source: "Microsoft OLE DB Provider for Oracle" Hresult: 0x80040E14
Description: "ORA-00900: invalid SQL statement".

在您的语法中,您必须将命令" excu"更改为" exec"。

exec update_person?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,,?,,?输出我必须提到,{}

不需要

除此之外

问候,s.andoura

尝试将其包装在卷发括号中:

{EXEC UPDATE_PERSON ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? output}

我认为Oracle功能没有输出参数 - 您绝对确定这是一个函数而不是Proc?功能通常也不执行更新。

语法:

SELECT crm_customer.UPDATE_PERSON( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) FROM dual

解决方案完成后,我将更新更多详细信息

感谢您的帮助

最新更新