Oracle脚本向Postgresql转化利器

1 背景

     目前,国内掀起一股去IOE的浪潮,其中大部分厂商采用开源的Postgresql数据库作为Oracle数据库的替代品,但是具体用Postgresql替换Oracle数据库的过程,碰到各种问题,特别在老旧应用系统Oracle数据库替换成Postgresql后,原Oracle数据库数据(Oracle语法及其复杂)和脚本向Postgresql转化成为了前进的拦路虎,让很多人望而却步,可喜的是,现在有一款国人自产的数据库脚本转化利器(恒辉通用桌面管理工具)能够自适应完成Oracle脚本向Postgresql数据库脚本的转化。
    HHDBCS数据库管理工具是一款纯国产数据库管理工具,可管理所有常见关系型数据库(Oracle/Mysql/HHDB/Postgresql/达梦等);通过所有国产化软件硬件兼容性认证,可在所有平台上运行。体验请移步:
去https://www.deskui.com (HHDBCS社区),下载最新版本
去https://www.deskui.com (HHDBCS社区),下载Linux下的JDK
把下载的jdk解压到,HHDBCS解压后的jdk目录
把HHDBCS解压后的start_csadmin.sh改为可运行, chmod +x start_csadmin.sh
直接运行start_csadmin.sh

2 转化过程

Oracle脚本:

1
2
3
4
5
6
7
8
9
SELECT
    1 as con_1, '2' as
    con_2,tt.emp_id,lead_id,emp_name,salary,level,to_char
    (salary,'999')
FROM
    emp tt
WHERE
    level>1 START WITH lead_id = 0 connect BY prior
    tt.emp_id = lead_id

  

 

 转化的Postgresql脚本:

1
2
3
4
5
6
WITH RECURSIVE Tab_HH__9 AS (
SELECT tt.emp_id,lead_id,emp_name,salary,1 AS level ,to_char(salary::numeric,'999') AS alias_HH__18  FROM EMP tt WHERE lead_id::numeric=0 
UNION ALL SELECT Tab_HH__10.emp_id,Tab_HH__10.lead_id,Tab_HH__10.emp_name,Tab_HH__10.salary,Tab_HH__9.level + 1 AS level ,Tab_HH__10.alias_HH__18 FROM (
SELECT tt.emp_id,lead_id,emp_name,salary,to_char(salary::numeric,'999') AS alias_HH__18  FROM EMP tt) Tab_HH__10
INNER JOIN Tab_HH__9 ON Tab_HH__9.emp_id=Tab_HH__10.lead_id)
SELECT 1 AS con_1 ,'2' AS con_2 ,emp_id,lead_id,emp_name,salary,level,alias_HH__18 FROM Tab_HH__9 WHERE level>1 ;

  

posted @   恒辉信达  阅读(311)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示