前言:因为公司技术调整,数据库需要从oracle替换为PostgreSQL,替换后很多地方需要对应调整,在此记录方便自己和大家避坑。 数据类型 对比项 Oracle PostgreSQL 大文本 clob text 数字 NUMBER NUMERIC 可变长字符 VARCHAR2 VARCHAR 函数 对比项 Oracle PostgreSQL 行号 rownum row_number() over(order by …) as rownum 取一行 rownum = 1 limit 1 【注意排序】 null时赋值 nvl() coalesce() 转换为时间类型 to_date() to_timestamp() 字符串分隔 split() regexp_split_to_table() 子字符串所在位置查询【从1开始】 instr(String,subString) strpos(String,subString) 三元表达式 decode() case … when … then … when … then …else …end 树形查询 start with … priority … WITH RECURSIVE a AS ( select xx,1 as level from table1 where id = ‘123’ union all select d.xx,a.level +1 from table1 d join a on d.pid = a.id) select * from a 存储过程 对比项 Oracle PostgreSQL 当前时间 SYSDATE LOCALTIMESTAMP or CURRENT_TIMESTAMP 递增序列并返回新值 seq_xxx.nextval nextval(‘seq_xxx’) 存储过程调用存储过程 proc_xxx(…) call proc_xxx(…) 退出游标循环 EXIT WHEN v_cursor%notfound; EXIT WHEN not found; 更多: PostgreSQL 13.1 中文手册 Oracle表数据迁移到PostgreSQL数据库工具 PostgreSQL常用操作(持续更新) Oracle数据库常用操作笔记(持续更新) |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )
GMT+8, 2025-2-22 02:22 , Processed in 0.027867 second(s), 17 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.