[SQL ] MSSQL DBLINK ORACLE ERROR ORA-20001

楼主: sandre (优闲的日子~)   2020-05-07 11:29:15
数据库名称:MSSQL / ORACLE
数据库版本:2008 R2 / R11i
内容/问题描述:
以前没有在MSSQL DBLINK ORACLE 过
参考前辈的写法
出现错误讯息
在MSSQL中, Call oracle package
begin
EXEC(
' BEGIN
WIPR0004100_PKG.Submit_Request(?, ?);
END; '
, @x_request_id OUTPUT,@WIP) at oracle_apps
end;
第一次执行OK
第二次执行会出现ERROR
连结服务器 "oracle_apps" 的 OLE DB 提供者 "OraOLEDB.Oracle" 传回讯息
"ORA-20001: Oracle 错误 -20001: fnd_global.set_nls 中侦测到 ORA-20001: Oracle
错误 -2074: fnd_global.set_nls.set_parameter('NLS_LANGUAGE','TRADITIONAL
CHINESE') 中侦测到 ORA-02074: 在分布式交易中无法 SET NLS
已确认在ORACLE package WIPR0004100_PKG.Submit_Request
没有用到"fnd_global.set_nls"
如果第一次与第二次执行的时间拉长一点 (大约10秒)
则第二次就不会出现这个问题了
实在不想 + waitfor delay'00:00:05';
希望板上高手能提点提点!谢谢!!
作者: retsamsu   2020-05-07 13:34:00
帮你找一下 https://reurl.cc/MvjYWn
楼主: sandre (优闲的日子~)   2020-05-07 13:51:00
成功!!太感动了, +PRAGMA AUTONOMOUS_TRANSACTION; 就好了
作者: justoncetime (台北丛林好冷~)   2020-05-09 08:32:00
不透过个别API存取的原因?个别DB的商业逻辑层还是有原来的权限要顾吧?求指点迷津

Links booklink

Contact Us: admin [ a t ] ucptt.com