简体   繁体   中英

ORA-00936 Missing Expression For SDO_GEOMETRY Insert Command

I want to insert sdo_geometry to my table but I can't. I don't know how insert SDO_GEOMETRY value. I'm sure about column names are correct.

I tried to make use of these two sources: Oracle Docs , Oracle Docs Example

Oracle Gives this error:

ORA-00936: mission expression

Script line 8, statement line 8, column 22

INSERT INTO HATYONETIM.MEVCUT_RAYLI_SISTEM_HATLARI(ID, ISIM_HAT, ISIM_KISA, TUR_HAT, ISIM_KURUM, MI_STYLE, MI_PRINX, GEOLOC) 
    VALUES(13, 'Name', 'M', 'Metro', 'Metro', null, 13, 
    MDSYS.SDO_GEOMETRY(2002, 
    8307, 
    0, 
    0, 
    NULL, 
    MDSYS.SDO_ELEM_INFO_ARRAY(NUMBER(1, 2, 1)), 
    MDSYS.SDO_ORDINATE_ARRAY(NUMBER(28.802437, 41.07247, 28.801767, 41.072785, 28.799637, 41.074663, 28.799177, 41.075009, 28.798757, 41.075232, 28.798107, 41.075481, 28.797488, 41.075631, 28.796882, 41.075683, 28.796348, 41.075683, 28.79575, 41.075609, 28.79198, 41.074751, 28.790744, 41.074489, 28.79002, 41.07438, 28.789173, 41.074316, 28.788104, 41.074356, 28.78653, 41.074482, 28.783164, 41.07483, 28.781041, 41.075094, 28.780753, 41.075152, 28.779255, 41.075542, 28.778821, 41.075703, 28.778291, 41.075918, 28.777854, 41.076114, 28.772736, 41.078684, 28.772297, 41.078885, 28.771977, 41.079006, 28.771762, 41.079072, 28.771488, 41.079147, 28.771177, 41.079212, 28.770589, 41.079292, 28.767417, 41.079622, 28.767263, 41.07963))))

Thank u for your help. best wishes.

The SDO_GEOMETRY object type constructor takes 5 arguments but you are passing 7.

Oracle Spatial and Graph defines the object type SDO_GEOMETRY as:

 CREATE TYPE sdo_geometry AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY, SDO_ORDINATES SDO_ORDINATE_ARRAY );

Reduce the number of arguments to 5 by putting your 3rd, 4th & 5th arguments into a SDO_POINT_TYPE object and it works:

CREATE TABLE /*HATYONETIM.*/MEVCUT_RAYLI_SISTEM_HATLARI(
  ID         NUMBER,
  ISIM_HAT   VARCHAR2(20),
  ISIM_KISA  VARCHAR2(20),
  TUR_HAT    VARCHAR2(20),
  ISIM_KURUM VARCHAR2(20),
  MI_STYLE   NUMBER,
  MI_PRINX   NUMBER,
  GEOLOC     MDSYS.SDO_GEOMETRY
);

INSERT INTO /*HATYONETIM.*/MEVCUT_RAYLI_SISTEM_HATLARI(
  ID,
  ISIM_HAT,
  ISIM_KISA,
  TUR_HAT,
  ISIM_KURUM,
  MI_STYLE,
  MI_PRINX,
  GEOLOC
) VALUES(
  13,
  'Name',
  'M',
  'Metro',
  'Metro',
  null,
  13,
  MDSYS.SDO_GEOMETRY(
    2002, 
    8307, 
    MDSYS.SDO_POINT_TYPE(0,0,NULL), 
    MDSYS.SDO_ELEM_INFO_ARRAY( 1, 2, 1 ), 
    MDSYS.SDO_ORDINATE_ARRAY(
      28.802437, 41.07247,
      28.801767, 41.072785,
      28.799637, 41.074663,
      28.799177, 41.075009,
      28.798757, 41.075232,
      28.798107, 41.075481,
      28.797488, 41.075631,
      28.796882, 41.075683,
      28.796348, 41.075683,
      28.79575,  41.075609,
      28.79198,  41.074751, 
      28.790744, 41.074489, 
      28.79002,  41.07438,
      28.789173, 41.074316, 
      28.788104, 41.074356, 
      28.78653,  41.074482, 
      28.783164, 41.07483, 
      28.781041, 41.075094,
      28.780753, 41.075152,
      28.779255, 41.075542,
      28.778821, 41.075703,
      28.778291, 41.075918,
      28.777854, 41.076114,
      28.772736, 41.078684,
      28.772297, 41.078885,
      28.771977, 41.079006, 
      28.771762, 41.079072,
      28.771488, 41.079147,
      28.771177, 41.079212,
      28.770589, 41.079292,
      28.767417, 41.079622,
      28.767263, 41.07963
    )
  )
);

db<>fiddle here

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM