真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

oracle同義詞怎么用,oracle添加同義詞

oracle中什么是同義詞

相當于alias(別名),比如把user1.table1在user2中建一個同義詞table1

創(chuàng)新互聯是一家專注網站建設、網絡營銷策劃、微信小程序開發(fā)、電子商務建設、網絡推廣、移動互聯開發(fā)、研究、服務為一體的技術型公司。公司成立10余年以來,已經為上千余家成都濕噴機各業(yè)的企業(yè)公司提供互聯網服務?,F在,服務的上千余家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

create synonym table1 for user1.table1;

這樣當你在user2中查select * from table1時就相當于查select * from user1.table1;

優(yōu)點自己總結吧。

例如:

在oracle中對用戶的管理是使用權限的方式來管理的,也就是說,如果我們想使用數據庫,我們就必須得有權限,但是如果是別人將權限授予了我們,我們也是能對數據庫進行操作的,但是我們必須要已授權的表的名稱前鍵入該表所有者的名稱,所以這就是比較麻煩的,遇到這種情況,我們該怎么辦呢?創(chuàng)建個同義詞吧!這樣我們就可以直接使用同義詞來使用表了。

oracle數據庫中循環(huán)同義詞,怎么處理

1、 當用程序連接或者用plsql查詢同義詞時,如果出現ora-01775:同義詞的循環(huán)鏈這樣的問題。

一般是因為存在同義詞,但同義詞沒有相應的對象。

2、 先查有沒有循環(huán)的同義詞。

select * from dba_synonyms

where table_owner='TEST'

and synonym_nametable_name;

沒有記錄。

3、 再查同義詞沒有對象的數據庫對象

select * from dba_synonyms

where table_owner='TEST'

and

synonym_name in

(select a.synonym_name from dba_synonyms a where a.table_owner='TEST'

minus

select object_name from user_objects)

4、 把查詢出來的結果進行查詢表

select * from DRILL_PRESON

如果該同義詞沒有相應的對象,則會包ora-01775的錯誤

5、 把這個同義詞刪除

drop public synonym DRILL_PRESON

oracle同義詞

Oracle的同義詞(synonyms)從字面上理解就是別名的意思,和視圖的功能類似,就是一種映射關系。它可以節(jié)省大量的數據庫空間,對不同用戶的操作同一張表沒有多少差別;它擴展了數據庫的使用范圍,能夠在不同的數據庫用戶之間實現無縫交互;Oracle數據庫中提供了同義詞管理的功能。同義詞是數據庫對象的一個別名,經常用于簡化對象訪問和提高對象訪問的安全性。在使用同義詞時,Oracle數據庫將它翻譯成對應方案對象的名字。與視圖類似,同義詞并不占用實際存儲空間,只有在數據字典中保存了同義詞的定義

創(chuàng)建同義詞

CREATE SYNONYM SYSN_TEST FOR TEST;

查看同義詞

SELECT * FROM USER_SYNONYMS

使用同義詞

SELECT * FROM SYSN_TEST;

刪除同義詞

DROP SYNONYM SYSN_TEST;

oracle中什么是同義詞,它有幾種類型,不同類型同義詞的區(qū)別是什么?并寫出語法?

1、私有同義詞

只能被當前用戶訪問.

2、公有同義詞

可被所有的數據庫用戶訪問.

創(chuàng)建同義詞語法:

create [or replace] [public]

synonym 同義詞名稱

for [用戶名.]對象名;

注釋:[]中表示可寫、或不寫;[or replace]表示如果已經有了你要創(chuàng)建的同義詞就取代/替換原有的同義詞;[public]表示是否把同義詞公有

Oracle中使用同義詞介紹

一、背景

有兩個sid:Asid,Bsid,在Asid下有兩個用戶Auser1,Auser2,在Bsid下有一個用戶Buser1。其中Auser2和Buser1建立了dblink?,F希望通過登錄Buser1訪問Auser1上的三張表table1,table2,table3信息和函數function1。

二、步驟

①登錄Auser1對Auser2授權(若需要刪除則加上)

grant ,select,on table1 to Auser2;

grant ,select,on table2 to Auser2;

grant ,select,on table3 to Auser2;

grant execute on function1 to Auser2;

②登錄Auser2建立同義詞

create synonym table1 for Auser1.table1;

create synonym table2 for Auser1.table1;

create synonym table3 for Auser1.table1;

create synonym function1 for Auser1.function1;

③登錄Buser1查找db_link名(例如查出來的db_link名為mydblink1)

select username,db_link from user_db_links

④建立Buser1的同義詞

create synonym table1 for Auser2.table1@mydblink1;

create synonym table2 for Auser2.table2@mydblink1;

create synonym table3 for Auser2.table3@mydblink1;

create synonym function1 for Auser2.function1@mydblink1;

⑤測試

此時登錄Buser1通過select * from table1就可以訪問table1了。

三、注意點

也可以建立procedure的`同義詞,但是這樣執(zhí)行的過程中不允許commit。如果要提交的話請在如JDBC中commit()。

oracle數據庫procedure同義詞如何使用?

可以試試CREATE SYNONYM TEST FOR

PCKG_RAF_EFAS_INTERFACE.PROC_GET_ACCESS_TOKEN;

如果不行,可以再自己寫個存儲過程將這個調用存儲過程的部分代碼包起來,對外邊用戶使用來說,也是一樣的效果。


分享文章:oracle同義詞怎么用,oracle添加同義詞
轉載源于:http://weahome.cn/article/hsedhp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部