1.Windows下安装Ora2Pg并从oracle中导出数据到postgresql
https://blog.csdn.net/pg_hgdb/article/details/79483743
1.2 在cmd下安装dmake ppm install dmake
1.3 下载ora2pg并解压 下载地址 https://sourceforge.net/projects/ora2pg/
D:\highgo\ora2pg-18.2>perl Makefile.PL
1.4 D:\highgo\ora2pg-18.2>dmake && dmake install
1.5 安装oracle驱动
1.5.1 C:\Perl64\cpan\sources\authors\id\P\PY\PYTHIAN\DBD-Oracle-1.74>cpan
1.5.3 cpan> install DBD::Oracle
配置Ora2pg配置文件:C:\ora2pg\ora2pg.conf
ORACLE_HOME D:\app\Administrator\product\11.2.0\dbhome_1
ORACLE_DSN dbi:Oracle:host=127.0.0.1;sid=orcl
OUTPUT C:\ora2pg\output.sql --导出文件放置位置
C:\Perl64\cpan\sources\authors\id\P\PY\PYTHIAN\DBD-Oracle-1.74>ora2pg -c C:\ora2pg\ora2pg.conf
2.pgAdmin3(postgrepsql可视化工具的使用)
https://www.jianshu.com/p/140cb8c6a2c6
4.PostgreSQL和Oracle的SQL差异分析之五:函数的差异
https://yq.aliyun.com/articles/59422
5.如何解决 An error occured executing the Microsoft VC+runtime installer
https://blog.csdn.net/mangli/article/details/80623674
6.Failed to load sql modules into the database cluster during PostgreSQL Installation
2.trunc(时间) trunc(date) date_trunc()
trunc(sysdate) == date_trunc('day',current_date)
trunc(sysdate) == date_trunc('day',current_date)
https://blog.csdn.net/liguangxianbin/article/details/80166574
4.postgresql != 发现有个问题,!=-1没加空格会报错,只是负数会报错,这个我还没找到原因,只是查询会报错
5.有用到to_date用来作为时间比较的,如果有涉及到时分秒的比较要改成to_timestamp
6.说明下,如果数据库中的字段是bigint的话,后台传参要用int类型等数字类型,不能用string传值,不然会报错
7.如果字段类型是bigint后台sql查下不能用in()查下,会报类型错误,可以用多个or连接
10. 时间差 计算函数 date_part(date_trunc修改成date_part)
11.时间加一天:UPDATE pm_milestone_sign_in SET sign_in_time = (sign_in_time + interval '1 D') WHERE 1 = 1;
1.postgresql数据库字段名是小写的,oracle数据库默认字段是大写,后台从oracle数据库中查出来的字段是大写的,postgresql为小写
2.举例“select id from V_RESOUSEINFO”查出的id在oracle中为大写,在postgresql中为小写,通过"select id as \"ID\"from V_RESOUSEINFO"可以转成大写,注意别名为双引号转义,不能是单引号
3.通过修改语句可以转成大写,但不一定要修改,如果你在取得数据后进行一层转换,就是获得map后再进行转换map.get(key)的方式转换就不要修改语句了,这边的key是不分大小写的(安利下,hashmap中的key是有区分大小写的,Spring JdbcTemplate 查询出的Map不区分大小写),但是如果直接将取得的数据传到前端,就要进行一层处理,原因第一点