為了
oracle
版本和sqlserver
版本能很方便的轉化,也為了兩個版本能同步修改,特別是業務邏輯層。現決定如下: a,
兩個版本的業務邏輯層都放在
source
目錄下。在該目錄下有兩個目錄:
sql
和ora
。這兩個目錄有三個檔案:
***mon.pbl,water_modi.pbl,dw_version.pbl。
這三個檔案裡面絕大部分是資料視窗,主要是因為
sql server
和oracle
的語法有差別。如果只是因為資料視窗有雙引號在
sql server
裡不能用,那麼把資料視窗的
select
語法的字段引號去掉即可,因為沒有引號的
select
語句在sql server
和oracle
下面都是可用的。修改的過程中注意
update
屬性。
b,不同的資料庫將使用不同的目錄。
每台機器上建立下面的磁碟對映: p
指向//oraservr/p237
v指向
//oraservr/sql237
或者是//oraserver/ora237
源**在
//oraserver/code/water237/source
裡面。
p盤是肯定要有的,
v盤由使用什麼版本決定。
業務層的修改盡可能的在源**處,因為這樣修改能讓兩個版本同時修改。 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,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 if
4,
3 最後的工作是測試。這是最繁瑣的最重要的。在測試的過程會發現有一些資料視窗在
sql server
不能用:修改方法是將字段的引號去掉或者是移到
sql
和ora
目錄裡面的
dw_version.pbl
檔案裡面,在那裡進行修改。 4
,4
主要的資料表都已經遷移過來了,名字一樣,可能在
sql server
有一些表的字段不夠那麼請重新匯入一次。主要的儲存過程都已經翻譯過來,名字不一樣。在測試的過程會發現有一些檢視沒有存在,那麼請從
oracle
把語法拷貝出來,在
sql server
查詢分析器裡生成之。
Albert zh轉化為pytorch版本
背景 由於google提供bert base zh的引數太多,模型大太,大約400m,無論是使用bert進行fine tuning或者是對bert進行再訓練的訓練成本會變大。所以就對bert進行了一些優化。主要從以下幾個點對bert進行了優化 詞嵌入向量的因式分解 o v h o v e e h o...
oracle欄位從varchar2轉化為clob
在專案中遇到原來的varchar2型別長度不夠了,僅為4000.需要修改為clob,但因該字段已有大量資料。從網上找了很多資料,介紹很模糊,研究一番,在此貼出供迷途的戰士參考。首先給原來varchar2型別的字段result改名為result1.alter table opcontent renam...
Oracle 自定義進製轉化為10進製
1.建立functioncreate or replace function to aztdec p str in varchar2,p from base in number default 26 return number 和進製數保持一致 isl num number default 0 l ...