2021-07-19

关于oralce数据库导入postgre数据库问题

​ 1.1、使用工具Navicat或者dbever导入时,有时会出现字段类型的导入错误。比如oracle的number类型直接导入时会变成numeric类型,需要自己更改。

https://blog.csdn.net/pg_hgdb/article/details/79211375关于oralce数据库与postgre数据库的数据类型对比

​ 1.2、若Oracle数据库中的列名是小写,如不是小写,则要更改。则迁移过后,原始sql语句不需要过多变更,只需查看以下问题:

​ ①是否存在sql语句中表名是否大写并带引号,若没有则加上。

​ ②查看sql语句中字段名是否带引号,若带引号则将引号去掉。

​ ③查看是否有自增序列,若有自增序列,将原始oralce语句中的自增去掉,并把相对的该表数据导出,把该表清空,然后把对应自增字段从postgre中删除,通过sql语句在postgre中进行主键的重新创建,然后创建一个关于该字段自增的序列。

​ 1.3、oralcepostgre均通过sql语句来实现主键自增,且sql语句不同。如下所示:

Oracle创建一个关于主键自增的序列

	<selectKey resultType="Integer" order="BEFORE" keyProperty="列名">
			select patrol_sequence.NEXTVAL "列名" from dual
		</selectKey>

Postgre创建一个关于主键自增的序列

CREATE SEQUENCE 表名_列明_seq
INCREMENT 1 
start 90//自增值的起始值
NO MINVALUE //不设置最小值
NO MAXVALUE //不设置最大值
CACHE 2;
ALTER TABLE "表名" ALTER COLUMN 列名 SET DEFAULT nextval('表名_列名_seq');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值