當前位置:首頁 » 編程語言 » oracle同步到sqlserver
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle同步到sqlserver

發布時間: 2022-07-07 15:20:14

❶ 如何將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數據

使用sqlserver自帶的DTS(導出)工具就可以實現,數據源選擇sqlserver,目的選擇ORACLE使用的驅動(我用的是9i,是oracle
in
orahome92
),選擇或創建一個DSN,輸入用戶名和密碼就可以了,使用時需要注意表名和欄位名上帶的雙引號需要去掉,否則的話你在查表的時候在表名上也需要加上雙引號。

❸ oracle資料庫導入到sqlserver

先是把要過來的oracle備份的.dmp文件處理好,要來EXP導出時候的用戶名和密碼,以及LOG日誌文件。
其次安裝oracle數據環境,和我的SQL資料庫在一個機器上,呵呵,這樣好辦多了。要的資料庫是ORACLE9i版本的,10G也沒問題。
先建立一個用戶名,名稱最好和提供DMP備份的名稱一樣,密碼也一樣。這樣會省很多事的。開始WINDOWS下運行CMD:
C:>imp username/userpassword@dbname file=d:/backname.dmp ignore=y rows=y full=y
開始執行oracle數據導入操作。時間很長,那麼*.DMP資料庫就被恢復過來了。
現在我們我們已經把ORACLE的備份數據恢復過來了。ORACLE裡面有我們需要的數據了,我們如何把這些數據導入到SQL server里呢。這時候就要用到SQL的工具DTS..........
打開企業管理器,在oracle數據導入的資料庫出按下右鍵,所有任務里選擇導入數據選擇數據 ,進入數據轉換導入導出向導。
下一步我們選擇數據源為Microsoft OLE Provider for oracle 選擇屬性 因為是本機所以伺服器名稱不比輸入了,用戶名我們輸入ORACLE我們需要的資料庫的用戶名和密碼。測試一下連接,正常連接以後選擇確定,就可以選擇(勾選)我們需要的這個資料庫里的表了。
這樣,oracle中的表就導入到SQL裡面了。我們就可以用SQL來操作數據了。這對於編程具有很好的試用價值。

❹ 如何將oracle表數據實時同步到sqlsever數據表中

1. SQLSERVER伺服器上面安裝oracle客戶端,配置服務命名(假設為 test)
2. 在SQLSERVER伺服器上面建立鏈接伺服器,腳本如下

SQL code?
SQL code-- Adding linked server:

exec sp_addlinkedserver @server = 'test' ,
@srvproct = 'ORACLE',
@provider = 'MSDAORA',
@datasrc = 'test'
-- Adding linked server login:
exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test',
@rmtuser = 'user', --資料庫用戶
@rmtpassword = 'password' --密碼
3. 建立一個作業,通過作業調度存儲過程,存儲過程使用類似的語句將oracle的數據插入到sqlserver表中

SQL code?
insert into sqlserver表 select * from test..oracle表名
4. 如果要球ORACLE數據是實時增加的,並且ORACLE記錄上有遞增的欄位,可以在SQLSERVER上面建立一個表記錄上次插入的id,然後下次可以從上次的ID+1開始繼續插入

SQL code?
insert into sqlserver表 select * from test..oracle表名 where id>@id
5. 防止sqlserver同步的時候oracle仍在不斷的插入,每次要取一個結束ID

SQL code?
select @endid=max(id) from test..oracle表名.

❺ 如何定時同步oracle表到sql server

