oracle同義詞的作用 數(shù)據(jù)庫同義詞?
數(shù)據(jù)庫同義詞?數(shù)據(jù)庫同義詞是數(shù)據(jù)箱,數(shù)據(jù)書oracle數(shù)據(jù)庫中循環(huán)同義詞,怎么處理?1、 當(dāng)用程序連接或者用plsql查詢同義詞時(shí),如果出現(xiàn)ora-01775:同義詞的循環(huán)鏈這樣的問題。一般是因?yàn)榇?/p>
數(shù)據(jù)庫同義詞?
數(shù)據(jù)庫同義詞是數(shù)據(jù)箱,數(shù)據(jù)書
oracle數(shù)據(jù)庫中循環(huán)同義詞,怎么處理?
1、 當(dāng)用程序連接或者用plsql查詢同義詞時(shí),如果出現(xiàn)ora-01775:同義詞的循環(huán)鏈這樣的問題。一般是因?yàn)榇嬖谕x詞,但同義詞沒有相應(yīng)的對象。
2、 先查有沒有循環(huán)的同義詞。select * from dba_synonymswhere table_owner="TEST"and synonym_name<>table_name沒有記錄。
3、 再查同義詞沒有對象的數(shù)據(jù)庫對象select * from dba_synonymswhere table_owner="TEST"andsynonym_name in(select a.synonym_name from dba_synonyms a where a.table_owner="TEST"minusselect object_name from user_objects)4、 把查詢出來的結(jié)果進(jìn)行查詢表select * from DRILL_PRESON如果該同義詞沒有相應(yīng)的對象,則會包ora-01775的錯(cuò)誤5、 把這個(gè)同義詞刪除
Oracle數(shù)據(jù)庫同義詞管理的功能有什么驚喜呢?
Oracle同義詞的作用是:
1、 多用戶協(xié)同開發(fā)中,可以屏蔽對象的名字及其持有者。如果沒有同義詞,當(dāng)操作其他用戶的表時(shí),必須通過user名.object名的形式,采用了Oracle同義詞之后就可以隱蔽掉user名。當(dāng)然這里要注意的是:public同義詞只是為數(shù)據(jù)庫對象定義了一個(gè)公共的別名,其他用戶能否通過這個(gè)別名訪問這個(gè)數(shù)據(jù)庫對象,還要看是否已經(jīng)為這個(gè)用戶授權(quán)。
2、為用戶簡化sql語句。上面的一條其實(shí)就是一種簡化sql的體現(xiàn),同時(shí)如果自己建的表的名字很長,可以為這個(gè)表創(chuàng)建一個(gè)Oracle同義詞來簡化sql開發(fā)。
3、為分布式數(shù)據(jù)庫的遠(yuǎn)程對象提供位置透明性。擴(kuò)展資料:Oracle數(shù)據(jù)庫中提供了同義詞管理的功能。同義詞是數(shù)據(jù)庫方案對象的一個(gè)別名,經(jīng)常用于簡化對象訪問和提高對象訪問的安全性。在使用同義詞時(shí),Oracle數(shù)據(jù)庫將它翻譯成對應(yīng)方案對象的名字。與視圖類似,同義詞并不占用實(shí)際存儲空間,只有在數(shù)據(jù)字典中保存了同義詞的定義。在Oracle數(shù)據(jù)庫中的大部分?jǐn)?shù)據(jù)庫對象,如表、視圖、同義詞、序列、存儲過程、包等等,數(shù)據(jù)庫管理員都可以根據(jù)實(shí)際情況為他們定義同義詞。Oracle同義詞有兩種類型,分別是公用Oracle同義詞與私有Oracle同義詞。
數(shù)據(jù)的近義詞?
同義詞有兩種類型:私有(private)和公共(public)。私有的同義詞是在指定的模式中創(chuàng)建并且只有創(chuàng)建者使用的模式訪問。公共同義詞是由public指定的模式訪問,所有數(shù)據(jù)庫模式(用戶)都可以訪問它。
對于同一服務(wù)器上的不同數(shù)據(jù)庫,我們可以使用Synonym,將其他數(shù)據(jù)庫中的表或view或sprocs及udf在本數(shù)據(jù)庫中映射別名。這樣,就可以不用更改連接字符串,而在當(dāng)前對話數(shù)據(jù)庫的情況下,獲取其他數(shù)據(jù)庫的數(shù)據(jù),并對它進(jìn)行,查詢,更新,刪除和插入工作。
(2)同義詞的作用
(a)多用戶協(xié)同開發(fā)中,可以屏蔽對象的名字及其持有者?! ∪绻麤]有同義詞,當(dāng)操作其他用戶的表時(shí),必須通過user名.object名的形式,采用了同義詞之后就可以隱蔽掉user名,當(dāng)然這里要注意的是:public同義詞只是為數(shù)據(jù)庫對象定義了一個(gè)公共的別名,其他用戶能否通過這個(gè)別名訪問這個(gè)數(shù)據(jù)庫對象,還要看是否已經(jīng)為這個(gè)用戶授權(quán)?! ?b)為用戶簡化sql語句。如果自己建的表的名字很長,可以為這個(gè)表創(chuàng)建一個(gè)同義詞來簡化sql開發(fā)。 (c)為分布式數(shù)據(jù)庫的遠(yuǎn)程對象提供位置透明性。