西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程數(shù)據(jù)庫教程 → 從MSSQL server 2005中移植數(shù)據(jù)到Oracle 10g

從MSSQL server 2005中移植數(shù)據(jù)到Oracle 10g

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/8/26 14:31:20字體大。A-A+

作者:西西點擊:46次評論:0次標(biāo)簽: MSSQL Oracle

  • 類型:編程輔助大。237KB語言:英文 評分:7.0
  • 標(biāo)簽:
立即下載

因工作需求, 把數(shù)據(jù)庫從MSSQL移植到Oracle,一想起這個事情,難度就很大,在堅持下,終于完成了,重要的事情做了一些筆記。

1.移植前準(zhǔn)備

在移植前,需要安裝必需的各種軟件,如下:

(1).安裝好SQL server 2005的補丁包和SP2。

(2).安裝Oracle安裝包里的oracle客戶端瀏覽器(PL/SQL Developer)。(可以根據(jù)需要按照漢化補丁,漢化包不安裝也可)

(3).硬件要求:在Oracle數(shù)據(jù)庫所在的硬盤保持足夠剩余空間(至少有2GB的空間剩余);建議在啟用Oracle服務(wù)時機器的內(nèi)存不少于2GB。

沒有特別說明的情況下,本文的數(shù)據(jù)移植是針對普通的屬性數(shù)據(jù)。

Oracle 10g For Windows
1.6
類別: 數(shù)據(jù)庫類    大。500M    語言: 中文
查看詳細(xì)信息 >>

2. 移植

2.1. 創(chuàng)建數(shù)據(jù)庫

打開Oracle中的Database Configuration Assistant進行數(shù)據(jù)庫的創(chuàng)建,如圖所示:

圖表 1 打開Database Configuration Assistant

進入Database Configuration Assistant后點擊“下一步”,然后出現(xiàn)如圖表2所示的界面,選擇“創(chuàng)建數(shù)據(jù)庫”后點擊“下一步”:

圖表 2 創(chuàng)建數(shù)據(jù)庫

如圖表3所示選擇第一個“一般用途”然后點擊下一步:

圖表 3 選擇模板

   如圖標(biāo)2所示在創(chuàng)建數(shù)據(jù)庫過程中的第3步,在“全局?jǐn)?shù)據(jù)庫名”中輸入數(shù)據(jù)庫名稱,SID則會自動默認(rèn)為全局?jǐn)?shù)據(jù)庫名,然后點擊“下一步”;

圖表 4 創(chuàng)建數(shù)據(jù)庫

     點擊如圖表5所示界面中的“確定”按鈕系統(tǒng)就開始創(chuàng)建數(shù)據(jù)庫了。

圖表 5

圖表 6 正在傳教數(shù)據(jù)庫

最后點擊如圖表4所示中的“退出”按鈕就創(chuàng)建數(shù)據(jù)庫完成了。

圖表 7 創(chuàng)建數(shù)據(jù)庫完成

2.2. 登錄Oracle

打開PL/SQL Developer并用system(數(shù)據(jù)庫默認(rèn)的用戶名)用戶身份登錄到XQ2DSGN并選擇連接為SYSDBA,如圖所示:

圖表 8 登錄到PLSQL

 

2.2.1. 創(chuàng)建表空間

創(chuàng)建表空間的sql語句:

SQL>create tablespace xq2dsgn datafile 'G:\oracle\product\10.2.0\oradata\xq2dsgn\xq2dsgn.dbf' size 2048m autoextend on next 10m maxsize unlimited ;

 

