我掌握了Oracle .dmp
文件,并希望将它包含的一些表导入PostgreSQL数据库。实时Oracle数据库上的answers here推荐迁移工具,但我们最感兴趣的表(以及数据库)是too big for the free Oracle license。
这个问题的答案让我走上了一条有趣的道路:使用impdp
将.dmp
文件中的表格转换为.sql
脚本。现在的问题似乎是使它们与PostgreSQL兼容。每行似乎都是INSERT
d,格式为:
EXECUTE IMMEDIATE stmt USING 'C',t,p,sp,c,s,
4,9.15265846187305E-07,4,5740,1,3.49431637447542E+35,4.42973871612322E+35,37,1,5740,4.42973871612322E+35,
TO_DATE('2016-08-08 22:07:25',df),'434C4F5345442020202020202020202020202020202020202020202020202020','55504C4F41444544202020202020202020202020202020202020202020202020',nv,2,nv;
其中stmt
似乎是复制每一行,同时将其插入“SYS”。“IMPDP_STATS”表:
stmt varchar(300) = 'INSERT INTO "SYS"."IMPDP_STATS" (type,version,c1,c2,c3,c4,c5,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,d1,r1,r2,ch1,flags,cl1) VALUES (:1,6,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23)';
使用SQLines Studio
并没有真正帮助清理PostgreSQL脚本。