问题描述
INSERTintoWZW_LAYER(ID,VOLTAGE,MI_PRINX,GEOLOC.SDO_GTYPE,GEOLOC.SDO_SRID,GEOLOC.SDO_POINT.X,GEOLOC.SDO_POINT.Y)VALUES(19,6300.00000,20,2001,8307,113.92153,34.40705);上面是我向一个空间表中查数据的语句,但是出现以下错误提示信息:GEOLOC.SDO_SRID,GEOLOC.SDO_POINT.X,GEOLOC.SDO_POINT.Y)*ERRORatline2:ORA-00904:"GEOLOC"."SDO_POINT"."Y":invalididentifier这个表的创建语句如下:createtableWZW_LAYER(IDNUMBER(10),VOLTAGENUMBER(9,5),MI_STYLEVARCHAR2(254),MI_PRINXNUMBER(10)notnull,GEOLOCMDSYS.SDO_GEOMETRY)为什么会出现以上错误?怎样才能解决?既然可以单独查询geoloc.SDO_POINT.X,geoloc.SDO_POINT.Y,为什么不能指定插入数据到这些列呢?
解决方案
解决方案二:
不能直接写空间字段吧..空间字段是个大字段..
解决方案三:
SDO_GEOMETRY整个对象是一个字段,必须按该对象的格式插入,例如:INSERTINTOcustomersVALUES(1001,'Nichols','Alexandra','17MapleDrive','Nashua','NH','03062',SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(-71.48923,42.72347,NULL),NULL,NULL));SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(-71.48923,42.72347,NULL),NULL,NULL)是一个整体,不能拆分