oracle訪問sqlserver
㈠ 如何用sqlserver連oracle
第一步 安裝好oracle客戶端,並配置好TNS信息
先配置好oracle的TNS連接信息.這個跟正常情況使用oraclep完全一樣
ORCL=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=123.456.176.42)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)
第二步 配置odbc信息
配置好odbc連接信息,sql server肯定不能直接調用oracle的客戶端去連接的,只能通過odbc的方式間接的去連.在你平時敲cmd的地方敲入odbc打開下面界面.你先去driver那地方看下有oracle的driver了不.裝好了oracle的客戶端的話肯定就會有的.
然後選user DSN,點Add ,選擇上一個畫面中看到的oracle driver.
出現這頁面後,在Data Source Name隨便輸入一個名字,這個名字就要後面sql server要用到的.TNS Service Name的下拉列表中就是oracle中配置好的TNS信息,如果你開始沒有配置的話這里就為空的.你選一個TNS名字後,可以點下test connection驗證下看連接上了不.
第三步 在sql server中配置
在前面創建好odbc數據源後就可以在sql server中配置了啊.先打開management studio.在server objects下面有個Linked Servers,選中它並右擊new linked server.打開如下頁面.在linked server中輸入一個名字,隨便取的,在後面執行sql時會用到這名字.provider就選Oracle Provider for OLE DB. proct name就填oracle
Data source就是你開始配置odbc時取的名字.其他地方就不用管了.然後再點下Security會彈出另一個頁面,在此頁面最下面的地方輸入用戶名和密碼,然後點OK。
㈡ 本地oracle里寫了個存儲過程,需要去取用別的伺服器上sqlserver資料庫里的數據,用dblink能否實現
可以的,首先要在oracle上安裝oracle的透明網關才能訪問sqlserver資料庫,安裝配置成功後,訪問sqlserver庫是就像訪問oracle內部dblink一樣
㈢ 如何通過代理伺服器訪問oracle資料庫
做埠映射,在代理伺服器上安裝埠映射工具,例如PortMap。然後進行配置,把代理伺服器的資料庫埠映射到資料庫伺服器的資料庫埠上。例如sqlserver是1433,oracle是1521.
這樣你訪問代理伺服器的資料庫埠就等於訪問資料庫伺服器的對應埠了。
為了更加安全,你還可以在客戶端上設置使用非默認的埠訪問代理伺服器,然後在代理伺服器上把你指定的埠映射到資料庫伺服器的資料庫埠。比如在代理伺服器上把8000埠映射到伺服器1433埠,然後在客戶端上配置為使用8000埠來訪問資料庫。這樣你就可以通過代理伺服器的8000埠來連接sqlserver資料庫了。
㈣ oracle 直接訪問sqlserver
1、在安裝了ORACLE9i Standard Edition或者ORACLE9i Enterprise Edition的windows機器上(IP:192.168.0.2), 產品要選了透明網關(Oracle Transparent Gateway)里訪問Microsoft SQL Server資料庫
$ORACLE9I_HOME\tg4msql\admin下新寫initpubs.ora和initnorthwind.ora配置文件.
initpubs.ora內容如下:
HS_FDS_CONNECT_INFO="SERVER=SQLSERVER_HOSTNMAE;DATABASE=pubs"
HS_DB_NAME=pubs
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
initnorthwind.ora內容如下:
HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=Northwind"
HS_DB_NAME=Northwind
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
$ORACLE9I_HOME\network\admin 下listener.ora內容如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test9)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = test9)
)
(SID_DESC=
(SID_NAME=pubs)
(ORACLE_HOME=d:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
(SID_DESC=
(SID_NAME=northwind)
(ORACLE_HOME=d:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
)
重啟動這台做gateway的windows機器上(IP:192.168.0.2)TNSListener服務.
(凡是按此步驟新增可訪問的SQL Server資料庫時,TNSListener服務都要重啟動)
2、ORACLE8I,ORACLE9I的伺服器端配置tnsnames.ora, 添加下面的內容:
pubs =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = pubs)
)
(HS = pubs)
)
northwind =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = northwind)
)
(HS = northwind)
)
保存tnsnames.ora後,在命令行下
tnsping pubs
tnsping northwind
出現類似提示,即為成功
Attempting to contact (DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
(PORT = 1521))) (CONNECT_DATA = (SID = pubs)) (HS = pubs))
OK(20毫秒)
Attempting to contact (DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
(PORT = 1521))) (CONNECT_DATA = (SID = northwind)) (HS = northwind))
OK(20毫秒)
設置資料庫參數global_names=false。
設置global_names=false不要求建立的資料庫鏈接和目的資料庫的全局名稱一致。global_names=true則要求, 多少有些不方便。
oracle9i和oracle8i都可以在DBA用戶下用SQL命令改變global_names參數
alter system set global_names=false;
建立公有的資料庫鏈接:
create public database link pubs
connect to testuser identified by testuser_pwd using 'pubs';
create public database link northwind
connect to testuser identified by testuser_pwd using 'northwind';
(假設SQL Server下pubs和northwind已有足夠許可權的用戶登陸testuser,
密碼為testuser_pwd)
訪問SQL Server下資料庫里的數據:
select * from stores@pubs;
...... ......
select * from region@northwind;
...... ......
3、使用時的注意事項
ORACLE通過訪問SQL Server的資料庫鏈接時,用select * 的時候欄位名是用雙引號引起來的。
例如:
create table stores as select * from stores@pubs;
select zip from stores;
ERROR 位於第 1 行:
ORA-00904: 無效列名
select "zip" from stores;
zip
-----
98056
92789
96745
98014
90019
89076
已選擇6行。
用SQL Navigator或Toad看從SQL Server轉移到ORACLE里的表的建表語句為:
CREATE TABLE stores
("stor_id" CHAR(4) NOT NULL,
"stor_name" VARCHAR2(40),
"stor_address" VARCHAR2(40),
"city" VARCHAR2(20),
"state" CHAR(2),
"zip" CHAR(5))
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
TABLESPACE users
STORAGE (
INITIAL 131072
NEXT 131072
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
)
/
總結:
WINDOWS下ORACLE9i網關伺服器在$ORACLE9I_HOME\tg4msql\admin目錄下的initsqlserver_databaseid.ora
WINDOWS下ORACLE9i網關伺服器listener.ora裡面
(SID_DESC=
(SID_NAME=sqlserver_databaseid)
(ORACLE_HOME=d:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
UNIX或WINDOWS下ORACLE8I,ORACLE9I伺服器tnsnames.ora裡面
northwind =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = sqlserver_databaseid)
)
(HS = sqlserver_databaseid)
)
sqlserver_databaseid一致才行.
來自(http://www.enet.com.cn/article/2004/0212/A20040212285219.shtml)
㈤ 如何從SQLServer到Oracle實現伺服器連接
工具/原料
SQLSERVER資料庫
企業管理器]鏈接伺服器
方法/步驟
1
步驟1:打開企業管理器,如下。
2
步驟2:選擇資料庫,安全性,點擊新建鏈接伺服器。
3
步驟3:選擇鏈接伺服器屬性,常規,輸入名稱:TEST,選擇ORACLE資料庫提供程序,輸入名稱、數據源。
4
步驟4:進行安全性設置。本地登錄,選擇SQLServer資料庫登錄用戶,遠程登錄用戶和密碼,輸入遠程連接資料庫的用戶和密碼,選擇用此安全上下文進行,輸入遠程登錄用戶和密碼。
5
步驟5:點擊TEST鏈接伺服器下的表,我們可以訪問ORACLE資料庫的表了。
注意:產品名稱要和所鏈接的伺服器相對應,使用ORACLE資料庫就要輸入ORACLE,使用SQLServer就輸入SQLServer。
㈥ Oracle連接到SqlServer,如何實現呢
直接用oracle的工具去連接sqlserver的資料庫是不行的,他們都是不同的資料庫程序了
並且2種資料庫在sql語法,數據類型和內置函數方面都是存在差異的
㈦ 如何用sqlserver連oracle
安裝好oracle客戶端,並配置好TNS信息。
配置好odbc連接信息,sql server肯定不能直接調用oracle的客戶端去連接的,只能通過odbc的方式間接的去連,先要打開odbc界面。
在Linked Servers下面會看到ORA_ARWEN,大功告成了。
㈧ 1.sql server 通過db link 怎麼訪問oracle
一、創建sqlserver鏈接服務(sqlserver鏈接oracle)
首先sqlserver 鏈接oracle可以通過兩個訪問介面:
「MSDAORA」 和「OraOLEDB.Oracle」
1、「MSDAORA」訪問介面是由Microsoft OLE DB Provider for Oracle提供的,這里建議不使用此介面進行鏈接。通過該訪問介面建立的鏈接伺服器在進行查詢oracle表(帶數據類型CLOB、BLOB欄位)時會報這個錯誤
技術分享
「
鏈接伺服器""的 OLE DB 訪問介面 "MSDAORA" 返回了消息 "發生了一個 Oracle 錯誤,但無法從 Oracle 中檢索錯誤信息。"。
鏈接伺服器""的 OLE DB 訪問介面 "MSDAORA" 返回了消息 "數據類型不被支持。"。
消息 7321,級別 16,狀態 2,第 1 行
准備對鏈接伺服器 "" 的 OLE DB 訪問介面 "MSDAORA" 執行查詢"select * from SYS_MESSAGE"時出錯。」
鏈接伺服器 "LINK2ORACLE" 的 OLE DB 訪問介面 "MSDAORA" 為列提供的元數據不一致。對象 ""CMCC"."OS2_GIS_CELL"" 的列 "ISOPENED" (編譯時序號為 20)在編譯時有 130 的 "DBTYPE",但在運行時有錯。
2、「OraOLEDB.Oracle」 訪問介面是由oracle 的Oracle Probider for OLE DB 驅動提供的。它解決了兩個資料庫類型不一致的的問題。而且如果需要使用分布式事務,必須使用它來創建鏈接伺服器。後文會有詳細介紹。
在創建之前,在SQLSERVER中,鏈接伺服器->訪問介面->OraOLEDB.Oracle->右鍵屬性,選中 "Allow inprocess" (中文為:允許進程內)
這一步是使我們選擇的OraOLEDB.Oracle介面打開執行操作。如未設置會報如下錯誤:
「無法初始化鏈接伺服器 "null" 的 OLE DB 訪問介面 "OraOLEDB.Oracle" 的數據源對象"
㈨ 如何將Oracle資料庫中的一張表導入到SqlServer中
看你上面說的方法應該是用ODBC,數據源是指你配置的oracle訪問名,首先你要安裝有oracle客戶端(如果你是在安裝了
oracle資料庫
的機器上操作就不需要再安裝oracle客戶端了),然後用Net
Configuration
Assistant
配置好你要訪問的oracle資料庫的訪問名。該訪問名就是上面你要填的數據源。你可以到oracle安裝目錄下,找到tnsnames.ora文件,裡面記錄了你配置的oracle資料庫訪問名。比如我的資料庫是10G的,該文件在目錄D:\oracle\proct\10.2.0\db_1\NETWORK\ADMIN
\tnsnames.ora
裡面你可以找到類似這樣的東西
你配的訪問名
=
(
DESCRIPTION
=
(ADDRESS
=
(PROTOCOL
=
TCP)(HOST
=
資料庫的IP地址或機器名)(PORT
=
1521))
(CONNECT_DATA
=
(SERVER
=
DEDICATED)
(SERVICE_NAME
=
資料庫的SID)
)
)
㈩ oracle如何遠程連接sqlserver資料庫
telnet 指令,遠程連接sqlserver資料庫所在機器,然後通過用戶名密碼就可以連上了