1、兩台不同伺服器;
2、從oracle10g定時同步(每天凌晨2:00)到sqlserver2005;
3、處於安全性考慮,客服方不提供sqlserver2005的賬戶密碼,只需我們提供數據集;
4、雙方程序語言都為java;
在這些前提下我提出了幾套方案,僅供參考:
a:如果oracle能在客戶伺服器上訪問,由oracle方提供介面給客戶伺服器實現,返回給客戶伺服器所需同步數據,並由客戶伺服器操作數據存儲到sqlserver2005中,介面代碼描述:遠程建立jdbc連接oracle(臨時帳戶),查詢oracle方提供的視圖,並訪問客戶所需數據集,打成jar包,由客戶方調用介面實現方法獲得數據。
b:如果oracle方不能被客戶伺服器訪問,則將需同步數據置入xml中,並由客服伺服器方訪問其xml(http or socket),並有oracle方提供解析機制,返回數據集。
c:通過開源資料庫同步軟體實現不同(google結果:symmetricds、opendbdiff(針對sqlserver))
前面三種方案均可實現從oracle同步到sqlserver2005,不過如果數據量較大時可能導致中途數據丟失或者同步速度較慢等情況,於是制定如下方案:
建立同步表,將客戶方所需數據表中欄位放入到同步表中,如:
用戶表:wid,userid,password
用戶同步表:wid,userid,password,no,operationtype,operationdate
可以看到同步表中多了三個欄位:no,operationtype,operationdate
no為序號,由oracle序列生成,operationtype為操作類型,0為新增,1為修改,2為刪除,operationdate為操作日期,取當前完整時間(年月日分秒)
建立用戶表觸發器,如果用戶表有操作則將客戶方所需用戶表欄位放入同步表中,如果新增將operationtype的值插入0,以此類推
在客服伺服器方,oracle方提供介面查詢同步表得到結果集,並和客服商議如何操作這些數據
這樣就可以實現哪些數據修改過就同步哪些數據,減免了雙方伺服器的壓力

❻ 如何將oracle資料庫中的數據如何導入到sqlserver

-用DTS移植數據

--數據轉換服務(Data Transformation Services,簡稱DTS),它可以在任意數據源之間移動數據,並在移動過程中對數據進行清洗
--DTS通常用於將數據移動到SQL Server,但實際上它可以方便地在幾乎所有的數據源之間移動數據

--注意:「復制資料庫向導」和「導入/導出向導」實際只是創建和執行了DTS包

--DTS設計器
--「數據轉換服務」->「本地包」->新建或打開包
--「連接」:可用的連接對象
--「任務」:包含了19個關鍵的數據轉換任務,其中最常見的是「轉換數據任務」和「執行SQL任務」
--「包屬性」:在DTS的設計器中選擇「包」->「屬性」或右鍵「包屬性」,可以打開包屬性對話框

--添加「連接」

--添加「任務」
--1、源:源可以是源連接中的一個表、視圖,或者一個SQL查詢
--2、目的:接收數據的表
--3、轉換:對源數據列和目的數據列進行匹配或者連接。一個列轉換可以是下列情形之一:
--復制列是轉換中最常見的情況
--日期時間字元串、小寫字元串、字串、裁剪字元串和大寫串的處理全都與復制列轉換類似,不同的是
--它們中的每一個都增加了某種類型的數據轉換功能
--讀文件和寫文件分別用於將數據導入或者導出到源列中所指定的文件
--對於包含有邏輯或者數據查找的復雜轉換,需要使用ActiveX腳本實現
--4、查找:僅僅把數據從一個表移動到另外一個表是一項很簡單的任務。但在很多情況下我們都必須在轉換的過程中對數據進行修改
--轉換任務可以調用查找腳本找出需要的值來替換源數據集中的值
--a、定義一個查找,「名稱」:需要替換的源數據中的列名;「連接」:目的驅動;「高速緩存」:設置DTS執行時可以緩存的查詢結果數量
--b、「查詢」:可以打開查詢設計器的一個變種,通過它可以為任意的連接定義有效的查詢。該查詢應當以源列表中的值為輸入(參數),
--並返回相應的替代它的值以便插入目的表。輸入的參數用『?』來表示,而select語句所返回的值就是用於在目的表中替代輸入參數的值
--下面的例子從源列中讀出顧客類型的名字,並用查詢所返回的CustomerTypeID來替代它
select customertypeid from customertype where (name = ?)
--為什麼要這樣做呢?源表中的customertype列為字元,而目的表中的customertypeid為整型,所以需要根據源表中的customertype(字元)
--從表customertype中得到相應的customertypeid以便插入到目的表的customertypeid(整數)中
--c、Active轉換?
/*'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************

' Copy each source column to the destination column
Function Main()
DTSDestination("CustomerTypeID") = DTSLookups("CustomerType").Execute(DTSSource("CustomerType"))
Main = DTSTransformStat_OK
End Function
*/
--5、轉換選項:

