【发布时间】:2012-04-05 02:10:06
【问题描述】:
我正在尽最大努力将空间数据库从 Oracle 迁移到 Postgresql,但失败得很惨。
我已经尝试了许多不同的途径,正如您在我之前的问题中看到的那样,但没有一个有效。有人可以告诉我一种相对无痛的方法,因为我现在对此一无所知。
我曾尝试使用 SwisSQL 等 3rd 方软件,但失败并出现大量错误。我尝试创建充满插入语句的文件,然后创建一个 C# 程序来解析这些文件并用相关的 postgis 替换 oracle 空间类型,并且由于这些文件的大小,在最基本的替换上出现内存不足异常而失败.一些表中有超过 200 万条记录,因此您可以想象包含每个插入的文件的大小。
我非常渴望找到解决方案,因为它严重阻碍了该项目的进展。我需要 Postgresql 中的数据,因为我正在编写需要与数据库无关的软件,这意味着它必须在每个数据库上的真实数据上进行测试。
我们会张开双臂欢迎任何想法。如果不是出于空间方面的考虑,它会简单得多,现在很可能已经完成了。
编辑:
以下是 Toad for Oracle 生成的插入示例,用于了解数据复杂性。
Insert into CLUSTER_1000M
(CLUSTER_ID, CELL_GEOM, CELL_CENTROID)
Values
(4410925,
"MDSYS"."SDO_GEOMETRY"(2003,81989,NULL,
"MDSYS"."SDO_ELEM_INFO_ARRAY"(1,1003,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
"MDSYS"."SDO_ORDINATE_ARRAY"(80000,103280,81000,104280,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)),
"MDSYS"."SDO_GEOMETRY"(2001,81989,
"MDSYS"."SDO_POINT_TYPE"(80500,103780,NULL),NULL,NULL));
【问题讨论】:
-
我认为这实际上可能会在gis.stackexchange.com 上获得更好的牵引力。
-
我知道这不是你想要的,但它可能会给你一些好主意:How to batch synchronize data from ArcSDE to PostGIS?
-
“记录数”很少重要——每条记录的复杂性通常很重要。如果您的空间数据有数千个环、错误的几何形状等,那么您可能会遇到错误。
-
我将添加一个由 oracle 生成的插入示例,它可能会给出复杂性的概念
标签: oracle postgresql postgis spatial