我写了一条sql语句,用c#往oracle数据库中插入空间数据,执行后出现错误“ORA-01704: string literal too long”,
sql语句如下:其中红色........代表很长的坐标,sql总长度大概是19000多个字节。
insert into spatialdb.SPATIAL_AREA(OBJ_ID, OBJ_NAME, OBJ_DATE, OBJ_RZID, OBJ_COORD, OBJ_TYPE, DATAPRECISION, VIEWPRECISION, DATA_SOURCES)values('20050000000000004','无名称目标',to_date('2011-9-27 8:13:52','yyyy-mm-dd hh24:mi:ss'),'0',SDO_GEOMETRY('POLYGON ((119.164319033925 38.3470896280832, 119.160686681975 38.3494788931244, ........))',8307) ,'2005','0','0','10.200.250.98')请高人指教,我该怎么在c#处理一下这条sql语句让它可以执行过去呢?
sql语句如下:其中红色........代表很长的坐标,sql总长度大概是19000多个字节。
insert into spatialdb.SPATIAL_AREA(OBJ_ID, OBJ_NAME, OBJ_DATE, OBJ_RZID, OBJ_COORD, OBJ_TYPE, DATAPRECISION, VIEWPRECISION, DATA_SOURCES)values('20050000000000004','无名称目标',to_date('2011-9-27 8:13:52','yyyy-mm-dd hh24:mi:ss'),'0',SDO_GEOMETRY('POLYGON ((119.164319033925 38.3470896280832, 119.160686681975 38.3494788931244, ........))',8307) ,'2005','0','0','10.200.250.98')请高人指教,我该怎么在c#处理一下这条sql语句让它可以执行过去呢?
SDO_GEOMETRY('POLYGON ((119.164319033925 38.3470896280832, 119.160686681975 38.3494788931244, ........))',8307)
这些东东保存在数组里面,然后插入数据库的时候,只插入数据的名称,以后调用的时候,先获得数组名称,然后再独处数组里面的东西,不久OK了么注意:oracle的字符串varchar2最大只能保存4000个字符,除非使用clob
(
xxxx,
xxxx
xxxxx
);将'POLYGON ((119.164319033925 38.3470896280832, 119.160686681975 38.3494788931244, ........))',8307 储存在此对象中然后,在插入语句中,将 SDO_GEOMETRY('POLYGON ((119.164319033925 38.3470896280832, 119.160686681975 38.3494788931244, ........))',8307)
修改为 ‘sdo_geometry’不知道是否可行?