(參考:

通過PL/SQL Developer登錄到Oracle數(shù)據(jù)庫上后,打開菜單:文件/新建/命令窗口 ,打開一個命令窗口然后在該命令窗口中執(zhí)行腳本創(chuàng)建和刪除表空間,新建用戶和授權(quán)的操作,如圖所示:

圖表 9 打開命令窗口

創(chuàng)建表空間

Sql>create tablespace xqds2gn datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' size 200m autoextend on next 10m maxsize unlimited;

Sql>alter database datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' autoextend on; 

1 DATAFILE: 表空間數(shù)據(jù)文件存放路徑
2 SIZE: 起初設(shè)置為200M
3 UNIFORM: 指定區(qū)尺寸為128k,如不指定,區(qū)尺寸默認(rèn)為64k 
4 空間名稱xq2dsgn 與 數(shù)據(jù)文件名稱 xq2dsgn.dbf 不要求相同,可隨意命名.

5 AUTOEXTEND ON/OFF 表示啟動/停止自動擴展表空間

alter database datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' resize 500m;

//手動修改數(shù)據(jù)文件大小為500M

圖表 10 表空間創(chuàng)建完成

刪除表空間

語句如下:

DROP TABLESPACE xq2dsgn INCLUDING CONTENTS AND DATAFILES;

2.2.2. 創(chuàng)建用戶

 

1.建立用戶并為用戶指定缺省的永久表空間和臨時表空間

SQL> create user xq2dsgn identified by xq2dsgn

default tablespace xq2dsgn

temporary tablespace temp;

用戶已創(chuàng)建。(user xq2dsgn表示用戶名:xq2dsgn,identified by后面表示密碼)

2.2.3. 對用戶進行授權(quán)

授予用戶會話的權(quán)限如圖所示:

Grant create session to xq2dsgn;

授予用戶創(chuàng)建表格的權(quán)限;

Grant create table to xq2dsgn;

授予用戶設(shè)定表空間大小的權(quán)限;

Grant unlimited tablespace to xq2dsgn;

授予用戶DBA權(quán)限:

grant dba to xq2dsgn;

圖表 11 創(chuàng)建用戶和授權(quán)

2.3. 導(dǎo)出數(shù)據(jù)

2.3.1. 打開SQL server導(dǎo)入導(dǎo)出數(shù)據(jù)向?qū)?/p>

登錄到SQL server 2005資源對象管理器選擇“數(shù)據(jù)庫”并找到要導(dǎo)出到Oracle中的數(shù)據(jù)庫,然后右擊選擇“任務(wù)”→“導(dǎo)出數(shù)據(jù)”。如圖所示:

圖表 12 DTS導(dǎo)出數(shù)據(jù)

2.3.2. 選擇數(shù)據(jù)源

彈出窗體如下圖,點擊“下一步”

2.3.3. 選擇目標(biāo)數(shù)據(jù)庫和配置屬性

如下圖所示選擇“Oracle provider for oledb”

圖表 13 選擇目標(biāo)數(shù)據(jù)庫

(2)導(dǎo)入到本地計算機的屬性配置

如圖所示,在“輸入服務(wù)器名稱”中輸入剛才在本計算機上新建的Oracle數(shù)據(jù)庫名稱,在“用戶名稱”和“密碼”中輸入剛才新建及設(shè)定的用戶名和密碼,點擊“測試連接”提示“測試連接成功”則可以點擊“確定”并進行下一步操作了。

圖表 14 配置屬性

(3)導(dǎo)入到域中的其他計算機上的屬性配置

如圖所示:其中服務(wù)名稱輸入的是目標(biāo)計算機的IP和目標(biāo)Oracle數(shù)據(jù)庫名稱。


2.3.4. 選擇源表和源視圖及目標(biāo)表,并編輯映射

選擇需要導(dǎo)出的表或者全選(這里建議根據(jù)表的類型和復(fù)雜程度選擇一個或者多個進行導(dǎo)出,以免全選發(fā)生錯誤時很難更正)。

圖表 15選擇源表和源視圖

編輯映射。在該圖中,在每行的目標(biāo)表處點擊,然后點擊“編輯映射”按鈕,彈出窗體如下圖:

點擊右上方的“編輯SQL”按鈕,彈出如下窗體:

該窗體顯示了oracle數(shù)據(jù)庫中,即將創(chuàng)建的數(shù)據(jù)庫表的sql語句。如果有以下情況:(1)表名、字段名中有小寫字母;(2)字段類型不正確;(3)存在EVENTID字段或者其他的uniqueidentifier 16類型的字段(GUID對應(yīng)的字段);我們需要進行修改:(1)確保引號內(nèi)的表名、字段名均為大寫;(2)字段類型正確;(3)VARCHAR2(38) DEFAULT SYS_GUID() NOT NULL

