當前位置:首頁 » 編程語言 » oracle轉sqlserver

oracle轉sqlserver

發布時間: 2022-09-09 01:48:49

『壹』 oracle數據怎樣轉化為sqlserver資料庫裡面

這個要看你的 資料庫, 設計得有多復雜了.

假如 僅僅是用資料庫存儲 數據. 沒有使用任何 存儲過程/函數/觸發器/序列號 什麼的.
也沒有什麼存儲 二進制大對象的列

那麼還是比較簡單的.
直接在 sql server 那裡 建立一個 Oracle 的資料庫鏈接
然後
SELECT * INTO 本地表名 FROM Oracle鏈接的表

SQL Server 鏈接伺服器-訪問 Oracle
http://hi..com/wangqing999/blog/item/c0a19a42862e311c6b63e5d2.html

假如你的 Oracle 資料庫裡面, 使用了很多 Oracle 特有的 特性。
那麼 從 Oracle 遷移到 SQL Server , 可就有 一個列表清單的事情要做了。

比如 Oracle 有序列號, SQL Server 沒有。 你要想辦法折騰, 運氣好的話 identity 可以處理。
又比如 Oracle 裡面, 可以寫 package 這樣的 存儲過程代碼。 SQL Server 沒有。
又比如 Oracle 裡面, 有 其獨有的 分析函數, 與 MODEL 查詢。 SQL Server 沒有。
建議你去查詢 Oralce 移植 SQL Server 的貼子去看看。
求採納為滿意回答。
求採納為滿意回答。

『貳』 一段Oracle資料庫腳本轉成sql server腳本怎麼轉換

這個一般應該用資料庫的遷移工具,直接對資料庫進行轉換;而不是對 資料庫腳本進行轉換。
對於你的情況,給一個建議:
先在Oracle中執行腳本,還原 Oracle資料庫。
用powerdesigner生成資料庫的物理模型(此處也可以直接用遷移工具)
在將資料庫類型換成sqlserver,生成適合sqlserver的腳本。
上面的過程,只適合於表結構(主要是欄位類型)。
對於視圖、存儲過程、觸發器 等,應該還是需要自己修改。

『叄』 如何將Oracle中的數據導入到SQL Server中來

假設oracle安裝在另一台IP地址為192.168.1.202的機器上,而你的機器上安裝了MS SQL SERVER2005,現在你要將oracle中的一個資料庫導入進來。

前提條件:
在本機安裝oracle客戶端,注意必須是安裝版的,使用綠色版不可以。
http://www.cnblogs.com/flyrain/archive/2010/06/05/oracle-sqlserver.html

『肆』 怎樣把Oracle查詢轉換為SQLServer

我們知道,T-SQL是SQL Server的語言引擎,而Oracle的語言引擎卻是PLSQL.這兩種查詢語言都對 ANSI SQL-92標准進行了擴展以提供額外的支持力度。你所創建的應用程序幾乎都要用到這些補充特性。本文就對最常用的、非標準的Oracle擴展進行了說明,同時還要介紹下如何 對這些擴展進行轉化以用在SQL Server環境下。 列的選擇 用PLSQL執行數據查詢的時候,FROM子句是必須的,這同SQL Server的要求是一樣的。 SELECT語句必須選擇針對的數據表。在Oracle資料庫內有一種特殊的表DUAL.DUAL表由 Oracle連同數據字典一同創建,所有的用戶都可以用名稱DUAL訪問該表。這個表裡只有一列DUMMY,該列定義為VARCHAR2(1)類型,有一行值X. 從DUAL表選擇數據常被用來通過SELECT語句計算常數表達式,由於DUAL只有一行數據,所以常數只返回一次。 Oracle下的DUAL查詢如下所示: SELECT 『x』 FROM al 而對等的SQL Server查詢則是下面這個樣子: SELECT 『x』 連接 Oracle用|| 符號作為連接符,而SQL Server的連接符是加號:+ . Oracle查詢如下所示: Select 『Name』 || 『Last Name』 From tableName 對應的SQL Server查詢如下所示: Select 『Name』 + 『Last Name』 數字取捨 Oracle資料庫內有一個TRUNC函數,該函數返回m位十進制數的n位;如果省略m則n就是0位。m的值可以為負,表示截去小數點左邊m位數字。 在SQL Server下可以用Round或者Floor. 以下是Oracle查詢: SELECT TRUNC(15.79,1) "Truncate" FROM DUAL; 下面是同類查詢的SQL Server版本: SELECT ROUND(15.79, 0) rounded , ROUND(15.79, 0,1) truncated SELECT FLOOR(ROUND(15.79, 0)), FLOOR(ROUND(15.79, 0,1) ) 在把Oracle查詢轉換為SQL Server的時候要特別當心一些不容易注意到的問題。我們知道,T-SQL是SQL Server的語言引擎,而Oracle的語言引擎卻是PLSQL.這兩種查詢語言都對 ANSI SQL-92標准進行了擴展以提供額外的支持力度。你所創建的應用程序幾乎都要用到這些補充特性。

