文章詳情頁
系統從oracle版本轉化為sqlserver版本
瀏覽:135日期:2023-11-15 12:25:39
WaterXP 從Oracle版本轉化為sqlserver版本1,系統安排 為了oracle版本和sqlserver版本能很方便的轉化,也為了兩個版本能同步修改,非凡是業務邏輯層。現決定如下: A,兩個版本的業務邏輯層都放在source目錄下。在該目錄下有兩個目錄:sql 和ora。這兩個目錄有三個文件:common.pbl; ,water_modi.pbl,dw_version.pbl。這三個 文件里面絕大部分是數據窗口,主要是因為sql server 和oracle的語法有差別。假如只是因為數據窗口有雙引號在sql server里不能用,那么把數據窗口的select語法的字段引號去掉即可,因為沒有引號的select語句在sql server和oracle下面都是可用的。修改的過程中注重update屬性。B,不同的數據庫將使用不同的目錄。2,系統環境的建立 每臺機器上建立下面的磁盤映射: P; 指向; oraservrp237 V指向; oraservr ql237; 或者是 oraserverora237; 源代碼在 oraservercodewater237 ource 里面。 P盤是肯定要有的, V盤由使用什么版本決定。3,源代碼的修改業務層的修改盡可能的在源代碼處,因為這樣修改能讓兩個版本同時修改。P盤是類庫可以不需要修改。V盤里的數據窗口都需要改。改sql237里面的數據窗口,要修改和要注重的地方:替換的方法oracle里面使用;;;sql server 里面使用to_char(readingdate,’yyyymm’);;;convert(char(6),readingdate,111)to_char(readingdate,’yyyy/mm’);;;convert(char(7),readingdate,112)decode( ,; ,; ,; ,);;;;case when then end 或者 isnull(x,0)左右連接 (+)left outer join 修改過程中要注重數據窗口的update屬性。4,工作計劃 4,1先修改sql237目錄下的三個pbl里面的數據窗口的語法。為了照顧數據窗口的update屬性,建議使用edit source的方法,而且select語法字段的引號在sql server版本建議去掉。使用pb的replace功能即可。 4,2 修改某些數據窗口的內嵌式sql 的語法。因為有一些內嵌式sql 也使用了decode() ,或者是to_char(),這些語法在sqlserver也是必須代替的。修改方法:if gs_database = ‘ORACLE’ then………………decode()……………;else…………………case when then end ………..;end if4,3 最后的工作是測試。這是最繁瑣的最重要的。在測試的過程會發現有一些數據窗口在sql server不能用:修改方法是將字段的引號去掉或者是移到sql 和ora目錄里面的dw_version.pbl文件里面,在那里進行修改。4,4主要的數據表都已經遷移過來了,名字一樣,可能在sql server有一些表的字段不夠那么請重新導入一次。主要的存儲過程都已經翻譯過來,名字不一樣。 在測試的過程會發現有一些視圖沒有存在,那么請從oracle把語法拷貝出來,在sql server查詢分析器里生成之。
排行榜
