Oracle

ORA-00905: 嘗試創建同義詞時缺少關鍵字

  • November 12, 2012

當我嘗試創建這樣的同義詞時遇到問題:

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-02021with 其他 DDL 語句:

遠端數據庫上不允許 DDL 操作

您可以通過直接連接到遠端數據庫來創建數據庫連結。

正如 askTom 討論中所建議的,您還可以使用DBMS_JOB@remoteDBMS_SCHEDULER@remote創建可以啟動 DDL 語句的不同遠端事務。

引用自:https://dba.stackexchange.com/questions/28538