postgresql数据库迁移到oracle

postgresql数据库迁移到oracle,第1张

概述迁移PostgreSQL到Oracle涉及到两方面工作:表结构的迁移和表数据的迁移。   表结构的迁移   表结构的迁移相对简单可以借助ESF Database Migration Toolkit,但不能通过其迁移数据(它会将所有varchar字段的开头替换为T)。通过ESF Database Migration Toolkit迁移完成后,通过PL/SQL developer的export use


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

表结构的迁移相对简单可以借助ESF Database Migration Toolkit,但不能通过其迁移数据(它会将所有varchar字段的开头替换为T)。通过ESF Database Migration Toolkit迁移完成后,通过PL/sql developer的export user objects得到创建表结构的语句。

表数据的迁移

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

1.copy命令导出数据文件

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

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

copy(selectcast(column as int)from table1)to 'd:/table1.data' delimiter as '|'null as '';

批量执行使用sql函数进行

create function exportliferay(path text) returns voID

as

$$

begin

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

return;

end;

$$

language plpgsql;

2.制作sqlldr控制文件

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

load data

CHaraCTERSET UTF8

into table table1

fIElds terminated by "|"

optionally enclosed by '"'

trailing nullcols

(

folderID,

groupID,

companyID,

userID,

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

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

parentfolderID,

name,

description char(10000)

)

3.执行导入

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

根据实际情况,调整readsize

总结

以上是内存溢出为你收集整理的postgresql数据库迁移到oracle全部内容,希望文章能够帮你解决postgresql数据库迁移到oracle所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存