Oracle数据库迁移PostgretSQL

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实现
数据如下图1
oracle版本
图2
这里会发现层级查找的时,假如有个人员既是这个地方的管理又是那个地方的管理
层级查询就会出现重复,这里可以用distinct或者聚合函数的方式处理
pg版本图3
2、日期类型
查询本月初到当前的数据
Oracle版
图4
pg版本
图5
3、merge into
oracle中
图6
图7
图8
pg库
图9
3.存储过程
1.在迁移过程中发现与Oracle相比,postgreSQL中对语句块的支持似乎很鸡肋,建议直接转换成function。
2.在postgreSQL中不在区分function和procedure 统一使用function
3.在postgreSQL中不在支持上下文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值