<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/

    主站蜘蛛池模板: 亚洲精品福利在线观看| 在线日韩日本国产亚洲| 亚洲乱码一二三四五六区| 久久久久国产精品免费看| 亚洲丝袜美腿视频| 18女人腿打开无遮掩免费| 亚洲一区免费观看| 青青青国产在线观看免费网站| 亚洲国产精品线观看不卡| 久久天天躁狠狠躁夜夜免费观看| 国产v亚洲v天堂a无| 国产精品无码免费视频二三区 | 青青视频免费在线| www.亚洲精品.com| 一日本道a高清免费播放| 亚洲日韩精品一区二区三区| 最近更新免费中文字幕大全| 亚洲av无码精品网站| 国产2021精品视频免费播放| 最新国产精品亚洲| 亚洲国产精品丝袜在线观看| 丝袜捆绑调教视频免费区| 久久青青草原亚洲av无码app | 免费在线观看亚洲| 爱情岛论坛网亚洲品质自拍| 中文字幕无码免费久久| 亚洲国产成人久久综合一区| 午夜成人免费视频| 一区二区三区免费视频网站| 亚洲一卡2卡三卡4卡有限公司 | 久久久亚洲精华液精华液精华液 | 91精品啪在线观看国产线免费| 亚洲精品免费在线视频| 日本二区免费一片黄2019| 国产免费牲交视频免费播放| 18亚洲男同志videos网站| 国产精品国产午夜免费福利看| 中文字幕成人免费高清在线| 亚洲另类自拍丝袜第1页| 亚洲人成电影网站国产精品| 99re6免费视频|