Reputation: 35
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.
Upvotes: 0
Views: 279
Reputation: 167822
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
Upvotes: 1