首页 文章

Ora2Pg无法在conf文件中生成包含COPY的导出类型的sql脚本

提问于
浏览
0

我正在使用ora2pg将架构和数据从oracle迁移到postgres数据库 .

conf文件有以下修改:

  • 提供了ORACLE_HOME和DSN

  • 将导出类型设置为: TYPE, TABLE, PACKAGE, COPY, VIEW, GRANT, SEQUENCE, TRIGGER, FUNCTION, PROCEDURE, TABLESPACE, TYPE, PARTITION, MVIEW, QUERY (已删除FDW)

当我运行该工具时,我收到以下错误:

DBD :: Oracle :: db准备失败:ORA-01741:非法零长度标识符(DBD E RROR:OCIStmtPrepare)[用于语句“SELECT FROM”“ . ”GT_LAYER_ENTITIES“a”]在D:/ Dwimperl / perl / site / lib / Ora2Pg.pm第8808行 . 致命:ORA-01741:非法零长度标识符(DBD错误:OCIStmtPrepare)正在中止导出...

我提供的用户拥有DBA权限 .

如果您有任何解决方案,请告诉我 .

谢谢

1 回答

  • 0

    您确实安装了正确的 DBD-Oracle 版本 . 你可以用 DBD-Oracle-1.74 来证明 .
    我的建议是,你不要使用配置文件来提取表,查看等 .
    但首先要创建一个新项目:

    ora2pg --project_base /home/user/ --init_project project_name
    
    cd project_name/
    
    ora2pg -c ora2pg.conf -t TABLE -o tables.sql -b schema/tables/
    
    ora2pg -c ora2pg.conf -t SEQUENCE -o sequence.sql -b schema/sequences/
    
    ora2pg -c ora2pg.conf -t TRIGGER -o trigger.sql -b schema/triggers/
    
    ora2pg -c ora2pg.conf -t PROCEDURE -o procedure.sql -b schema/procedures
    
    ora2pg -c ora2pg.conf -t VIEW -o view.sql -b schema/views/
    
    ora2pg -c ora2pg.conf -t GRANT -o grant.sql -b schema/grants/
    

    并在导入db postgres表,序列等之后......最后,在db上导入数据 .

    ora2pg -c ora2pg.conf -t INSERT -o data.sql -b data/
    

    最重要的是,您为导入创建了一个psql数据库和用户 .

相关问题