Oralce数据库转换为PostgreSql数据库中的注意问题

本文记录了从Oracle数据库迁移到Postgres(PPAS)过程中遇到的挑战,包括兼容性、存储过程、boolean类型转换以及建表语法问题。在Postgres中,boolean类型不能直接对应Oracle的number(1),需要使用Hibernate注解进行转换。同时,Oracle导出的建表SQL含有表空间和双引号,可能导致查询问题,需要调整创建表的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

postgres数据库的建表语句

  数据库从oracle切换到paps, 在迁移的过程中有很多问题,最后都一一解决,这里记录一下迁移过程中的坑和解决的问题:

  • postgres数据库对于oracle的语法基本都是兼容的

        虽然代码中使用了spring-data-jpa,但是还是有很多都是原生sql去查询、更新等,所以就会用到一些oracle中的函数,并且最难的是还有大量的存储过程在oracle中执行,这也是很多的系统使用oracle的一个方面——大量使用存储过程,如果没有专门的DBA来维护这些存储过程,后期将非常难以维护和修改(深有体会!!)
        因为有这些问题在,所以需要使用一个基本上都兼容oracle语法以及字段、函数等基本都差不多的数据库,这时候就出现了PPAS(postgres数据库),这个数据库基本上在oracle中使用的函数怎么用,这个数据库中还是怎么用,好像并没有什么变化(至少目前没有遇到过,一些常用的函数都是正常使用)。

  • boolean类型和number(1)的类型

        都知道,在oralce数据库中,如果你的字段为number(1)或者number(1,0) ,那么这个字段在java中的实体类映射的时候,就可以转换为boolean类型,是可以正常使用,但是,在postgres数据库中是不可以的,不能使用boolean类型来转换,但是程序中大量使用到了boolean类型,所以就可以使用HIbernate中的一个注解,来转换这个字段,就可以正常使用了,丝毫不影响.
@Type(type = "org.hibernate.type.NumericBooleanType")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值