-- Automatisch mit pg-to-oci_keytables.pl konvertiert.
---
---


DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='NUTZUNG_META';
BEGIN EXECUTE IMMEDIATE 'DROP TABLE NUTZUNG_META CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
/
CREATE TABLE NUTZUNG_META (
	nutz_id           integer NOT NULL,
	gruppe            character varying(30),
	source_table      character varying(50),
	title             character varying(50),
	fldclass          character varying(30),
	fldinfo           character varying(30),
	CONSTRAINT ALKIS_KEY_0 PRIMARY KEY (nutz_id)
);
COMMENT ON TABLE  nutzung_meta                IS 'Gruppierung und Indizierung der zusammen gefassten Nutzungsarten in der Tabelle "nutzung".';
COMMENT ON COLUMN nutzung_meta.nutz_id        IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle "nutzung".';
COMMENT ON COLUMN nutzung_meta.source_table   IS 'Name der importierten Tabelle aus PostNAS.';
COMMENT ON COLUMN nutzung_meta.gruppe         IS 'Objektartengruppe, Gruppierung der Nutzungsart.';
COMMENT ON COLUMN nutzung_meta.title          IS 'Vorzeigbare Bezeichnung der Nutzungsartentabelle.';
COMMENT ON COLUMN nutzung_meta.fldclass       IS 'Name des Feldes aus "source_table", das in Feld "nutzung.class" kopiert wird.';
COMMENT ON COLUMN nutzung_meta.fldinfo        IS 'Name des Feldes aus "source_table", das in Feld "nutzung.info" kopiert wird.';

DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='NUTZUNG';
BEGIN EXECUTE IMMEDIATE 'DROP TABLE NUTZUNG CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
/
CREATE TABLE NUTZUNG (
	gml_id		character(16),
	beginnt		character(20),
	nutz_id		integer,
	class		integer,
	info		integer,
	zustand		integer,
	"name"		varchar2(2047),
	bezeichnung	varchar2(2047),
	CONSTRAINT	nutzung_pk      PRIMARY KEY (gml_id, beginnt),
	CONSTRAINT	nutzung_meta_id FOREIGN KEY (nutz_id)
		REFERENCES nutzung_meta (nutz_id) MATCH SIMPLE
		ON UPDATE NO ACTION ON DELETE CASCADE
)
WITH (OIDS=FALSE);
SELECT AddGeometryColumn('nutzung','ora_geometry','25832','POLYGON',2);
CREATE INDEX ALKIS_KEY_1  ON nutzung (nutz_id, class);
CREATE INDEX ALKIS_KEY_2 ON NUTZUNG(ORA_GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
COMMENT ON TABLE  nutzung             IS 'Zusammenfassung von 26 Tabellen des Objektbereiches "Tatsächliche Nutzung".';
COMMENT ON COLUMN nutzung.gml_id      IS 'Identifikator, global eindeutig';
COMMENT ON COLUMN nutzung.nutz_id     IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle "nutzung".';
COMMENT ON COLUMN nutzung.class       IS 'Klassifizierung innerhalb der Nutzung. Aus verschiedenen Feldern importiert. Siehe "nutzung_meta.fldclass".';
COMMENT ON COLUMN nutzung.info        IS 'Weitere verschlüsselte Information zur Nutzung. Aus verschiedenen Feldern importiert. Siehe "nutzung_meta.fldinfo".';
COMMENT ON COLUMN nutzung.name        IS 'NAM Eigenname';
COMMENT ON COLUMN nutzung.bezeichnung IS 'weitere unverschlüsselte Information wie Zweitname, Bezeichnung, fachliche Nummerierung usw.';
COMMENT ON COLUMN nutzung.zustand     IS 'ZUS "Zustand" beschreibt, ob der Abschnitt ungenutzt ist.';

DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='NUTZUNG_CLASS';
BEGIN EXECUTE IMMEDIATE 'DROP TABLE NUTZUNG_CLASS CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
/
CREATE TABLE NUTZUNG_CLASS (
	nutz_id       integer NOT NULL,
	class         integer NOT NULL,
	label         character varying(100),
	blabla        character varying(1000),
	CONSTRAINT ALKIS_KEY_3 PRIMARY KEY (nutz_id, class),
	CONSTRAINT ALKIS_KEY_4 FOREIGN KEY (nutz_id)
		REFERENCES nutzung_meta (nutz_id) MATCH SIMPLE
		ON UPDATE NO ACTION ON DELETE CASCADE
);
COMMENT ON TABLE  nutzung_class            IS 'Schlüsseltabelle. Feinere Klassifizierung der zusammen gefassten Nutzungsarten.';
COMMENT ON COLUMN nutzung_class.nutz_id    IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle nutzung.';
COMMENT ON COLUMN nutzung_class.class      IS 'Key, Schlüsselwert.';
COMMENT ON COLUMN nutzung_class.label      IS 'Entschlüsselung. Art der Nutzung, Dies Feld soll in der Auskunft angezeigt werden.';
COMMENT ON COLUMN nutzung_class.blabla     IS 'Weitere Erläuterungen und Definitionen dazu.';
CREATE OR REPLACE VIEW nutzung_mehrfache_gml AS
	SELECT	a.gml_id, 
		a.nutz_id,
		a.beginnt as beginnt1, 
		b.beginnt as beginnt2
	FROM nutzung a 
	JOIN nutzung b 
	  ON a.gml_id = b.gml_id
	WHERE a.beginnt < b.beginnt
	;
purge recyclebin;
QUIT;
