首页 > 数据库 >Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId

Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId

时间:2023-10-02 13:00:53浏览次数:49  
标签:databaseId PostgreSQL 适配 数据库 查询 oracle 参数 Oracle

背景:因为业务需求,需要整个项目除了适配oracle和mysql后还需要适配PostgreSQL,在此背景下就出现了一系列的问题。


踩坑一:databaseId

连接数据库后启动发现某些查询报错传入的sql参数是空,经过反复排查定位到对应的MyBaits的xml文件,我贴出原始的文件

Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId_PostgreSQL

文件中判断databaseid是mysql还是oracle来实现数据库语法的差异性,例如该查询语句为了防止未传入参数全库查询导致数据库cpu和io飙升而进行限制只返回1000条,然而上面databaseid这个参数由于PostgreSQL数据库返回的是PostgreSQL 导致走了一个空查询条件。

然后在xml中添加了postgresql最后发现还是没有匹配

Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId_oracle_02

最后跟踪代码找到了一个枚举类,配置了参数就映射否则返回空

Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId_PostgreSQL_03


Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId_oracle_04

Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId_PostgreSQL_05

修改了该类后让PostgreSQL映射成oracle该空sql报错解决。



标签:databaseId,PostgreSQL,适配,数据库,查询,oracle,参数,Oracle
From: https://blog.51cto.com/u_16190206/7683502

相关文章

  • 主流常见关系数据库分页sql语句写法。MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL S
    前言1.分页sql逻辑:每页10条,取第3页。即取第21~30条数据1.1.MySQL/SQLite/PostgreSQLselect*fromdemolimit10offset20;select*fromdemolimit20,10;--PostgreSQL不支持该写法1.2.Oracle12C+Oracle11g之前很难用,Oracle12C+与MySQL用法格式一样了,只是语法关......
  • MySQL和Oracle数据库引擎
    MYSQL数据库:在mysql数据库中,常用到的引擎主要就是2个:Innodb和MyIASM。Innodb:它提供了对数据库ACID事务的支持,并且还提供行级锁和外键的约束。它被设计的目的就是处理大数据容器的数据库系统,它本身实际上是基于Mysql后台的完整系统。在Mysql运行的时候,Innodb会在内存中建立缓冲池,用......
  • 甲骨文宣布: 也做 PostgreSQL!
    PostgreSQL在开源数据库世界中一直是一个标志性的存在。经过35年的严格开发,它以其可靠性、强大的功能和性能而自豪。DB-engines的突出显示,其市场份额的增长证明了其适应性强的数据模型和满足各种用例需求的多样化扩展。考虑到PG突出的地位,甲骨文将推出基于PostgreSQL14.9版......
  • 甲骨文宣布: 也做 PostgreSQL!
    PostgreSQL在开源数据库世界中一直是一个标志性的存在。经过35年的严格开发,它以其可靠性、强大的功能和性能而自豪。DB-engines的突出显示,其市场份额的增长证明了其适应性强的数据模型和满足各种用例需求的多样化扩展考虑到PG突出的地位,甲骨文将推出基于 PostgreSQL14.9版......
  • PostgreSQL数据库事务系统——获取virtual transaction id
    如果一个事务没有进行INSERT、UPDATE、DELETE操作,那么就步会分配事务ID,但事务仍然用一个虚拟事务ID代表自己。虚拟事务ID由两部分组成,第一部分是BackendID,另一个是每个会话自己维护的本地事务ID计数器。通过两部分组合,能保证这个虚拟事务ID的唯一性。在PostgreSQL数据库IPC——SI......
  • postgresql xid回卷预防及排查
    监控WITHmax_ageAS(SELECT2000000000asmax_old_xid,settingASautovacuum_freeze_max_ageFROMpg_catalog.pg_settingsWHEREname='autovacuum_freeze_max_age'),per_database_statsAS(SELECTdatname......
  • 【fgolang代码分享】golang如何连接oracle进行业务开发
    在我们的开发场景下虽然大部分我们都使用mysql就可以满足我们日常的开发任务,但是总有一些开发场景是需要我们是用oracle数据库的,今天我给大家带来golang的俩种连接oracle的方式。oracle简介oracle也是出自甲骨文公司,和mysql同门,也是全球最大的信息管理软件及服务供应商,Oracle开......
  • oracle导出几百万数据-技巧
    --plsql新建表,但是plsql工具导出数据很慢CREATETABLEtmp_20221207ASSELECTaFROMbbbbb;--用NavicatPremium工具,用access的格式,导出文件--110w条数据导出   618.375s参考图片......
  • oracle常用命令
    目录一、基础增删改查1.解锁用户2.修改用户密码3.查看所有用户的缺省表空间4.查看表空间路径,名称,大小5.查看数据库大小6.查询数据库连接数-总数7.查询数据库连接数-详细连接数8.查询字符集9.数据库启停10.修改密码过期时间11.通过表名-->找用户12.性能排查sql  a.查看耗时SQL;b.......
  • ORACLE 11204 for Linux(RAC) 环境配置及数据库参数最佳实践
    ORACLE11204forLinux(RAC)环境配置及数据库参数最佳实践针对Linux6.6(+)版本:1、Linux内核参数配置vm.dirty_ratio=20vm.dirty_background_ratio=3vm.dirty_writeback_centisecs=100vm.dirty_expire_centisecs=500vm.swappiness=10vm.min_free_kbytes=524288##需要根据SGA......