Code:
DROP TABLE village CASCADE CONSTRAINTS;
CREATE TABLE village (
building_id integer PRIMARY KEY,
name VARCHAR2(30),
visitors integer,
building SDO_GEOMETRY
);
/*****************index********************/
delete from user_sdo_geom_metadata where table_name = 'VILLAGE';
INSERT INTO user_sdo_geom_metadata
( TABLE_NAME,
COLUMN_NAME,
DIMINFO,
SRID
)
VALUES
( 'village',
'building',
SDO_DIM_ARRAY( -- 20X20 grid
SDO_DIM_ELEMENT('X', 0, 1000, 0.5),
SDO_DIM_ELEMENT('Y', 0, 1000, 0.5)
),
NULL -- SRID
);
drop index village_idx;
CREATE INDEX village_idx ON village(building) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
-- inserts
INSERT INTO village VALUES(1,'Kirche', 4,
SDO_GEOMETRY(
2003,
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,1),
SDO_ORDINATE_ARRAY(100,100, 100,120, 80,120, 80,150 ,100,200, 150,200, 150,150, 200,150, 200,120, 150,120, 150,100)
)
);
drop table visitors;
create table visitors(
id integer,
position SDO_GEOMETRY );
drop sequence visitors_seq;
create sequence visitors_seq;
INSERT INTO visitors VALUES (visitors_seq.nextval,
SDO_GEOMETRY(
2001,
NULL,
SDO_POINT_TYPE(160, 100, NULL),
NULL,
NULL
)
);
commit;
SELECT * FROM village WHERE SDO_INSIDE(village.building, visitors.position) = 'TRUE';
Hallo, ich versuche zu schauen ob sich irgendeine "Visitors" innerhalb von einem Gebäude befinden bzw in der Kirche.
Beim select jedoch bekomme ich diesen fehler:
Code:
Fehler beim Start in Zeile : 70 in Befehl -
SELECT * FROM village WHERE SDO_INSIDE(village.building, visitors.position) = 'TRUE'
Fehler bei Befehlszeile : 70 Spalte : 59
Fehlerbericht -
SQL-Fehler: ORA-00904: "VISITORS"."POSITION": ungültiger Bezeichner
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Irgendeine Vorschläge was ich falsch mache?