Oracle → PostgreSQL库迁移
常用数据类型及函数替换
Oracle → Pg
1.常见类型及函数区别
字符串 varchar2,varchar → varchar
数据类型 number → numeric
NVL函数 nvl → coalesce
Instr函数 instr → strpos
外连接 (+) → left join
当前时间 sysdate → now
虚表 dual → 不需要
行转列 wm_contact → string_agg
Decode函数 decode → case when then else end
筛选行数 rownum → limit
类型转换 to_char,to_number → ::varchar,::numeric
2功能函数区别
1、层级查询
oracle中使用start with connect by,pg中使用with recursive实现
数据如下
oracle版本
这里会发现层级查找的时,假如有个人员既是这个地方的管理又是那个地方的管理
层级查询就会出现重复,这里可以用distinct或者聚合函数的方式处理
pg版本
2、日期类型
查询本月初到当前的数据
Oracle版
pg版本
3、merge into
oracle中
pg库
3.存储过程
1.在迁移过程中发现与Oracle相比,postgreSQL中对语句块的支持似乎很鸡肋,建议直接转换成function。
2.在postgreSQL中不在区分function和procedure 统一使用function
3.在postgreSQL中不在支持上下文