<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計(jì)

    留言簿(23)

    積分與排名

    優(yōu)秀學(xué)習(xí)網(wǎng)站

    友情連接

    閱讀排行榜

    評論排行榜

    sql server 2000移植到orcle的心得體會(轉(zhuǎn))

    移植過程:采用的 oracle 的移植工具 Migration WorkBenth

    移植注意事項(xiàng):

    1. 移植前要在 ODBC 中建立 DSN ,由于移植的是 sql server 2000 ,驅(qū)動選 sql server

    2. oracle 實(shí)例中建立登陸用戶,包括用戶名和密碼,并賦予權(quán)限( connect resource dba )。這在使用 WorkBenth 過程中是要填寫的內(nèi)容。

    3. 移植過程分為獲取 sql server Model ,建立 oracle Model 和導(dǎo)入數(shù)據(jù)三部分。

    4. 移植后我們會發(fā)現(xiàn)在 oracle 實(shí)例中有兩個方案生成: omwb_emulation sa 。其中 omwb_emulation 可以不予理會,它主要提供了弱游標(biāo),供 sa 方案中的存儲過程調(diào)用。對于方案 sa 我們會注意到幾點(diǎn):原來 sql server 中的數(shù)據(jù),包括表,視圖,存儲過程,索引等都在這個方案中存放;原來 sql server 表中的種子類型數(shù)據(jù)在方案 sa 中被統(tǒng)一管理,放在“序列”中;

    原來的數(shù)據(jù)庫名稱 xihang_info 現(xiàn)在是方案 sa 中的表空間。

    移植后注意事項(xiàng):

    1. 因?yàn)閼?yīng)用程序使用的是 ODBC, 涉及到幾個連接字符 : dsn username password 。由于應(yīng)用程序中的連接字符串是 conn.Open("sczb","sczb","sczbpw") ,而現(xiàn)有的 schema sa ,連接失敗。現(xiàn)在有兩種方案:改連接字符串或從新建立一個方案 sczb 。這里我們采用了第二種方案,新建方案 sczb

    方法是:先新建用戶 sczb, 密碼是 sczbpw, 權(quán)限是 connect resource dba ;然后將方案 sa 導(dǎo)入到方案 sczb 中(若是導(dǎo)入到另外機(jī)器上,方案 omwb_emulation 一并導(dǎo)出再導(dǎo)入)。

    2. sczb 中修改視圖和存儲過程。修改視圖只要把 sql 語句中的方案名 sa 刪除或改為即可。存儲過程需要修改的內(nèi)容比較多,具體見下:

    修改存儲過程:

    1. 修改臨時表

    SQL 的臨時表用 # ## 開頭,使用完后自動釋放, ORACLE 的臨時表則存在數(shù)據(jù)庫中,每個會話的數(shù)據(jù)都互不干涉。 語法分別為: CREATE TABLE #TEMP ID INT NAME VARCHAR 20 )) CREATE GLOBAL TEMPORARY TABLE TEMP ID INT NAME VARCHAR 20 ))

    2. IDENTITY 字段

    Oracle 不支持自增長類型,在向表中插入含有 IDENTITY 字段的記錄時,要顯示聲明。例如:

    Insert into tbl values (序列名 .nextval, 字段 1 ,字段 2 ,。。。)。

    3. SQL ORACLE 的游標(biāo)
    SQL
    的游標(biāo)用 @@FETCH_STATUS 判斷是否還有數(shù)據(jù), ORACLE 的游標(biāo)用 %FOUND %NOTFOUND 來判斷游標(biāo)是否結(jié)束。

    4. 連接字符串:

    SQL 的字符串連接用 + 號, ORACLE 字符串連接用 || ,單引號可以做轉(zhuǎn)義符。因?yàn)樵?/span> sql server

    number 類型的“ + ”運(yùn)算也用到 ”+”, 因此在移植后 oracle 對于 number 類型的“ + ”有時識別不出來,而作為字符連接來處理。

    5. 游標(biāo)的名稱在移植后會有重復(fù)。不允許。

    6. 日期類型數(shù)據(jù)要注意

    其格式不同于 sql server 中的“ yyyy-mm-dd ”格式,而是“ dd-x -yyyy “格式。要用 to_char(?,’yyyy-mm-dd’) 處理成 sql server 一樣的格式。

    7. oracle 獲取 sql 語句所影響的行數(shù)時,不像 sql server @@rowcount 直接獲取那么簡單,要分以下三種情況。

    Oracle 中對于隱性游標(biāo),獲取行數(shù)的方法是通過 SQL%rowcount 直接獲得。

    對于顯性游標(biāo)獲取行數(shù)通過 cursor_name%rowcount 獲得,但有有以下 sql 語句:

    For index in cusor_name loop

    變量名: =cursor_name%rowcount;

    End loop;

    Fetch into 語句的話, rowcount=1

    8. 獲得年,月,日在 oracle 中不支持 year (), month ()和 day ()函數(shù)。

    解決的方法是通過 substr ()函數(shù)。例如獲取‘2000-01-10’的‘年’,可以通過substr(‘2000-01-10’,14)得到。

    9. oracle 不支持 case 語句。

    sql server 中語句:

    CASE WHEN (GROUPING(BM_Name2) = 1)THEN ' 合計(jì) ' ELSE ISNULL(BM_Name2,' 未知 ') END AS BM_Name2,

    oracle 改寫為 decode 語句:

    decode(GROUPING(BM_Name2),1,' 合計(jì) ',nvl(BM_Name2,' 未知 ')) BM_Name2

    10. 左右連接問題。

    sql server 的連接語句如:

    select a.id b.yueshj from jh_wh_xiangmu as a left join jh_lr_zongliang as b on a.id=b.xiangmid

    oracle 中應(yīng)改為:

    Select a.id, b.yueshj from jh_wh_xiangmu a, jh_lr_zongliang b where a.id=b.xiangmid(+);

    sql server 的連接語句如:

    select a.id b.yueshj from jh_wh_xiangmu as a left join jh_lr_zongliang as b on trim(a.id)=trim(b.xiangmid)

    oracle 中應(yīng)改為:

    Select a.id, b.yueshj from jh_wh_xiangmu a, jh_lr_zongliang b where trim(a.id)=trim(b.xiangmid(+))

    11 .改好的存儲過程,不能編譯通過就認(rèn)為 ok 了。編譯通過只能說明在語法上沒有問題了,要進(jìn)一步執(zhí)行看邏輯上是否還有問題。在編譯時產(chǎn)生的錯誤是 pl/sql 錯誤,在執(zhí)行時的錯誤是 ora 錯誤。

    12. sql/plus worksheet 中執(zhí)行存儲過程的語句是: execute 存儲過程名(‘參數(shù) 1 ‘,’參數(shù) 2 ‘,。。)

    但在執(zhí)行返回多條記錄集的存儲過程,也就是參數(shù)中含有 RC1 IN OUT Omwb_emulation.globalPkg.RCT1 的存儲過程時,執(zhí)行起來略有不同。在 sql plus 中執(zhí)行的語法如下:

    Sql var rc1 refcursor;

    Sql execute pro_name(‘ 參數(shù) 1 ‘,’參數(shù) 2 ‘,: rc1 ,。。 )

    Sql print rc1

    posted on 2007-01-25 11:40 都市淘沙者 閱讀(1462) 評論(0)  編輯  收藏 所屬分類: Oracle/Mysql/Postgres/

    主站蜘蛛池模板: 精品无码免费专区毛片| 成年丰满熟妇午夜免费视频| 亚洲综合精品香蕉久久网97| 久久精品免费一区二区| 亚洲av无码专区亚洲av不卡| 免费在线视频一区| 免费无码中文字幕A级毛片| 亚洲AV色吊丝无码| 亚洲国产香蕉人人爽成AV片久久 | 亚洲伊人久久成综合人影院| a国产成人免费视频| 亚洲高清中文字幕免费| 亚洲片一区二区三区| 91香焦国产线观看看免费| 99亚洲乱人伦aⅴ精品| 亚洲va在线va天堂va888www| 韩国免费三片在线视频| 久久精品成人免费看| 亚洲国产综合精品中文第一| 亚洲乱码无码永久不卡在线 | 色播在线永久免费视频| a级成人毛片免费视频高清| 亚洲成人激情小说| 亚洲AV无码乱码国产麻豆穿越| 午夜免费福利在线观看| 91青青青国产在观免费影视| 人妻仑刮八A级毛片免费看| 亚洲制服丝袜在线播放| 亚洲乱亚洲乱妇无码麻豆| 国产麻豆免费观看91| 最近2018中文字幕免费视频| 国产A∨免费精品视频| 7777久久亚洲中文字幕| 精品亚洲成AV人在线观看| 亚洲无码视频在线| 性做久久久久免费观看| 午夜福利不卡片在线播放免费| a毛看片免费观看视频| 香蕉国产在线观看免费| 亚洲一线产区二线产区区| 91在线亚洲精品专区|