『伍』 如何從oracle資料庫導出數據到sql server

導出是用MS自帶的ole
db
provider訪問介面導出:
1.右鍵要導出的資料庫【任務】-》【導出數據】-》設置導出數據源
2.設置oracle為目標數據源
3.設置目標表(創建)
4.編輯欄位
由於sqlserver的t-sql與oracle的pl/sql定義數據類型不一樣,這里注意要修改類型:
int
->
number
(注意設置number的精度)
nvarchar
->
varchar2
(最好是nvarchar2,但ms這個驅動只提供這種轉換)
datetime
->
date
也可以直接編輯sql,注意pl/sql的編寫方式,編輯完之後下一步
5.這里的datetime轉成date是有警告的,不過沒關系,然後可以忽略出錯與截斷,下一步:
6.點擊完成
在oracle
em裡面查看剛才導出的數據表及數據

『陸』 能將Oracle數據導入sql server資料庫嗎

可以的
1、在目的SQL Server資料庫伺服器上安裝ORACLE Client軟體或者ORACLE ODBC Driver.
通過oracle客戶端,在netmanager中建立「服務(TNS server)」,並測試連接上oracle資料庫正常
2、在sqlserver的DTS(導入和導出數據工具)進行

(1)選擇數據源:
數據源:oracle in oracle9i
選擇:用戶/系統DSN:
點擊新建DSN:選擇數據源類型:系統數據源,
下一步:選擇驅動程序:oracle in oracle9i,下一步,完成 ,
進入oracle odbc driver configration頁面
再輸入:datasorce name:GZDS
TNS server name:gz(通過netmanager定義好TNS server)
user:(oracle登錄用戶)
填寫好以後,進行"TEST Connection"
可以連通,則點擊「ok」,DSN建立完成
數據源選擇完成,點擊「下一步」進入「選擇目的」
(2)選擇目的
目的:用於SQL Server的Microsoft OLE DB提供程序
伺服器:192.168.0.63
選擇:使用sqlserver身份登錄
用戶名:sa 密碼:pass
並刷新,選擇好資料庫:test(目的資料庫,提前建立好的)並點擊「下一步」
a.從數據源復製表和數據(下一步:選擇源表及視圖)
b.用一條查詢語句指定要傳輸的數據(進行sql編輯)
(通過以上選擇好要復制的數據表或者相關視圖)
再點擊下一步「保存、調度和復制包」
(3)「保存、調度和復制包」
時間:立即運行
再點擊下一步:進行:「正在完成DTS導入導出」向導
(4)完成:
點擊:「完成」按鈕,系統進入數據復制「正在執行包」的頁面,
可以看到數據正在復雜的進度條

注意:在ORACLE表和SQL Server表之間'轉換'那步很重要,
可以改變默認的欄位數據類型,如image->text,decimal->int

『柒』 如何從oracle遷移數據到sql server

