1. substr()函数差异
- 在oracle中,substr(x,0,3)与substr(x,1,3)的意思一样,都是截取第一个到第三个元素
select substr( ABCDEFG ,0,3) as sub3_1
,substr( ABCDEFG ,1,3) as sub3_2
from dual

- 在postgresq中,substr(x,0,3)截取前两位元素,substr(x,1,3)截取前三位元素
select substr( ABCDEFG ,0,3) as sub3_1
,substr( ABCDEFG ,1,3) as sub3_2

- 综上,在oracle的substr函数中,第二位的0和1代表的意思一样;在postgresql的substr函数中,第二位的0和1代表的意思不同,在做oracle数据库sql迁移到postgresql数据库sql的时候切记把第二位的0改为1
2. regexp_instr()函数差异
- 在oracle中,regexp_instr()函数同instr功能类似,返回正则表达式所匹配到字符所在“下标”
- 在postgresq中,postgresq15及以上版本才支持regexp_instr()函数,15以下版本需要结合substring()与position()函数才能实现类似功能,示例如下
select TestStr123 as str
,position(substring( TestStr123 from [0-9] ) in TestStr123 )
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


