
正文
oracle转postgresql的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问ora2pg如何使用,如何将oracle数据库中的函数,表,存储过程,数据,触发器等移植到postgresql里呢
高版本PG可以用oracle_fdw来做,类似DBLINK,很方便。也可以用oracle的spool导出,然后用Postgres的COPY导入,速度也较快。
相关问答
Q1: 怎样将postgresql数据迁移到oracle中
迁移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
Q2: 如何把oracle的表导入到postgresql
可以的1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver.通过oracle客户端,在netmanager中建立“服务(TNS server)”,并测试连接上oracle数据库正常2、在sqlserver的DTS(导入和导出数据工具)进行(1)选择数据源:数据源:oracle in oracle9i选择:用户/系统DSN:点击新建DSN:选择数据源类型:系统数据源,下一步:选择驱动程序:oracle in oracle9i,下一步,完成 ,进入oracle odbc driver configration页面再输入:datasorce name:GZDSTNS server name:gz(通过netmanager定义好TNS server)user:(oracle登录用户)填写好以后,进行"TEST Connection"可以连通,则点击“ok”,DSN建立完成数据源选择完成,点击“下一步”进入“选择目的”(2)选择目的目的:用于SQL Server的Microsoft OLE DB提供程序服务器:192.168.0.63选择:使用sqlserver身份登录用户名:sa 密码:pass并刷新,选择好数据库:test(目的数据库,提前建立好的)并点击“下一步”a.从数据源复制表和数据(下一步:选择源表及视图)b.用一条查询语句指定要传输的数据(进行sql编辑)(通过以上选择好要复制的数据表或者相关视图)再点击下一步“保存、调度和复制包”(3)“保存、调度和复制包”时间:立即运行再点击下一步:进行:“正在完成DTS导入导出”向导(4)完成:点击:“完成”按钮,系统进入数据复制“正在执行包”的页面,可以看到数据正在复杂的进度条注意:在ORACLE表和SQL Server表之间'转换'那步很重要,可以改变默认的字段数据类型,如image-text,decimal-int
Q3: oracle的连接(+)转换到postgreSQL里怎么弄?
left join
right join
select * from a,b where a.id=b.id(+);
相当于
select * from a left join b on a.id=b.id
oracle转postgresql的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、oracle转postgresql的信息别忘了在本站进行查找喔。







