當前位置:首頁 » 數據倉庫 » oracle訪問sqlserver資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle訪問sqlserver資料庫

發布時間: 2022-10-02 21:24:49

1. 如何同步ORACLE和sqlserver的數據

有時候項目開發的需要,必須將sqlServer中的某縣表同步到Oracle資料庫匯總,有其他系統來讀取這些數據,不同資料庫類型之間的數據同步我們可以使用連接伺服器和sqlAgent來實現。加入我們澤凱有一個和聽合同管理系統,其中有表contract和contract_project是需要同步到一個MIS系統中的ORACLE,那麼我們可以按照以下步驟實現數據的同步
1.在oracle資料庫中建立對應的contract和contract_project表,需要同步那些數據欄位我們就建立那些欄位到oralce表中
需要注意哦的是oralce的數據類型和SQLServer的數據類型是不一樣的,那麼他們之間是什麼樣的關系,我們可以再sqlServer下運行:
SELECT *
FROM msdb.dbo.MSdatatype_mappings

來查看sqlServcer和oralce資料庫的的類型類型對應
2.建立連接伺服器,我們將oralce系統作為SQLserver的鏈接伺服器加入到SQLserver中
有時候我們需要在sqlsercer下訪問另外一個sqlserver資料庫上的數據或者訪問其他oracel資料庫就上的數據嗎,想要完成這些操作,我首先要創建一個資料庫鏈接。
資料庫鏈接能夠讓本地的一個sqlservwer登錄用戶勇攝到遠程的一個資料庫伺服器上,並且像操作本地資料庫一樣,那麼怎樣創建資料庫鏈接?
創建一個sqlserver對應的oracle的資料庫鏈接,

2. 怎麼使用SQLSERVER鏈接伺服器訪問資料庫

怎麼使用SQLSERVER鏈接伺服器訪問資料庫

步驟1:打開企業管理器,如下。

2
步驟2:選擇資料庫,安全性,點擊新建鏈接伺服器。

3
步驟3:選擇鏈接伺服器屬性,常規,輸入名稱:TEST,選擇ORACLE資料庫提供程序,輸入名稱、數據源。

4
步驟4:進行安全性設置。本地登錄,選擇SQLServer資料庫登錄用戶,遠程登錄用戶和密碼,輸入遠程連接資料庫的用戶和密碼,選擇用此安全上下文進行,輸入遠程登錄用戶和密碼。

5
步驟5:點擊TEST鏈接伺服器下的表,我們可以訪問ORACLE資料庫的表了。
注意:產品名稱要和所鏈接的伺服器相對應,使用ORACLE資料庫就要輸入ORACLE,使用SQLServer就輸入SQLServer。

3. 如何用sqlserver連oracle

  1. 安裝好oracle客戶端,並配置好TNS信息。

  2. 配置好odbc連接信息,sql server肯定不能直接調用oracle的客戶端去連接的,只能通過odbc的方式間接的去連,先要打開odbc界面。

  3. 在Linked Servers下面會看到ORA_ARWEN,大功告成了。

4. jdbc為什麼用oracle的驅動可以連接sqlserver的資料庫

前期准備,具體包括

1]

下載安裝SQL Server(本文以SQL Server 2012為例)

2]

下載Microsoft JDBC Driver for SQL Server

3]

下載並且安裝集成開發環境 Eclipse IDE for Java EE Developers(可選)

准備用於查詢的資料庫和數據表

打開SQL Server Manage Studio打開SQL Server 2012

新建一個名為UniversityDB的資料庫

新建一個名為course的表並且插入如下記錄

5. 如何使用Oracle SQLDeveloper 中連接MS SQLServer和MySQL資料庫

如何使用Oracle SQLDeveloper
中連接MS SQLServer和MySQL資料庫

一、連接至MySQL資料庫

1.下載mysql的jdbc驅動, [url]http://dev.mysql.com/downloads/[/url] 免費,嘿嘿。

2.解壓zip文件(我下載的版本是mysql-connector-java-5.1.5),我們要用的是mysql-connector-java-5.1.5-bin.jar文件。

/** 添加MySQL JDBC驅動的方法

a、將這個jar文件放在你的

\Tomcat6.0\lib下(Tomcat6版本)

\Tomcat5.5\commom\lib(Tomcat5.5或者5.0的版本)

b、也可以通過配置環境變數classpath,修改。

c、如果用的是Eclipse(MyEclipse),JB,NB可以導入包。

注意:這個文件可以放到3個不同的位置,作用范圍也不同:

如果是linux系統:

/usr/java/jdk/jre/lib/ext——————所有Java應用

/usr/local/resin/lib—————————所有JSP/Servlet應用

網站根目錄/WEB-INF/lib 單個網站

如果放到resin的目錄,重新啟動resin即可:/etc/init.d/resin restart

如果是Win2000系統,放到類似的目錄,如:

D:\jdk\jre\lib\ext D:\resin\lib 網站根目錄\htdocs\WEB-INF\lib

*/

3.運行SQL developer,選擇菜單「Tools->Preferences」,在打開的窗口中選擇「database->Third
Party JDBC Drivers」然後點擊「Add Entry...」,選擇 mysql-connector-java-5.1.5-bin.jar
(從你解壓的文件夾中選擇),點擊確定。

4.然後新建連接,一切OK

二、連接到Ms SQL Server資料庫

1.首先要到 [url]http://sourceforge.net[/url] 下載
net.sourceforge.jdbc.driver,本人使用的版本是 jtds-1.2.2.jar

2.將壓縮包中的jtds-1.2.2.jar復制到「<sql
developer>/sqldeveloper/lib」文件夾或任意文件夾,也可以只解壓縮在本地也可 :)

3.運行SQL developer,選擇菜單「Tools->Preferences」,在打開的窗口中選擇「database->Third
Party JDBC Drivers」然後點擊「Add Entry...」,選擇 jtds-1.2.2.jar
(從你解壓的文件夾中選擇),點擊確定。

4.然後新建連接,一切OK。

/** 如果連接不上SQL SERVER可能需要執行以下步驟:

1. 把JtdsXA.dll 到<SQL SERVER 2000>\bin目錄中

2. 以 sa login SQL Query Analyzer, 執行 instjtds.sql
(執行一次失敗可以執行多次,嘿嘿)

3. 做好一切後, 打開 sqldeveloper.exe, 創建新的Connection

4. 在 ORACLE SQL Developer中, 點File->New->選中 Database
Connection,點確定

在彈出的UI中選擇"SQLServer"頁簽, 再填寫相關的Loginner及Pwd和Connection Name後

點一下Retrieve database按鈕, 然後在其旁邊的下接框中選取想要連接的Database就可以



5. 注意:密碼一項不能為NULL, 密碼為NULL的loginner需要更改密碼後才能連接

*/

6. 如何在oracle中取到sqlserver資料庫中的數據

試試用DBLink連到另外一個庫上:
-- Create database link
create public database link 名字
connect to user identified by password
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = PORT)))(CONNECT_DATA = (SERVICE_NAME = SID)))';

使用時候 可以使用select × from TB名@DBLink_Name

7. oracle 資料庫和SQL Server資料庫如何實現相互通信

sqlserver可以使用linkserver實現訪問oracle;
oracle可以使用database link實現訪問sqlserver;
這樣訪問對方就像訪問本地資料庫一樣。

8. 如何連接SQL Server與Oracle資料庫

telnet
指令,遠程連接sqlserver資料庫所在機器,然後通過用戶名密碼就可以連上了

9. 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)