我們有2個數據庫之間用DBLink訪問,遠端DB是9206,本地是9201,以前本地訪問遠端都是好好的.現在出現了一個問題,直接用select語句訪問沒有什麼問題,但是把這個Select語句放在Procedure裡面,就必須在訪問的對象前面加owner,否則就會報ORA-03113的錯誤,並產生TRC文件.
舉個例子:
下面這兩句都可以正常執行:
SELECT * FROM aa1@mptr11iprod
DECLARE
v_test VARCHAR2(100);
BEGIN
SELECT TO_CHAR(COUNT(1)) INTO V_TEST FROM mhr.aa1@mptr11iprod WHERE ROWNUM=1;
END;
但是下面這個語句就回報ORA-03113的錯:
DECLARE
v_test VARCHAR2(100);
BEGIN
SELECT TO_CHAR(COUNT(1)) INTO V_TEST FROM aa1@mptr11iprod WHERE ROWNUM=1;
END;
不知道大家有沒有遇到這個問題,該如何解決.
補充一下:
就那上面的例子,aa1是遠端DB mhr用戶下面的一個表,本地dblink直接連過去的用戶是遠端的用戶scott,scott有select any table的權限, aa1在scott下面建了一個別名也叫aa1.
它有測試環境,測試環境卻很正常.
部分TRC文件內容如下:
/export/home/webora/admin/WEBPROD/udump/webprod_ora_19266.trc
Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit