Oracle切換爲PostgreSql(持續更新)

背景:近期由於項目需要需要將oracle數據庫切換爲postgreSql,sql語法在使用上還是有些差異的,着實費了一番功夫:

一、常用函數部分:
1. substr():截取字符串
關於substr()截取字符串的語法這裏不再贅述,如需瞭解請戳如下鏈接
比如substr()從後開始截取的方式:

select substr(‘HelloWorld’,-3) value from dual; //返回結果:rld,從最後一個“d”開始往回截取3個字符

1)oracle

lpad((lpad(substr(nmaf010,-nmaf009)+1,nmaf009,0))

2) postgre
postgre中不支持從後截取的方式,但是可以使用取字符串的長度變相從最後開始截取,如下

lpad((substr(nmaf010,length(nmaf010)-1,nmaf009)::integer +1)::varchar,nmaf009,‘0’)

2 . sysdate->CURRENT_DATE/now()
1). oracle中獲取當前時間的方式是使用sysdate
2). psql中獲取當時時間使用CURRENT_DATE/now()兩種方式
NVL-> Coalesce
1).NVL(arg,0)

當arg爲空時,返回0

2).Coalesce(arg,0)

當arg爲空時,返回0

二、其他
1 類型轉換:
1)Oracle中不同類型的字段進行比較時,會做處理:
xcce004爲整型數值,xcck003爲chr類型,在oracle中可以進行比較

AND xcce004 = xcck003

2)在psql中進行比較會報錯,需要做類型轉換

AND xcce004::varchar = xcck003

三、表鎖:
postgre不支持單邊連接查詢行鎖
oracle支持單邊連接查詢的行鎖
示例:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章