Oracle
ORA-00905: 嘗試創建同義詞時缺少關鍵字
當我嘗試創建這樣的同義詞時遇到問題:
CREATE SYNONYM B2H.BILLING_USER_ACTIVITY@PACOMNET FOR B2H.BILLING_USER_ACTIVITY@PACOMNET.US.ORACLE.COM;
為什麼會發生這種情況,我該如何糾正?
正如文件暗示的那樣,您只能在目前數據庫中創建同義詞。所以
@PACOMNET
同義詞名稱中的第一個是不必要的(並導致錯誤)。您應該改為連接到PACOMNET
數據庫並執行CREATE SYNONYM B2H.BILLING_USER_ACTIVITY FOR B2H.BILLING_USER_ACTIVITY@PACOMNET.US.ORACLE.COM;
在 Oracle 中,不允許對遠端數據庫進行 DDL。一個可能的原因是無法在遠端站點啟動分佈式事務送出(您不能
COMMIT@remote
),並且由於 DDL 語句包含送出,因此它們是不允許的。你會得到一個
ORA-02021
with 其他 DDL 語句:遠端數據庫上不允許 DDL 操作
您可以通過直接連接到遠端數據庫來創建數據庫連結。
正如 askTom 討論中所建議的,您還可以使用
DBMS_JOB@remote
或DBMS_SCHEDULER@remote
創建可以啟動 DDL 語句的不同遠端事務。