Search code examples
sqloracle-databaseoracle11goracle-spatial

missing right parenthesis while inserting record in polygon a sdo_geomety data type column


I have created a table in oracle 11g

  CREATE TABLE "SYSTEM"."CN_PLOT_OVERLAP" 
   (    "ID" NUMBER(6,0), 
    "UNIT_CODE" VARCHAR2(2 BYTE), 
    "SEASON_CNTRL" NUMBER(2,0), 
    "RYOT_CODEE" VARCHAR2(9 BYTE), 
    "SHARE_OR_PERC_VAL" NUMBER(1,2), 
    "PLOT_NO" VARCHAR2(15 BYTE), 
    "TOTAL_AREA" BINARY_FLOAT, 
    "LAT1" BINARY_FLOAT, 
    "LNG1" BINARY_FLOAT, 
    "LAT2" BINARY_FLOAT, 
    "LNG2" BINARY_FLOAT, 
    "LAT3" BINARY_FLOAT, 
    "LNG3" BINARY_FLOAT, 
    "LAT4" BINARY_FLOAT, 
    "LNG4" BINARY_FLOAT, 
    "POLYGON" "SDO_GEOMETRY", 
     CONSTRAINT "ID_PK" PRIMARY KEY ("ID")

and already inserted values expecting polygon. Now when I am inserting values for Polygon it shows an error

**SQL Error: ORA-00907: missing right parenthesis
1. 00000 -  "missing right parenthesis"**

Basically I have four coordinates of a farm and inserting it in this column using following sql

update cn_plot_overlap set polygon = (1,
  MDSYS.sdo_geometry(
  2003,
  4326,
  NULL,
  sdo_elem_info_array(1,1003,1),
  sdo_ordinate_array(27.79094,80.5275449,   
                      27.7912333,80.527696, 
                      27.79085,80.5285083,
                      27.790571,80.5283216,
                      27.79094,80.5275449
                      )
                    )
                    );

Solution

  • What is the 1 in the first line of your UPDATE? It shouldn't be there. This is how you should create SDO_GEOMETRY object:

    update cn_plot_overlap set polygon = 
      MDSYS.sdo_geometry(
      2003,
      4326,
      NULL,
      sdo_elem_info_array(1,1003,1),
      sdo_ordinate_array(27.79094,80.5275449,   
                          27.7912333,80.527696, 
                          27.79085,80.5285083,
                          27.790571,80.5283216,
                          27.79094,80.5275449
                          )
                        );
    

    I also do not recommend creating any objects in SYS user's schema.