前陣做了下資料庫遷移,從Sql Server2005遷移到Oracle
10g,這里說一下遷移的方法。
Sql
Server和Oracle區別比較大,包括語法,欄位類型,資料庫機制,配置管理方法等等,區別是全方位的,做遷移需要注意很多問題,在遷移過程中也會遇到問題,需要細細處理之。這里說一下資料庫結構的遷移,和遷移過程中注意的一些問題。(當然具體的資料庫遷移過程中可能問題是不一樣的,具體問題具體分析了)
遷移的方法是從Sql Server已有資料庫中生成出Oracle的建庫腳本,然後在Oracle資料庫上執行。用到的生成工具是Power
Designer。
1、打開PD(Power
Designer簡稱,以下均使用PD),新建一個PDM(物理數據模型),DBMS選擇Microsoft SQL
Server2005,Model name起名叫做mssdb。
2、通過逆向工程將現有Sql
Server資料庫生成PDM
(1)選擇Database->Reverse
Engineer Database,配置數據源,選擇要遷移的資料庫,輸入用戶名、密碼。
(2)選擇資料庫,選擇用戶dbo下的所有表、視圖、存儲過程、方法、觸發器、序列等(由於Sql Server與oracle,資料庫概念上的區別,這里不需選擇用戶、角色)。
點擊OK,生成PDM。已經建立過PDM的情況,這一步可以省略。
3、生成Oracle物理數據模型
選擇Tools->Generate Physical Data Model
(1)DBMS選擇Oracle
10g,輸入名稱:oradb。
(2)在Configure Model
Options配置中, Model Settings的Table&View界面中,勾選Ignore
identifying owner。Oracle中用戶的概念與Sql Server不同,這里忽略owner。
(3)Selection標簽,選擇需要生成的所有表、視圖、外鍵、存儲過程、方法、觸發器、序列等。
點擊確定,即生成了oracle 的PDM。
注意,在生成PDM的過程中可能不會一帆風順,有可能會報錯(比如提示對象長度超限),這會導致生成失敗。這時需要根據具體錯誤提示做相應修改(可能需要多次調整,沒有辦法,誰讓兩者差別這么大的呢)。
4、生成Oracle腳本
與Sql
Server不同的是,在Oracle里表名、欄位名全部為大寫,若要單獨處理為小寫,需加上雙引號。而PD生成的腳本默認是有雙引號的,這里需要修改默認配置,去掉雙引號。
然後選擇oradb,然後選擇Database->Generate
Database,進入資料庫生成界面
在Format標簽下,去掉勾選Owner prefix,它將省掉建表語句前「dbo.」所帶來的麻煩;
在Selection標簽下,選擇要生成腳本的各對象;
在Preview標簽下,可以預覽預生成的腳本(表較多時,切換會比較慢)。
點擊確定,即得到生成的腳本。
5、檢查與調整
腳本是PD自動生成的,因為表比較多,在oracle上直接去執行難免會有錯誤。所以在執行之前需要檢查下腳本的正確性。這里提幾點需要注意的地方。
(1)Oracle要求表名、欄位名等長度最多是30位,而Sql Server沒有這個限制,所以可能會有在Sql
Server創建正常的表而在Oracle下會創建失敗。
(2)檢查一下主鍵、外鍵的名稱,它們有可能是隨機生成的名稱。可根據相應規范進行修改。
(3)檢查欄位名是否用到了Oracle的關鍵字。比如Sql
Server命名「備注」欄位可能會用「comment」、標題用「title」,但comment、title在Oracle中是關鍵字,不可以做為欄位名稱。
(4)存儲過程、方法是否符合Oracle語法。
(5)Sql
Server有自增欄位,而Oracle沒有。要實現此功能,需要相應創建序列、觸發器。
(6)Sql
Server中欄位類型為text的情況,如果是存二進制數據需要在Oracle中選用Blob欄位類型。
(7)Sql
Server有外鍵的情況,主表記錄刪除,從表記錄也會跟著刪除;而Oracle默認情況是當從表有記錄時,所對應的主表記錄不允許刪除。所以這種情況下外鍵需要添加外鍵級聯刪除。
(8)生成的表、視圖等個數是否正確,缺失的情況可單獨生成腳本。
系統不一樣,出現問題的點可能也不一樣,具體問題具體分析。
6、建庫
在Oracle資料庫服務(當然要先安裝好Oracle服務端、並建立資料庫)orcl實例下,使用用戶sys登陸並創建用戶orauser,並將resource、connect角色賦給orauser(這里,orauser使用默認表空間、默認臨時表空間)。
用剛創建的用戶orauser登陸orcl資料庫服務,執行前面已經生成的腳本,若干分鍾後腳本執行完畢,觀察一下執行過程中有無錯誤產生,也可以記錄執行的日誌以便日後查看;檢查看錶、視圖等個數與Sql
Server資料庫中是否一致。如果都正確,那麼,資料庫結構從Sql
Server到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資料庫腳本的經驗,只能手工嗎,還是有簡便的方法或者工具

這個一般應該用資料庫的遷移工具,直接對資料庫進行轉換;而不是對 資料庫腳本進行轉換。

對於你的情況,給一個建議:

先在Oracle中執行腳本,還原 Oracle資料庫。
用powerdesigner生成資料庫的物理模型(此處也可以直接用遷移工具)
在將資料庫類型換成sqlserver,生成適合sqlserver的腳本。

上面的過程,只適合於表結構(主要是欄位類型)。

對於視圖、存儲過程、觸發器 等,應該還是需要自己修改。

『拾』 如何將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)
)
)

熱點內容
linuxatop 發布:2025-01-13 03:19:01 瀏覽:438
彩38源碼下載 發布:2025-01-13 03:16:51 瀏覽:971
手機app緩存可不可以刪 發布:2025-01-13 03:10:46 瀏覽:937
安卓怎麼顯示第五個人圖鑒 發布:2025-01-13 03:03:23 瀏覽:922
內網訪問很慢 發布:2025-01-13 03:01:01 瀏覽:454
魔獸腳本p閃 發布:2025-01-13 02:58:40 瀏覽:290
java遞減 發布:2025-01-13 02:54:40 瀏覽:489
決策樹的演算法例題 發布:2025-01-13 02:53:15 瀏覽:448
腳本四要素 發布:2025-01-13 02:40:18 瀏覽:929
編譯過程序後無法運行 發布:2025-01-13 02:40:16 瀏覽:306