使用odp.net插入多面

时间:2013-07-03 11:07:41

标签: sql oracle vba odp.net

我有一个定义多边形的字符串(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 1 0,11 11 0),(12 12 0,12 14 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

可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

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