oracle轉pgsql:
todate 會省略時分秒 需要時分秒使用to timestamp
取json中的資料 使用 ->> 或者 ->
->>取回來的是text型別,->取回來的是json型別
coalesce 代替nvl2
json中取出的資料不能直接和其他字段比較,需要顯示的轉換型別 ::varchar
**塊需要在開頭增加 do $$, 末尾增加 $$
pgsql中沒有varchar2、clob、number,改為varchar,json、numeric
pgsql中的函式 如果使用的是json裡取得資料,也需要顯式轉換型別
pgsql中沒有nvl2函式,有nvl函式或者coalesce。使用nvl函式,也需要顯式轉換型別 select nvl(null,'無'::text) from dual
pgsql to_char函式 時間如果是json中的時間需要定義型別 select to_char(('2020-10-25 ')::timestamp, 'yyyy-mm-dd') from dual
pgsql 游標的使用與 oracle不同
游標名稱 - cursor關鍵字 - for -query
tmp_xm cursor for select bm2 from **** where bmlx='xmbm' and bm in ('');
單個游標變數可以正常使用,多個游標變數會報未知的問題(暫未找到解決方案),可以使用迴圈 for in
for x in(select * from ) loop
***;
end loop;
補充乙個需要按逗號或其他字元分割乙個字串,然後再在儲存處理的方法 regexp_split_to_table
do
$$declare
v_bmbh varchar(20
);v_jgbh varchar(20
);x record;
begin
v_jgbh:=
'123'
;for x in
(select regexp_split_to_table(
'1,2,3'::text
,','::text
) id from dual)
loop
select bmbh into v_bmbh from pt_bm where id = x.id::numeric
and jgbh = v_jgbh;
raise notice 'v_bmbh:%'
, x.id;
endloop
;end
;$$
//後續補充
以上,如有疏漏不足之處,請指正。
Oracle中查詢第N到M條記錄
select from select rownum rn t.from table table t where rn between n and m 注 rownum 必須重新命名為rn或者是其他的乙個虛擬名字 以下是更新第n到m條的記錄時所需要注意的問題 update table t set t....
oracle選擇從m條到n條的記錄
oracle選擇從m條到n條的記錄 此問題的推薦答案 如何實現分頁提取記錄方法1 oracle的rownum偽列返回查詢的行序號。例如要查詢表的前10條記錄,可以使用 select from tablename where rownum 10 但是要返回第11 第20條記錄,嘗試以下的語句 sele...
ORACLE 新增記錄 更新記錄
開發中偶爾需要新增一條記錄或修改一條記錄的幾個字段,語法中有微妙的區別。由於不是經常寫,久不寫就忘記了,而又要重新查詢或除錯。新增記錄語法 新增記錄 仿照已有表記錄 insert into t x t t.field 1,t.field 2,t.field 3,t.field 4,t.field 5...