日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sqlserver垮库查询_Oracle和SQLServer中实现跨库查询

發布時間:2023/11/29 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlserver垮库查询_Oracle和SQLServer中实现跨库查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、在SQLServer中連接另一個SQLServer庫數據

在SQL中,要想在本地庫中查詢另一個數據庫中的數據表時,可以創建一個鏈接服務器:

EXEC?master.dbo.sp_addlinkedserver?@server?=?N'別名',?@srvproduct=N'庫名',@provider=N'SQLOLEDB',?@datasrc=N'服務器地址'

EXEC?master.dbo.sp_addlinkedsrvlogin?@rmtsrvname?=?N'別名',?@locallogin?=?NULL?,?@useself=?N'False',?@rmtuser?=?N'用戶名',?@rmtpassword?=?N'密碼'

創建完后,就可以通過“Select * from別名.庫名.dbo.表名”來查詢了。

或者也可以手工創建:

二、在Oracle中連接另一個Oracle庫數據

在Oracle中,其實也類似,要連接到其他庫時,也需要創建一個類似這樣的連接:

create database link別名??connect to?模式名(用戶名)?identified by "密碼"?using 'TNS名';

注意:這里面的TNS名就是你需要連接的另一個庫的TNS名,而且是必需是在你當前連接的庫的服務器端所配置的TNS名。

例如:

create public database link DBLINK

connect to username identified by mypassword

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.28)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = ftnemr)

)

)';

創建完后,我們也就可以訪問了:“Select * from表名@別名”

如果使用的是PL/SQL開發工具,那么我們也可以直接在工具里創建:

三、在SQL Server中連接Oracle數據

同樣,也創建一個數據庫連接即可,這時我們采用Ole DB方式連接數據庫:

EXEC?master.dbo.sp_addlinkedserver?@server?=?N'別名',?@srvproduct=N'庫名',@provider=N'MSDAORA',?@datasrc=N'TNS名'

EXEC?master.dbo.sp_addlinkedsrvlogin?@rmtsrvname?=?N'別名',?@locallogin?=?NULL?,?@useself=?N'False',?@rmtuser?=?N'模式名',?@rmtpassword?=?N'密碼'

注意:這里面的TNS名,是在該SQL Server器端所配置的TNS名,不是在客戶端本地哦。

創建好了后,使用“select * from openquery(別名,'select * from???模式名.表名”來執行查詢。

要連接到其他類型的數據庫時,其實方式也類同,只要用相應的provider來連接即可。

四、在Oracle中連接SQL Server數據

在oracle中連接SQLServer也很類似,創建一個DBLink,但問題是,創建DBLink里,里面用的TNS名稱都是連接到Oracle的,沒有配置連接到SQL Server中的。

于是想到采用Oracle中的透明網關來實現,首先在Oracle的安裝名中裝上,Oracle Net Services和Oracle Transparent Gateways,?并在此項下選擇Oracle Transparent Gateway for Microsoft SQL Server。

配置透明網關,編輯%ORACLE_HOME%/tg4msql/admin/init%ORACLE_SID%.ora,?該文件包含了TG for SQL Server的配置信息,?其中%ORACLE_SID%是給TG的"SID",?默認為tg4msql.?修改文件中的行HS_FDS_CONNECT_INFO="SERVER=SQL服務器地址;DATABASE=庫名"。

然后創建監聽器:編輯%ORACLE_HOME%/network/admin/listener.ora,?編輯對應listener的SID_LIST:

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=%ORACLE_SID%)

(ORACLE_HOME=oracle_home_directory)

(PROGRAM=tg4msql)

)

)

其中%ORACLE_SID%為第二布中設置的SID,?默認值為tg4msql.?修改listener.ora文件后需重啟listener使修改生效.

最后就可以配置TNS名了,如果直接修改Tnsname.ora文件的話,添加的格式是:

TNS名=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=TCP)(HOST=sqlserver)(PORT=1521))

(CONNECT_DATA=(SID=網關ID))

(HS=OK))

這樣,TNS名后就可以創建DB Links,然后查詢的方式與前面一至。

總結

以上是生活随笔為你收集整理的sqlserver垮库查询_Oracle和SQLServer中实现跨库查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。