本教程用示例來說明在Oracle數據中如何創建和刪除同義詞(SYNONYM)。
概念
同義詞是指數據庫對象(表、視圖、序列、存儲過程等數據庫對象)用另一個名字來引用。比如:
建立一個同義詞可以排除一個對象名字的限制.
如果你的數據庫有多個用戶,USER_A要訪問USER_B的TABLE1,只能使用USER_B.TABLE1
建一個同義詞abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同義詞會直接出現在所有用戶的面前,開發不就方便多了
創建同義詞
語法:
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.] synonym_name FOR [schema.] object_name [@dblink];
OR REPLACE: 在不使用DROP的前提下容許你重新創建(如果同義詞已經存在)。
PUBLIC: 所創建的同義詞是全局的同義詞,所有數據庫用戶都可以使用。
schema: 要創建同義詞的對象所在的schema,如果省略,則默認的應用對象在當前schema下。
object_name: 要創建同義詞的對象,它可以是以下幾種類型:
TABLEVIEWSEQUENCESTORED PROCEDUREFUNCTIONPACKAGEMATERIALIZED VIEWJAVA CLASS SCHEMA OBJECTUSER-DEFINED OBJECTSYNONYM示例:
CREATE PUBLIC SYNONYM suppliers FOR app.suppliers;示例中創建的同義詞名為suppliers,這樣,其他schema下的用戶可以使用該同義詞來使用app下的suppliers表而不必加上app。例如:
SELECT * FROM suppliers;
語法
DROP [PUBLIC] SYNONYM [schema.] synonym_name [FORCE];說明:
PUBLIC: 容許刪除PUBLIC同義詞, 如果使用了PUBLIC關鍵字,則可以省略schema。
FORCE:用來強制刪除同義詞,即使它在數據庫中有其它的依賴。
示例:
DROP PUBLIC SYNONYM suppliers;