oracle to pgsql,oracle to postgresql

oracle to postgresql

迁移PostgreSQL到Oracle涉及到两方面工作:表结构的迁移和表数据的迁移。

表结构的迁移

表结构的迁移相对简单可以借助ESF DatabaseMigration Toolkit进行.。ESF Database MigrationTookit工具是试用版,所以不能通过其迁移数据(它会将所有varchar字段的开头替换为T)。通过ESF DatabaseMigration Toolkit迁移完成后,通过PL/SQL developer的export userobjects得到创建表结构的语句。

表数据的迁移

数据迁移有2种方式:postgreSQL导出insert语句然后执行语句导入或者postgreSQL导出文件然后用oracle的sqlldr方式导入。前者存在clob难以插入以及sql长度限制等问题,推荐后者方式进行数据迁移。

1.Copy命令导出数据文件

copy table1 to'd:/table1.data' delimiter as '|' nullas '';

注意:postgreSQL存在boolean类型导出为t或者f(oracle用int类型1或者2来代替),使用cast函数

Copy (select cast(column asint) from table1 )to 'd:/table1.data' delimiter as '|' null as '';

批量执行使用sql函数进行

create functionexportLiferay(path text) returns void

as

$$

begin

execute 'copy table1 to ''' || path || 'table1_.data''delimiter as ''|'' null as '''' ';

return;

end;

$$

languageplpgsql;

2. 制作sqlldr控制文件

注意:字符集、clob以及时间,日期类型

load data

CHARACTERSET UTF8

into table table1

fields terminated by "|"

optionally enclosed by '"'

trailing nullcols

(

folderid,

groupid,

companyid,

userid,

createdatetimestamp"yyyy-mm-dd hh24:mi:ss.ff",

modifieddatetimestamp"yyyy-mm-dd hh24:mi:ss.ff",

parentfolderid,

name,

descriptionchar(10000)

)

3.执行导入

sqlldr import/import data=table1.data control=table1.ctllog=table1.log readsize=100000000

注意:根据实际情况,调整readsize

0

0

0

0

4232b082ba3a8eb234c9adb9c766845a.png

评论(0)

“还没有人发表评论,快去抢占沙发吧”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值