前幾天編寫一個存儲過程,需要訪問遠程數據庫的字段,于是建立一個dbLink并建了同義詞:
1
2
|
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。
然后新建一個存儲過程調用該同義詞:
1
|
v_result mtb.sid%type; |
調用后發現提示:錯誤:PLS-00201: 必須聲明標識符 'MTB.SID';
經過多番查找發現確實是因為身份原因,這里需要注意一定要在被訪問的數據庫中賦予權限,具體代碼如下:
1
|
grant select on mytable to orcl; --orcl為用戶名 |
然后就編譯通過了。
總結
以上所述是小編給大家介紹的Oracle報存儲過程中調用DBLink同義詞出現錯誤:PLS-00201: 必須聲明標識符,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:https://www.cnblogs.com/Caesar525/archive/2018/03/19/8601396.html