你是要?dblink?到另外一個(gè)?oracle? ?還是 dblink 到一個(gè) sql server ?
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計(jì),遂平網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:遂平等地區(qū)。遂平做網(wǎng)站價(jià)格咨詢:18982081108
注:
如果創(chuàng)建全局dblink,必須使用systm或sys用戶,在database前加public。
SQL?CREATE?DATABASE?LINK?mydblink
2????CONNECT?TO?test?IDENTIFIED?BY?test123
3????USING?'(DESCRIPTION?=
4??????(ADDRESS_LIST?=
5????????(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?192.168.1.210)(PORT?=?1521)))
6????????(CONNECT_DATA?=?(SERVICE_NAME?=?orcl)
7??????)
8????)';
Database?link?created.
SQL?select?count(1)?from?user_tables@mydblink;
COUNT(1)
----------
6
上面的例子,是在當(dāng)前?Oracle?數(shù)據(jù)庫上面,創(chuàng)建一個(gè)?名字叫?mydblink?的數(shù)據(jù)庫鏈接。
使用?test作為用戶名,test123?作為密碼。
訪問的遠(yuǎn)程數(shù)據(jù)庫,ip地址是?192.168.1.210,端口號(hào)是默認(rèn)的?1521
遠(yuǎn)程服務(wù)器的服務(wù)名是?orcl
Oracle?連接?SQL?Server
需要去下載?額外的?網(wǎng)關(guān)程序
注意:
本次測(cè)試
Oracle?(10.2.0.1.0)??服務(wù)器?ip?地址:?192.168.1.210
SQL?Server?(2005?開發(fā)者版本)??服務(wù)器名(SQL2005)
下載下來的
10201_gateways_win32.zip
該?gateways?程序
可安裝在?SQL?Server?那臺(tái)計(jì)算機(jī)上
本次網(wǎng)關(guān)程序,被安裝在?
D:\oracle\product\10.2.0\tg_1
目錄下.
安裝過程會(huì)提示輸入?SQL?Server?數(shù)據(jù)庫的信息。
該信息會(huì)被生成在
D:\oracle\product\10.2.0\tg_1\tg4msql\admin
目錄下的
inittg4msql.ora
文件中。
將其復(fù)制粘貼為文件名
initTest2005.ora
然后修改內(nèi)容
#?This?is?a?sample?agent?init?file?that?contains?the?HS?parameters?that?are
#?needed?for?the?Transparent?Gateway?for?SQL?Server
#
#?HS?init?parameters
#
HS_FDS_CONNECT_INFO=SQL2005.test
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
下一步,修改
D:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN
目錄下的
listener.ora
文件。
SID_LIST_LISTENER?=
(SID_LIST?=
(SID_DESC?=
(SID_NAME?=?PLSExtProc)
(ORACLE_HOME?=?D:\oracle\product\10.2.0\tg_1)
(PROGRAM?=?extproc)
)
#?追加開始
(SID_DESC?=
(SID_NAME?=?Test2005)
(ORACLE_HOME?=?D:\oracle\product\10.2.0\tg_1)
(PROGRAM?=?tg4msql)
)
#?追加結(jié)束
)
LISTENER?=
(DESCRIPTION_LIST?=
(DESCRIPTION?=
(ADDRESS?=?(PROTOCOL?=?IPC)(KEY?=?EXTPROC1))
(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?SQL2005)(PORT?=?1521))
)
)
下一步,運(yùn)行??lsnrctl?stop?/?lsnrctl?start
C:\lsnrctl?stop
輸出略...
C:\lsnrctl?start
部分輸出略...
服務(wù)?"Test2005"?包含?1?個(gè)例程。
例程?"Test2005",?狀態(tài)?UNKNOWN,?包含此服務(wù)的?1?個(gè)處理程序...
命令執(zhí)行成功
下一步,修改?
D:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN
目錄下的
tnsnames.ora
文件
EXTPROC_CONNECTION_DATA?=
(DESCRIPTION?=
(ADDRESS_LIST?=
(ADDRESS?=?(PROTOCOL?=?IPC)(KEY?=?EXTPROC1))
)
(CONNECT_DATA?=
(SID?=?PLSExtProc)
(PRESENTATION?=?RO)
)
)
#?追加開始
TEST2005?=?
(DESCRIPTION?=
(ADDRESS_LIST?=
(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?SQL2005)(PORT?=?1521))
)
(CONNECT_DATA?=
(SID?=?Test2005)
)
(HS?=?OK)
)
#?追加結(jié)束????
tnsping?測(cè)試是否正常。
C:\tnsping?test2005
TNS?Ping?Utility?for?32-bit?Windows:?Version?10.2.0.1.0?-?Production?on?03-10月-
2011?14:03:03
Copyright?(c)?1997,?2005,?Oracle.??All?rights?reserved.
已使用的參數(shù)文件:
D:\oracle\product\10.2.0\tg_1\network\admin\sqlnet.ora
已使用?TNSNAMES?適配器來解析別名
Attempting?to?contact?(DESCRIPTION?=?(ADDRESS_LIST?=?(ADDRESS?=?(PROTOCOL?=?TCP)
(HOST?=?SQL2005)(PORT?=?1521)))?(CONNECT_DATA?=?(SID?=?Test2005))?(HS?=?OK))
OK?(50?毫秒)
創(chuàng)建數(shù)據(jù)庫鏈接?(DBLINK)
CREATE?DATABASE?LINK?mssql2005
CONNECT?TO?"test"?IDENTIFIED?BY?"test123"
USING?'(DESCRIPTION?=
(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?SQL2005)(PORT?=?1521))
(CONNECT_DATA?=?(SID?=?Test2005)
(HS?=?OK)
)
)';
SELECT?*?FROM?test@mssql2005;
客戶端鏈接到服務(wù)器端,在客戶端登陸頁面sql*plus,輸入數(shù)據(jù)庫用戶名,口令,以及主機(jī)字符串就OK,如果服務(wù)器是另一臺(tái)主機(jī),主機(jī)字符串為:服務(wù)器IP地址oracle要求服務(wù)器ip為固定的ip+ "/" + oracle_sid名;oracle_sid名是oracle數(shù)據(jù)庫的實(shí)例名,在tnsname.ora文件中可以查看,listener.ora文件中記錄著數(shù)據(jù)庫服務(wù),允許客戶端鏈接服務(wù)器,建議樓主用PL/SQL工具,它對(duì)于oracle數(shù)據(jù)庫的開發(fā),維護(hù)都是非常方便的!
EXEC sp_addlinkedserver
@server='Province', --被訪問的服務(wù)器別名
@srvproduct='ORACLE', --SqlServer默認(rèn)不需要寫
@provider='MSDAORA', --不同的庫都是不一樣的,OLE DB字符
@datasrc='192.168.88.88/ORCL'--要訪問的服務(wù)器
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname='Province', --被訪問的服務(wù)器別名
@useself='false', --固定這么寫
@locallogin='sa', --本地操作應(yīng)戶名
@rmtuser='kobe', --被訪問的服務(wù)器用戶名
@rmtpassword='kobe123'--被訪問的服務(wù)器用密碼
GO
--參數(shù)解釋:
sp_addlinkedserver:創(chuàng)建一個(gè)鏈接的服務(wù)器,使其允許對(duì)分布式的、針對(duì) OLE DB 數(shù)據(jù)源的異類查詢進(jìn)行訪問。
sp_addlinkedsrvlogin:創(chuàng)建或更新本地 Microsoft? SQL Server? 實(shí)例上的登錄與鏈接服務(wù)器上遠(yuǎn)程登錄之間的映射。
現(xiàn)在測(cè)試一下,用帳號(hào)sa本地登錄SqlServer,新建一個(gè)查詢,輸入
SELECT * FROM OPENQUERY(Province, 'select * from t_base_school')
比如:
SELECT organization_id,organization_name FROM OPENQUERY(Province, 'select * from t_base_organizationtree')
沒問題的話,就能查詢到數(shù)據(jù)了。
一些常用操作:
--查詢操作
SELECT * FROM OPENQUERY(Province, 'select * from t_base_duty')
--刪除操作
DELETE FROM OPENQUERY(Province, 'select * from t_base_duty')
--插入操作
INSERT INTO OPENQUERY (province,'SELECT * FROM t_base_role') (role_id,role_name,bureautype_id,is_system,b_use,field_order,b_del,identity_id) VALUES (10,'科比',7,1,0,1,0,2)
--更新操作
UPDATE OPENQUERY (province,'SELECT * FROM t_base_role') SET role_name='科比' WHERE role_id=10
注:技巧(OPENQUERY(Province, 'select * from t_base_duty') 看做是一張表)
前提是電腦必須安裝oracle客戶端。
配置方法:
1、找到oracle的安裝目錄。如:C:\oracle\product\10.2.0\db_1\network\ADMIN
2、找到tnsnames.ora文件。
3、用文本方式打開,添加以下內(nèi)容:
本地實(shí)例名?=
(DESCRIPTION?=
(ADDRESS?=?(PROTOCOL?=?TCP)(HOST?=?遠(yuǎn)程數(shù)據(jù)庫IP地址)(PORT?=?遠(yuǎn)程服務(wù)器端口號(hào)))
(CONNECT_DATA?=
(SERVER?=?DEDICATED)
(SERVICE_NAME?=?遠(yuǎn)程數(shù)據(jù)庫服務(wù)名)
)
)
其中中文部分是需要修改的部分,除第一個(gè)“本地實(shí)例名”外,其他需要跟遠(yuǎn)程數(shù)據(jù)庫管理員咨詢,本地實(shí)例名就是方便自己識(shí)別數(shù)據(jù)庫的一個(gè)名字,可以自定義。
4、然后打開pl/sql就能看到自己創(chuàng)建的鏈接,如圖:
當(dāng)前文章:oracle如何創(chuàng)建鏈接服務(wù)器,oracle數(shù)據(jù)庫怎么創(chuàng)建連接
鏈接地址:http://www.rwnh.cn/article18/dsdghgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)站導(dǎo)航、企業(yè)建站、定制開發(fā)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)