[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