該表中,我們需要對EVENTID字段進行修改,修改后的窗體如下圖:

 

修改完畢,點擊“確定”按鈕。

該步驟,需要依次檢查每個表,確認(rèn)每個表的sql語句無誤后,才能進行下一步操作。()

有些表名及字段名均存在小寫或者大小寫均有的現(xiàn)象,直接導(dǎo)入Oracle數(shù)據(jù)庫,則引起使用中的一些錯誤。因此,我們在這里手工將上圖的sql語句中,引號內(nèi)的表名、字段名全部改為大寫,并將“列映射”頁面的目標(biāo)數(shù)據(jù)字段改為全部大寫,如果想要繼續(xù)使用小寫的表名則注意引號的應(yīng)用這里不做說明.

2.3.5. 執(zhí)行導(dǎo)出

選擇完表后點擊“下一步”或者點擊“完成”如果不出錯則提示導(dǎo)入成功如圖所示:

圖表 16 執(zhí)行導(dǎo)入成功

3. 特殊字段處理

3.1. 對于自增長字段的處理

Sql server數(shù)據(jù)庫中,有時會采用自增長的字段做為主鍵,但oracle數(shù)據(jù)庫中沒有這樣的字段,因此需要我們單獨處理這樣的字段。

以下以StationSeries表的objectid字段為例進行說明。

StationSeries表的objectid在sql server數(shù)據(jù)庫中為int類型,標(biāo)識增量為1;導(dǎo)入oracle數(shù)據(jù)庫中后,字段類型為integer。

(1) 新建一個sql窗口(登陸plsql后,F(xiàn)ile主菜單,new –>sql window即可)。

(2) 在該窗口中輸入以下sql語句:

Select max(objectid) from stationseries;

(3)按F8,執(zhí)行該語句,看到最大ID值為4743。如下圖:

(3) 新建一個序列。在sql窗口,輸入以下sql語句:

create sequence OBJECTID_STATIONSERIESminvalue 4744 maxvalue 99999999999999999999999999start with 4744 increment by 1 nocache;

用鼠標(biāo)選中該條語句,并按F8,執(zhí)行該語句,即創(chuàng)建了一個序列。

說明:該語句中,OBJECTID_STATIONSERIES為序列的名字;Minvalue之后的4744為上面的sql語句最大的objectid值+1即:4743 +1=4744;maxvalue填盡可能大的數(shù)字即可。Start with值同minvalue,increment by 1表示每次遞增1。

如下圖:

(4)建立觸發(fā)器。

同樣,在sql窗口,輸入以下sql語句:

create or replace trigger objectID_stationseries

  before insert on stationseries 

  for each row

declare

  -- local variables here

  nextid number;

begin

  IF :new.objectid IS NULL or :new.objectid=0 THEN

    select objectid.nextval

    into nextid

    from sys.dual;

    :new.objectid:=nextid;

  end if;

end objectID;

用鼠標(biāo)選中該條語句,并按F8,執(zhí)行該語句,即創(chuàng)建了一個StationSeries表的對objectid自增的觸發(fā)器。說明:該語句中,objectID_stationseries為觸發(fā)器的名字。before insert on之后的stationseries為建立觸發(fā)器的表名。Objectid即為字段。

經(jīng)過上述四個步驟,我們就可實現(xiàn)類似sql server數(shù)據(jù)庫中的自動增長字段,而無需更改代碼。

在導(dǎo)入oracle數(shù)據(jù)庫結(jié)束后,我們需要檢查sql server數(shù)據(jù)庫,對于其他表中的自增字段,也需要重復(fù)上述步驟實現(xiàn)在oracle數(shù)據(jù)庫中自增字段。

至此,從sql server數(shù)據(jù)庫至oracle數(shù)據(jù)庫的移植工作就結(jié)束了。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)