Oracle儲存過程中呼叫DBLink同義詞出現錯誤:PLS-00201: 必須宣告識別符號

月黑殺人夜風高放火時發表於2018-03-19

前幾天編寫一個儲存過程,需要訪問遠端資料庫的欄位,於是建立一個dbLink並建了同義詞:

CREATE PUBLIC DATABASE LINK orcl@dbc CONNECT TO orcl  IDENTIFIED BY orcl USING `orcl`;

CREATE SYNONYM mtb FOR mytable@orcl@dbc

這裡之所以用orcl@bdc為dblink的名稱是為了設定global_names=true。

然後新建一個儲存過程呼叫該同義詞:

 v_result mtb.sid%type; 

呼叫後發現提示:錯誤:PLS-00201: 必須宣告識別符號 `MTB.SID`;

經過多番查詢發現確實是因為身份原因,這裡需要注意一定要在被訪問的資料庫中賦予許可權,具體程式碼如下:

grant select on mytable to orcl;--orcl為使用者名稱

然後就編譯通過了。

 

相關文章