Oracle迁移到Pgsql避坑指南

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 
oracle查询结果.png
  • 在postgresq中,substr(x,0,3)截取前两位元素,substr(x,1,3)截取前三位元素
select substr('ABCDEFG',0,3) as sub3_1
      ,substr('ABCDEFG',1,3) as sub3_2
pgsql查询结果.png
  • 综上,在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')
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 随着"网络空间安全”被批准为国家一级学科,各高校网络空间安全学院如雨后春笋般纷纷成立,但各高校的网络安全教育...
    25岁老头_毕业版阅读 4,874评论 8赞 19
  • 学习笔记 基础知识 第1章 基础知识 1.1 数据库基础 1.1.1 什么是数据库 数据库用于存储有组织的数据的容...
    Nietism阅读 445评论 0赞 0
  • Oracle第一天 Oracle的概念和安装基本查询条件查询和排序单行函数多行函数条件表达式多表查询子查询集合运算...
    le_u阅读 781评论 0赞 2
  • SQL ==SQLPLUS== DML(Data Manipulation Language,数据操作语言)---...
    蝌蚪1573阅读 669评论 0赞 4
  • 从2019年开始,就有一个很火热的话题:“去O化”。O就是oracle,也就是将oracle替换成别的数据库。为什...
    贪挽懒月阅读 6,174评论 0赞 7

友情链接更多精彩内容