在ORACLE里A庫里建立一個同義詞可把B庫的X 表映射到A庫。這樣A庫就當本庫的表(虛擬式)使用。
成都創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站制作、成都網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元獲嘉做網(wǎng)站,已為上家服務,為獲嘉各地企業(yè)和個人服務,聯(lián)系電話:18982081108
Oracle的同義詞(synonyms)從字面上理解就是別名的意思,和試圖的功能類似,就是一種映射關系。本文介紹如何創(chuàng)建同義詞語句,刪除同義詞以及查看同義詞語句。
oracle的同義詞總結(jié):
從字面上理解就是別名的意思,和試圖的功能類似。就是一種映射關系。
1.創(chuàng)建同義詞語句:
create public synonym table_name for user.table_name;
其中第一個user_table和第二個user_table可以不一樣。
此外如果要創(chuàng)建一個遠程的數(shù)據(jù)庫上的某張表的同義詞,需要先創(chuàng)建一個Database Link(數(shù)據(jù)庫連接)來擴展訪問,然后在使用如下語句創(chuàng)建數(shù)據(jù)庫同義詞:create synonym table_name for table_name@DB_Link;
當然,你可能需要在user用戶中給當前用戶(user2)授權: grant select/delete/update on user2
首先登錄的用戶(user2為例)必須有操作要”跨用戶“的用戶(user1為例)權限。
如果有權限的話。登錄user2(conn user2/password)通過如下命令查看:”select a.name from user1.table1 a“;
解釋:當前登錄的用戶必須有訪問user1表table1權限限,之后就可以當做是“一個用戶”下的表完成跨用戶查詢。
如果沒有權限的話,需要登錄到user1給user2授權table1表查詢權限:grant select on table1 to user2;即可完成權限設置。
第一就是優(yōu)化網(wǎng)絡,如果網(wǎng)絡沒問題那就沒有別的辦法,只能從查詢語句上優(yōu)化。
因為你胯庫查詢時間消耗=在其他庫上面執(zhí)行查詢的時間+網(wǎng)絡傳輸時間。通常網(wǎng)絡不會有問題,所以只能優(yōu)化查詢語句
假定您現(xiàn)在擁有一個以Microsoft.NET為架構(gòu)的網(wǎng)絡訂購系統(tǒng),但是品管維護系統(tǒng)卻仍然使用一套舊式的Oracle數(shù)據(jù)庫應用程序。當您的顧客在產(chǎn)品保固期間下了產(chǎn)品更換之類的訂單,則該筆訂單將不收取任何費用。此時您需要從Oracle數(shù)據(jù)庫得到實時的查詢結(jié)果。借著建立連結(jié)服務器的方式(linkedServer),您將可以從SQLServer實時查詢出位于Oracle數(shù)據(jù)庫的顧客資料,找出誰是您既有的客戶。
當您的資料分散在不同的SQLServer數(shù)據(jù)庫時,藉由連結(jié)服務器可讓您執(zhí)行跨服務器之分布式查詢。當所有的數(shù)據(jù)庫服務器都是SQLServer,則連結(jié)服務器的設定十分容易,而且在SQLServer線上手冊中就涵蓋了您所需要了解的所有事項。然而,當部分資料是放在Oracle數(shù)據(jù)庫服務器的時候,這就可能帶給您許多挑戰(zhàn)。舉例來說,光是設定連結(jié)服務器就不是一件容易的事。您必須了解到:即是您要在SQLServer的EnterpriseManager設定一個Oracle連結(jié)服務器,這臺SQLServer對Oracle來說就是一個客戶端。所以您必須在SQLServer所在的服務器成功地安裝并組態(tài)Oracle之客戶端軟件。因為Oracle提供的產(chǎn)品只支持Oracle8以后的數(shù)據(jù)庫,所以我假設您正在使用的都是Oracle8以后的數(shù)據(jù)庫。在OracleNet8函式庫則提供了SQLServer所需要的客戶端軟件。
設定連接服務器時是利用Microsoft所提供的OLEDB ProviderforOracle,使用的Oracle網(wǎng)絡函式庫為SQL*Net2.3.3.0.4或是以后的版本,不過這是Oracle7.3數(shù)據(jù)庫所提供的。換句話說,要設定Oracle數(shù)據(jù)庫為SQLServer的連接服務器時,Oracle數(shù)據(jù)庫只要是7.3.3.4以后的版本,并搭配適當?shù)腟QL*Net或是Net8函式庫即可。
在Oracle數(shù)據(jù)庫中,一個schema即代表著SQLServer專家們所熟知的單一數(shù)據(jù)庫(譯者注2)。連接至Oracle數(shù)據(jù)庫時,您必須提供schema名稱、密碼以及主機聯(lián)機字符串(hoststring)。每一個特定的Oracle帳戶都擁有一個Oracleschema,而且只能有一個schema。所以schema名稱其實就等于該schema擁有者的帳戶名稱。您可以查詢Oracle的資料字典(Datadictionary)以得到更多有關schema的內(nèi)容。
至于Oracle聯(lián)機字符串又可稱為服務名稱(servicename)或是系統(tǒng)識別資料(SystenIdentifier,SID)。我們所謂的SQLServer數(shù)據(jù)庫個體(instance)在Oracle則稱為數(shù)據(jù)庫(database)。所以安裝OracleServer時,安裝程序OracleUniversalInstaller(為一個圖形接口之安裝程序,與SQLServer的Setup程序類似)將會詢問您SID名稱為何,以作為Oracle數(shù)據(jù)庫之名稱。
這個部分原作者所提到schema的解釋有點問題。Oracleschema可視為同一個使用者所擁有的所有數(shù)據(jù)庫對象(schemaobjects)之集合。舉例來說,使用者scott所建立的EMPtable其完整名稱為SCOTT.EMP,而SCOTT就是EMP的schema名稱。所以schemaname其實就是一個Oracle數(shù)據(jù)庫之使用者帳號。但是絕對不能拿來跟數(shù)據(jù)庫相提并論!因為SQLServer的數(shù)據(jù)庫架構(gòu)包含了datafiles與logfiles,但是Oracle的schemaobjects只存在于tablespace中。為了避免部分讀者產(chǎn)生混淆,特此說明。
是可以的,方法很多。我就說幾種比較常用的方法吧。
1、在程序中實現(xiàn):如 java 語言, 使用JDBC在B上連接C的數(shù)據(jù)庫.需要用到如下參數(shù)
Driver : oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:C的iP:1521:orcl
username : 連接數(shù)據(jù)庫的用戶名
password: 密碼
2、在B上使用工具 如(PLSQL Developer )
先在B上使用 oracle 的 net configuration assistant 工具(安裝完ORACLE后就有)配置C的數(shù)據(jù)庫連接,然后用 PLSQL Developer 連接就可以了 注意 數(shù)據(jù)庫這一欄要填剛才配置的別名 不是本地的數(shù)據(jù)庫名
文章標題:oracle跨庫怎么查詢 oracle跨庫查詢怎么授權
網(wǎng)站地址:http://vcdvsql.cn/article38/hhpssp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、建站公司、定制開發(fā)、網(wǎng)站設計、品牌網(wǎng)站設計、外貿(mào)網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)