--工作流控制
--DTS只包含幾個任務的情況在實際中是很少見的。絕大多數DTS包都要執行數十個任務,而這些任務之間又具有錯綜復雜的關系。因此,執行
--順序對於防止錯誤的發生至關重要。
--DTS通過以下選項來控制工作流的執行順序:完成時(藍色);成功時(綠色);失敗時(紅色)
--如:添加任務「執行SQL任務」(用來執行SQL語句),以在執行其他任務之前刪除表中的數據。則此任務為第一個執行。選中此任務和第二個
--任務,然後從「工作流」中選擇需要工作流類型(如完成),就可以設定這兩個任務之間的執行順序。執行好之後作用:先執行第一個任務,
--完成後,再執行第二個任務。。
--如果要為轉換數據任務設置工作流,可以選擇該轉換任務的源連接,右鍵->「工作流屬性」->設置工作流

--執行DTS包

--存儲和移動DTS包
--1、「包」->「保存」:保存到本地伺服器上。展開企業管理器控制台樹的「數據轉換服務」->「本地包」,將會看到那些保存的包
--2、「包」->「另存為」:提供了其他幾種可選的存儲格式和選項
--SQL Server:這種方法將包保存在任何已注冊的SQL Server的MSDB資料庫的sysdtspackages表中。如果已經注冊了相應的伺服器,
--這將是最簡單的把包移動到另外一個SQL Server上的辦法。如果要把包移動到還沒有注冊的伺服器上,應使用「結構花存儲文件」選項
--Meta Data Services:這種高級的方法可以跟蹤已經為DTS修改的數據
--結構化存儲文件:這種方法能夠創建可以復制到另外一個SQL Server,並且可以在另外一台伺服器上打開的文件。一定要注意SQL Server
--和service pack的版本號,因為具有不同的service pack級別的SQL Server 2000實例所使用的結構化存儲文件有可能是不兼容的
--要打開用結構化存儲文件格式保存的包,可以在企業管理器控制台樹的數據轉服務節點的快捷方式菜單中選擇「打開包」菜單命令
--Visual Basic文件:這個選項可以生成與SQL Server DTS包完成同樣任務的VB腳本
--注意:如果已經使用「包」->「另存為」命令保存了包,「包」->「保存」命令將用上一個「另存為」命令所選擇的位置和格式來保存這個包

--增量和版本
--數據轉換服務還有一個很好的特性:它能夠對包的變化進行管理。包的每次保存都會產生該包的一個新版本,最終就會形成該包的多個連續的版本
--如果要查看任意包所保存的各個版本,可以在企業管理器中,從本地包清單中選擇一個DTS包,然後選擇「操作」->「版本」菜單命令,或者從
--該包的快捷方式菜單中選擇「版本」菜單。此時將會打開「DTS包版本」對話框,並顯示該包的各個版本的日期和描述
--使用「DTS包版本」對話框,可以打開以前的版本進行編輯或者對它們進行清理。如果想恢復到某個以前的版本,可以打開該版本進行編輯,然後】
--使用「包」->「另存為」菜單命令以一個新名字保存該包

❼ 怎麼樣將oracle資料庫的部分表和數據遷移到sqlserver資料庫上

1、要重新代碼;
2、可以在「伺服器對象」-「鏈接伺服器」中增加oracle資料庫鏈接,和oracle的dblink類似。

❽ sqlserver資料庫與oracle資料庫實現數據同步

能實現,
sqlserver 到oracle可以用觸發器實現,前提是你需要先在sql server上創建到oracle的連接。
之後oracle 到外網你可用通過程序或別的方法實現。