我试图使用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
解决方案完成后,我将更新更多详细信息
感谢您的帮助