1

我有一个字符串 (GeoObj.ToString) 定义多面体: MULTIPOLYGON (((1 1 0, 1 10 0, 10 10 0, 10 1 0, 1 1 0), (2 2 0, 2 4 0, 4 4 0 , 4 2 0, 2 2 0), (5 5 0, 5 9 0, 9 9 0, 9 5 0, 5 5 0)), ((11 11 0, 11 20 0, 20 20 0, 20 11 0 , 11 11 0), (12 12 0, 12 14 0, 14 14 0, 14 12 0, 12 12 0), (15 15 0, 15 19 0, 19 19 0, 19 15 0, 15 15 0)) )

以及一个名为 TEST_POLYGON 的表,其 ID (varchar2(38)) 和几何字段 (SDO_GEOMETRY)。

现在我试图通过这种方式插入多面体:

Dim oda = New OracleDataAdapter()
Dim insertStatement = "INSERT INTO TEST_POLYGON (ID, GEOMETRY) "
insertStatement = insertStatement & " VALUES (:id, sdo_geometry(:geometry)) "
oda.InsertCommand = New OracleCommand(insertStatement, dbConn)
oda.InsertCommand.Parameters.Add(":id", Guid.NewGuid.ToString)
oda.InsertCommand.Parameters.Add(":geometry", GeoObj.ToString)
oda.InsertCommand.ExecuteNonQuery()

Guid.NewGuid.ToString 只是一个随机的 uuid。但现在我收到以下错误:

A first chance exception of type 'Oracle.DataAccess.Client.OracleException' occurred in Oracle.DataAccess.dll
ORA-29532: Java call terminated by uncaught Java exception: java.sql.SQLException: -2
ORA-06512: at "MDSYS.SDO_UTIL", line 187
ORA-06512: at "MDSYS.SDO_GEOMETRY", line 76
ORA-06512: at line 1

有什么问题?

4

1 回答 1

0

好的,解决了。几何数据显然不支持 3 维 - 切换到 2D 并且它完美无缺。

于 2013-07-03T14:07:32.563 回答