我正在使用ora2pg将架构和数据从oracle迁移到postgres数据库。
conf文件有以下修改:
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权限。
如果您有任何解决方案,请告诉我。
由于
答案 0 :(得分: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数据库和用户。