目录

Oracle数据库迁移postgreSQL

Oracle数据库迁移postgreSQL

Oracle数据库迁移PostgreSQL

本文将记录一下Oracle数据库迁移至PostgreSQL数据库的整个过程,主要使用Navicat Premium 16以及pgAdmin 4来实现。参考:

表结构迁移

打开Navicat Premium 16,点击导航栏的工具—>数据传输

https://i-blog.csdnimg.cn/blog_migrate/fbcb82d97325834af128cdac3587fcb6.png

左侧选择为需要迁移的oracle数据库,右侧选择为需要迁移到的postgreSQL数据库,点击选项,仅勾选创建表(先创建表结构,再传数据),转换对象名为小写,由于postgreSQL中识别英文大写时需要加双引号,所以迁移过来尽量转换成全部小写。

https://i-blog.csdnimg.cn/blog_migrate/581d5ed6af2e523739aa0b0a6e30a7e9.png

点击下一步,左侧选择要迁移的表,传输模式选择自动,再点击下一步,点击开始,等待完成。

打开pgAdmin 4,可以看到刚才迁移的表结构,打开表属性将oracle中的数据类型对应修改成postgreSQL的数据类型,否则导表数据的时候可能出现部分数据错误(e.g. 在oracle中带小数的number类型数据迁移到postgreSQL后会自动转换为带属性限制的numeric类型,此时导入数据会数据错误,需要手动将数据类型改为无长度规模限制的numeric类型),具体数据类型转换可参考

https://i-blog.csdnimg.cn/blog_migrate/b100c0d8aa1a3c331e98ae38d1e66318.png

表数据迁移

打开Navicat Premium 16,同样点击数据传输,选择传输源和传输目标,选项中勾选创建记录,去掉使用完整插入语句选项,点击确定下一步。

https://i-blog.csdnimg.cn/blog_migrate/cc96d920098fc1874de2dde1d74d0ec9.png

左侧选择要传输的表,右侧传输模式选择高级,目标名改为表名的小写,由于刚才导入表结构的时候已经转小写,所以此处目标名也需要小写,否则找不到表。

https://i-blog.csdnimg.cn/blog_migrate/6ab11d5e7db48ba08099dc34f5f08d47.png

点击下一步,点击开始,等待完成。

此时在pgAdmin 4或者Navicat中可以看到迁移好的表。

代码修改

SpringBoot或SpringCloud项目中需在配置文件中修改数据库配置

https://i-blog.csdnimg.cn/blog_migrate/2614edf878cb0b86b30cac7697489419.png

同时修改mybatis文件,将oracle函数换为pstgreSQL函数。部分函数转换参考: