一、ora2pg:
ora2pg工具可以将oracle的结构转为postgresql格式,可以配置Oracle的模式导出、客户端编码、导出类型、ora2pg中使用的数据类型转换等,最终输出为sql文件,在postgresql中运行即可。
二、安装依赖
1、在windows10上安装perl,下载地址Strawberry Perl for Windows
2、下载最新ora2pg的安装包,地址ora2pg download | SourceForge.net
3、安装oracle instantclient,Instant Client for Microsoft Windows (x64) 64-bit
三、安装步骤
1、解压缩下载的ora2pg压缩包;
2、在cmd中切换到解压目录;
执行perl Makefile.PL
安装完后会有提示执行命令:dmake && dmake install
然后再执行命令:gmake && gmake install
3、安装Oracle 【网上有很多教程啦】
4、驱动DBD::Oracle,执行命令:
- cpan
- get DBD::Oracle
- install DBD::Oracle
5、修改配置文件c:\ora2pg\ora2pg_conf.dist
# 设置Oracle主目录:Oracle的安装目录
ORACLE_HOME c:\instantclient_11_2
# 设置Oracle数据库连接(数据源、用户、密码)
ORACLE_DSN dbi:Oracle:host=192.168.140.23;sid=orcl;port=1521
ORACLE_USER test
ORACLE_PWD testpwd
# 要使用的 Oracle 模式/所有者
#SCHEMA TEST
# EXPORT SECTION(导出类型和过滤器)
# 导出类型。值可以是以下关键字:
# TABLE 导出表、约束、索引...
#PACKAGE 导出包
# INSERT 从表中导出数据作为 INSERT 语句
# COPY 将表中的数据导出为 COPY 语句
# VIEW 导出视图
# GRANT 导出授权
# SEQUENCE 导出序列
# TRIGGER 导出触发器
# FUNCTION 导出函数
# PROCEDURE 导出程序
# TABLESPACE 导出表空间(仅限 PostgreSQL >= 8)
# TYPE 导出用户定义的 Oracle 类型
# PARTITION 导出范围或列表分区 (PostgreSQL >= v8.4)
# FDW 导出表作为外部数据包装表
# MVIEW 将物化视图导出为快照刷新视图
# QUERY 从文件转换 Oracle SQL 查询。
# KETTLE 生成 Kettle 使用的 XML ktr 模板文件。
# DBLINK 生成 oracle 外部数据包装服务器以用作 dblink。
# SYNONYM 将 Oracle 的同义词导出为其他模式对象的视图。
# DIRECTORY 将 Oracle 的目录导出为 external_file 扩展对象。
# LOAD 通过多个 PostgreSQl 连接调度查询列表。
# TEST 执行 Oracle 和 PostgreSQL 数据库之间的差异。
# TEST_COUNT 只在 Oracle 和 PostgreSQL 表之间执行行计数。
# TEST_VIEW 对视图返回的行数两边进行计数
# TEST_DATA 对两边的行进行数据验证检查。
TYPE TABLE,VIEW,SEQUENCE,TRIGGER,FUNCTION,PROCEDURE
#设置从哪个对象导出
#ALLOW TABLE_TEST
# 导出文件存储位置
OUTPUT C:\output.sql
# 必须写入所有转储文件的基本目录
# OUTPUT_DIR /var/tmp
6、执行导出语句: ora2pg -c c:\ora2pg\ora2pg_conf.dist
注意:如果type设置为多个时,output不能写具体的是哪个目录,因为导出多个type时,是以type_output.sql命名文件的