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
安裝好oracle客戶端,並配置好TNS信息。
配置好odbc連接信息,sql server肯定不能直接調用oracle的客戶端去連接的,只能通過odbc的方式間接的去連,先要打開odbc界面。
在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)