開發過程中,經常會碰到需要從資料庫a中查詢另乙個資料庫b的某張表的資料,這是時候我們可以使用dblink來連線資料b進行資料查詢等;
如需在a資料庫中增刪改查(當然前提是你的登入使用者有許可權)b庫的表資訊,可以再a資料庫中建立dblink連線到資料庫b,dblink建立語法如下:
create database link dblink_name
connect to username identified by password
using '(description =
(address = (protocol = tcp)(host = 172.16.18.101)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = dzjs)
) )';
其中dblink_name:dblink名稱;
username:連線b資料庫的使用者名稱;
password:連線b資料庫的密碼;
單引號內的為b資料庫中的連線字元床(也就是oracle配置檔案tnsname.ora中的資料庫連線配置);
如需在資料庫a(以下簡稱庫a)中查詢資料庫b(簡稱庫b)中的表yy_zysfb0
查詢語句如下:
select * from yy_zysfb0@dblink_name就是在表明後面加上@dblink_name;
工作中遇到過的問題,通過oracle9!連線oracle12c
不同版本之間的oracle 通過dblink進行查詢等操作時,常見問題
oracle9!通過dblink連線oracle12c碰到的問題:
一、ora-28040: no matching authentication protocol
解決方法:出現這種原因就是因為版本不一致導致的,這個也很好解決
找到庫b的oracle安裝資料夾下sqlnet.ora檔案,新增sqlnet.allowed_logon_version_client=8 sqlnet.allowed_logon_version_server=8
即加上這兩句,後面版本號寫你庫b所在的版本號或比他小都可以。
二、ora-01017 invalid username/password;logon denied
問題分析:看見這個問題,我第一反應是,挖槽!誰***改資料庫密碼都不通知一聲啊,太猥瑣了,然後不死心的再用pl/sql試試,發現竟然能登入。。。,絕壁是我開啟方式不對,重來一遍,尼瑪還是能進。第二反應,肯定是我的dblink建立指令碼寫錯了,查了又查沒發現錯誤,只能使用終極方法,刪掉,重建,結果還是不行,進一步檢查發現使用者名稱轉化為大寫了,因此懷疑密碼也有可能轉化成大寫。
解決方法:
方法一:將登入庫b的使用者名稱密碼全部改為大寫,該方法太粗俗野蠻啦,棄之;
方法二:建立dblink指令碼的時候講密碼用雙引號引起來,如下:
create database link dblink_name
connect to username identified by 「password」
using '(description =
(address = (protocol = tcp)(host = 172.16.18.101)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = dzjs)
) )';
好了,問題已解決,到此結束!!
商務出現問題
今天tm開始找我抱怨,客戶方需要把我的job profile寫入合同 天啊,這個變化就大了,首先是這個job profile的工作就是乙個functional做的事情,而與我乙個abaper沒有多大的關係。但是在那邊我要負責他們從倉庫到財務,生產,質量等等與sap有關的所有的事情,這個包含的內容就非...
pod search 出現問題
問題入校 library ruby gems 2.3.0 gems cocoapods 1.5.3 lib cocoapods user inte ce error report.rb 135 inerror from podfile invalid byte sequence in utf 8 a...
oracle 配置出現問題
裝了好幾遍oracle 或許解除安裝不夠徹底 出現了無法登陸sqlplus 的現象 總出現 ora 12560錯誤 造成ora 12560 tns 協議介面卡錯誤的問題的原因有三個 1.監聽服務沒有起起來。windows平台個一如下操作 開始 程式 管理工具 服務,開啟服務面板,啟動oracleho...