2015-09-04 110 views
0

我正在使用ora2pg将数据从oracle迁移到postgres数据库。作为导出模式的第一步。我发现生成的sql文件有很多错误,比如重复的sql语句,函数中的重复参数,在执行sql时失败。我试图手动更正生成的SQL文件中的这些错误。有没有更好的方法或避免在sql文件中的这个错误。 其实我只需要将数据从oracle传输到postgres数据库。但不知道它是否可能。 我使用的是Ora2Pg 15.3,而我的postgres版本是8.4。我正在使用空间数据库。Ora2Pg无法正常工作

谢谢

+2

Postgres的8.4不再支持或保持。你为什么要迁移到如今过时的版本?如果你想要回答你的问题,你应该向我们展示原始的Oracle DDL,Postgres的生成语句和Ora2Pg的完整配置。当我使用Ora2Pg时,我没有这样的问题。 –

+0

如果您仅传输*数据*,则可能导出CSV,然后使用“COPY”导入PostgreSQL。虽然这可能不适用于地理数据。另一种选择是ETL工具。所有马的点是完全有效的,虽然...最显着的版本。 8.4。为什么? –

+0

看到问题是生成的sql文件有这些错误。因此,直到这一点postgres已经失去了图片。我可以使用更新的版本。但是直到现在只有ora2pg 15.3(最新版本)和oracle即时客户端12.1参与其中。 – Shariq

回答

0

你可以尝试升级你的postgresql。
使用postgresql版本9.1和Ora2Pg 17.5版本,一切正常。
但请记住安装版本DBI-1636或更高版本,DBD-Oracle-1.74或更高版本,DBD-Pg-3.5.3或更高版本。 此外,在安装Oracle客户端,

oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm 
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm 
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm 

例如。

并设置正确的路径

export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib 
export ORACLE_HOME=/usr/lib/oracle/12.1/client64/