公众号:WarmSmile
前言
由于公司最近接手一个数据治理的项目,需要从原有的Oracle数据库迁移到PostgreSQL数据库。
主要复杂的修改在于视图、函数,储存过程、以及项目工程中的Mapper文件。
所以整理了下迁移过程中遇到的问题,以便后续可以借鉴一下。
工具迁移
如果项目中使用的视图、函数,储存过程、以及项目工程中的Mapper文件不怎么复杂。
可以使用开源的工具ora2pg
[ora2pg简单使用] https://www.cnblogs.com/yongestcat/p/14169793.html
手动迁移
Oracle和PostgreSQL对比
类型 Oracle PostgreSQL 函数 sysdate、systimestamp current_date、current_time、current_timestamp、now sys_guid 有类似sys_guid的函数uuid_generate_v4,但需要安装,create extension "uuid-oosp". nvl coalesce rownum row_number() over() WORKER_NODE_ID_SEQ.NEXTVAL NEXTVAL('WORKER_NODE_ID_SEQ') to_date to_timestamp DATE_FORMAT TO_CHAR REGEXP_SUBSTR regexp_replace DECODE (case when 字段 = 0 then 结果1 else 结果2 end) list_agg string_agg SYS_CONNECT_BY_PATH concat_ws 语法 SELECT ... START WITH 条件1 CONNECT BY PRIOR 条件2 WITH RECURSIVE TEMP AS ( SELECT ... where 条件1 UNION ALL SELECT ... where 条件2 ) SELECT * FROM TEMP ROWNUM = 1 LIMIT 1 "xx" 'xx' (双引号是字段的意思) 可能会遇到的问题
问题 解决 Caused by: org.postgresql.util.PSQLException: ERROR: subquery in FROM must have an alias 子查询表需要别名 recursive query "t" column 7 has type character varying(300) in non-recursive term but type character varying overall 使用CAST(字段 as 类型) 函数 START WITH CONNECT BY PRIOR 使用WITH RECURSIVE 需要显示类型转换的 使用cast函数或者 字段::类型
总结
刚开始进行迁移会有难入手,很多语法都不懂,而且业务sql代码量比较多,有些sql差不多几百行。
但是慢慢入手了就会改的很快,主要是了解sql做什么用花费的时间较长。
具体看自己的项目里面的需要,可能我这里也不怎么齐全。
Past is the past. Today is a new day.过去的已经过去了,今天是崭新的一天。
文章转载自WarmSmile,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
456次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
439次阅读
2025-04-15 17:24:06
明明想执行的SQL是DELETE、UPDATE,但为什么看到的是SELECT(FDW的实现原理解析)
小满未满、
407次阅读
2025-03-19 23:11:26
PostgreSQL初/中/高级认证考试(3.15)通过考生公示
开源软件联盟PostgreSQL分会
402次阅读
2025-03-20 09:50:36
墨天轮个人数说知识点合集
JiekeXu
380次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
366次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
351次阅读
2025-04-01 11:08:44
Oracle 19c RAC更换IP实战,运维必看!
szrsu
316次阅读
2025-04-08 23:57:08
9.9 分高危漏洞,尽快升级到 pgAdmin 4 v9.2 进行修复
严少安
312次阅读
2025-04-11 10:43:23
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
303次阅读
2025-04-15 14:48:05