Cannot INSERT records into Partitioned Spatial Table and Index
651348Sep 2 2009 — edited Sep 2 2009I am trying to tune our Spatial Storage by creating partitioning our spatial_entity table and index. I used the World Geographic Reference System (GEOREF) creating a partition for each 15 x 15 degree grid square assigning a partition key of decimal longitude, decimal_latitude. The build went OK, however when trying to insert a data record I receive an ORA-14400: Inserted partition key does not map to any partition.
I validated the CREATE(s), and all appears correct, but obviously something is not correct, which is prompting for expert help in this forum.
I would be very grateful for your help.
Below are the code snippets for the table and index, and an insert statement.
CREATE TABLE spatial_entity
(
geoloc_type VARCHAR2 (60 BYTE) NOT NULL
,entity_id NUMBER NOT NULL
,metadata_xml_uuid VARCHAR2 (40 BYTE) NOT NULL
,geoloc MDSYS.sdo_geometry NOT NULL
,nee_method CHAR (1 BYTE) NOT NULL
,nee_status CHAR (1 BYTE) NOT NULL
,decimal_latitude NUMBER (15, 6) NOT NULL
,decimal_longitude NUMBER (15, 6) NOT NULL
)
PARTITION BY RANGE (decimal_longitude, decimal_latitude)
(
PARTITION p_lt_0_90s
VALUES LESS THAN (1, -90)
,PARTITION p_lt_0_75s
VALUES LESS THAN (1, -75)
,PARTITION p_lt_0_60s
VALUES LESS THAN (1, -60)
,PARTITION p_lt_0_45s
VALUES LESS THAN (1, -45)
,PARTITION p_lt_0_30s
VALUES LESS THAN (1, -30)
,PARTITION p_lt_0_15s
VALUES LESS THAN (1, -15)
,PARTITION p_lt_0_0
VALUES LESS THAN (1, 0)
,PARTITION p_lt_0_15n
VALUES LESS THAN (1, 15)
,PARTITION p_lt_0_30n
VALUES LESS THAN (1, 30)
,PARTITION p_lt_0_45n
VALUES LESS THAN (1, 45)
,PARTITION p_lt_0_60n
VALUES LESS THAN (1, 60)
,PARTITION p_lt_0_75n
VALUES LESS THAN (1, 75)
,PARTITION p_lt_0_90n
VALUES LESS THAN (1, maxvalue)
....
CREATE INDEX geo_spatial_ind ON spatial_entity (geoloc)
INDEXTYPE IS mdsys.spatial_index
PARAMETERS ('layer_gtype=MULTIPOINT TABLESPACE=GEO_SPATIAL_IND') LOCAL
(PARTITION p_lt_0_90s,
PARTITION p_lt_0_75s,
PARTITION p_lt_0_60s,
PARTITION p_lt_0_45s,
PARTITION p_lt_0_30s,
PARTITION p_lt_0_15s,
PARTITION p_lt_0_0,
PARTITION p_lt_0_15n,
PARTITION p_lt_0_30n,
PARTITION p_lt_0_45n,
PARTITION p_lt_0_60n,
PARTITION p_lt_0_75n,
PARTITION p_lt_0_90n,
...
INSERT INTO spatial_entity
(
geoloc_type
,entity_id
,metadata_xml_uuid
,geoloc
,nee_method
,nee_status
,decimal_latitude
,decimal_longitude
)
VALUES
(
'BATCH'
,0
,'6EC25B76-8482-4F95-E0440003BAD57EDF'
,"MDSYS"."SDO_GEOMETRY"
(
2001
,8307
,"MDSYS"."SDO_POINT_TYPE" (32.915286, 44.337902, NULL)
,NULL
,NULL
)
,'M'
,'U'
,32.915286
,44.337902
);
Thank you for you help.
Dave