source: trunk/import/pp_definition_ORACLE.sql @ 431

Revision 253, 9.3 KB checked in by astrid.emde, 11 years ago (diff)

ORACLE Syntax zur Geometriespaletenerstellung noch anpassen

Line 
1-- Automatisch mit pg-to-oci_keytables.pl konvertiert.
2---
3---
4
5DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='PP_GEMEINDE';
6BEGIN EXECUTE IMMEDIATE 'DROP TABLE PP_GEMEINDE CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
7/
8CREATE TABLE PP_GEMEINDE (
9    gid                 integer,
10    land                integer NOT NULL,
11    regierungsbezirk    integer,
12    kreis               integer,
13    gemeinde            integer NOT NULL,
14    gemeindename        varchar2(80),
15    anz_gemarkg         integer,
16    CONSTRAINT ALKIS_KEYPP_0 PRIMARY KEY (land, gemeinde)
17  );
18CREATE UNIQUE INDEX ALKIS_KEYPP_1 ON pp_gemeinde (gid);
19
20--TODO SELECT AddGeometryColumn('pp_gemeinde','the_geom','25832','MULTIPOLYGON',2);
21
22CREATE INDEX ALKIS_KEYPP_2 ON PP_GEMEINDE(THE_GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
23
24--TODO SELECT AddGeometryColumn('pp_gemeinde','simple_geom','25832','MULTIPOLYGON',2);
25
26CREATE INDEX ALKIS_KEYPP_3 ON PP_GEMEINDE(SIMPLE_GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
27  COMMENT ON TABLE  pp_gemeinde                IS 'Post-Processing: Gemeinde';
28  COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer';
29  COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'prÀzise Geometrie aus Summe aller Gemarkungen';
30  COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.';
31 
32DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='PP_GEMARKUNG';
33BEGIN EXECUTE IMMEDIATE 'DROP TABLE PP_GEMARKUNG CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
34/
35CREATE TABLE PP_GEMARKUNG (
36    gid                 integer,
37    land                integer NOT NULL,
38    regierungsbezirk    integer,
39    kreis               integer,
40    gemeinde            integer NOT NULL,
41    gemarkung           integer NOT NULL,
42    gemarkungsname      varchar2(80),
43    anz_flur            integer,
44    CONSTRAINT ALKIS_KEYPP_4 PRIMARY KEY (land, gemarkung)
45  );
46CREATE UNIQUE INDEX ALKIS_KEYPP_5 ON pp_gemarkung (gid);
47--TODO SELECT AddGeometryColumn('pp_gemarkung','the_geom','25832','MULTIPOLYGON',2);
48CREATE INDEX ALKIS_KEYPP_6 ON PP_GEMARKUNG(THE_GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
49--TODO SELECT AddGeometryColumn('pp_gemarkung','simple_geom','25832','MULTIPOLYGON',2);
50CREATE INDEX ALKIS_KEYPP_7 ON PP_GEMARKUNG(SIMPLE_GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
51COMMENT ON TABLE  pp_gemarkung               IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde';
52COMMENT ON COLUMN pp_gemarkung.gemeinde      IS 'Gemeindenummer';
53COMMENT ON COLUMN pp_gemarkung.gemarkung     IS 'Gemarkungsnummer';
54COMMENT ON COLUMN pp_gemarkung.the_geom      IS 'prÀzise Geometrie aus Summe aller Fluren';
55COMMENT ON COLUMN pp_gemarkung.simple_geom   IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.';
56 
57DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='PP_FLUR';
58BEGIN EXECUTE IMMEDIATE 'DROP TABLE PP_FLUR CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
59/
60CREATE TABLE PP_FLUR (
61    gid                 integer,
62    land                integer NOT NULL,
63    regierungsbezirk    integer,
64    kreis               integer,
65    gemarkung           integer NOT NULL,
66    flurnummer          integer NOT NULL,
67    anz_fs              integer,
68    CONSTRAINT ALKIS_KEYPP_8 PRIMARY KEY (land, gemarkung, flurnummer)
69  );
70CREATE UNIQUE INDEX ALKIS_KEYPP_9 ON pp_flur (gid);
71--TODO SELECT AddGeometryColumn('pp_flur','the_geom','25832','MULTIPOLYGON',2);
72CREATE INDEX ALKIS_KEYPP_10 ON PP_FLUR(THE_GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
73COMMENT ON TABLE  pp_flur                IS 'Post-Processing: Flur';
74COMMENT ON COLUMN pp_flur.gemarkung      IS 'Gemarkungsnummer';
75COMMENT ON COLUMN pp_flur.the_geom       IS 'Geometrie aus Summe aller FlurstÃŒcke';
76 
77DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='GEMEINDE_PERSON';
78BEGIN EXECUTE IMMEDIATE 'DROP TABLE GEMEINDE_PERSON CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
79/
80CREATE TABLE GEMEINDE_PERSON (
81    land                integer,
82    regierungsbezirk    integer,
83    kreis               integer,
84    gemeinde            integer,
85    person              varchar2(16),
86    buchtyp             integer,
87    CONSTRAINT ALKIS_KEYPP_11 PRIMARY KEY (gemeinde, person)
88  );
89COMMENT ON TABLE  gemeinde_person            IS 'Person ist EigentÃŒmer von mindestens einem FlurstÃŒck in der Gemeinde';
90COMMENT ON COLUMN gemeinde_person.gemeinde   IS 'Gemeindenummer';
91COMMENT ON COLUMN gemeinde_person.buchtyp    IS 'Typ der Buchung 1=direkt, 2=Recht einer Buchungsstele an andere Buchungsstelle';
92COMMENT ON COLUMN gemeinde_person.person     IS 'gml_id von Person';
93CREATE INDEX ALKIS_KEYPP_12  ON gemeinde_person (person, gemeinde);
94 
95DELETE FROM user_sdo_geom_metadata WHERE upper(table_name)='PP_FLURSTUECK_NR';
96BEGIN EXECUTE IMMEDIATE 'DROP TABLE PP_FLURSTUECK_NR CASCADE CONSTRAINTS'; EXCEPTION WHEN OTHERS THEN NULL; END;
97/
98CREATE TABLE PP_FLURSTUECK_NR (
99    gid         integer,
100    fsgml       character(16),
101    fsnum       varchar2(10),
102    CONSTRAINT ALKIS_KEYPP_13  PRIMARY KEY (gid)
103  );
104SELECT AddGeometryColumn('pp_flurstueck_nr','the_geom','25832','POINT',2);
105CREATE INDEX ALKIS_KEYPP_14 ON PP_FLURSTUECK_NR(THE_GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARALLEL;
106CREATE INDEX ALKIS_KEYPP_15 ON pp_flurstueck_nr(fsgml);
107COMMENT ON TABLE  pp_flurstueck_nr           IS 'Post-Processing: Position der FlurstÃŒcksnummer in der Karte';
108COMMENT ON COLUMN pp_flurstueck_nr.fsgml     IS 'gml_id des zugehörigen FlurstÃŒcks-Objektes';
109COMMENT ON COLUMN pp_flurstueck_nr.fsnum     IS 'Label, Darzustellende FS-Nummer als Bruch';
110COMMENT ON COLUMN pp_flurstueck_nr.the_geom  IS 'Position der FlurstÃŒcksnummer in der Karte';
111CREATE VIEW gemeinde_gemarkung
112AS
113  SELECT g.land, g.regierungsbezirk, g.kreis, g.gemeinde, k.gemarkung, g.gemeindename, k.gemarkungsname
114  FROM pp_gemarkung k
115  JOIN pp_gemeinde  g
116    ON k.land = g.land
117   AND k.gemeinde = g.gemeinde;
118CREATE VIEW gemeinde_person_typ1
119AS
120  SELECT DISTINCT
121    p.gml_id          AS person,
122    g.land, g.regierungsbezirk, g.kreis, g.gemeinde
123  FROM ax_person               p
124  JOIN alkis_beziehungen      bpn  ON bpn.beziehung_zu   = p.gml_id
125  JOIN ax_namensnummer         n   ON bpn.beziehung_von  = n.gml_id
126  JOIN alkis_beziehungen      bnb  ON bnb.beziehung_von  = n.gml_id
127  JOIN ax_buchungsblatt        b   ON bnb.beziehung_zu   = b.gml_id
128  JOIN alkis_beziehungen      bbg  ON bbg.beziehung_zu   = b.gml_id
129  JOIN ax_buchungsstelle       s   ON bbg.beziehung_von  = s.gml_id
130  JOIN alkis_beziehungen      bsf  ON bsf.beziehung_zu   = s.gml_id
131  JOIN ax_flurstueck           f   ON bsf.beziehung_von  = f.gml_id
132  JOIN ax_gemarkung            k   ON f.land             = k.land
133                                  AND f.gemarkungsnummer = k.gemarkungsnummer
134  JOIN gemeinde_gemarkung      g   ON k.gemarkungsnummer = g.gemarkung
135  WHERE bpn.beziehungsart = 'benennt'
136    AND bnb.beziehungsart = 'istBestandteilVon'
137    AND bbg.beziehungsart = 'istBestandteilVon'
138    AND bsf.beziehungsart = 'istGebucht';
139COMMENT ON VIEW gemeinde_person_typ1 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ1 = nomale Buchungen mit direkter Beziehung.';
140CREATE VIEW gemeinde_person_typ2
141AS
142  SELECT DISTINCT
143    p.gml_id          AS person,
144    g.land, g.regierungsbezirk, g.kreis, g.gemeinde
145  FROM ax_person               p
146  JOIN alkis_beziehungen      bpn  ON bpn.beziehung_zu   = p.gml_id
147  JOIN ax_namensnummer         n   ON bpn.beziehung_von  = n.gml_id
148  JOIN alkis_beziehungen      bnb  ON bnb.beziehung_von  = n.gml_id
149  JOIN ax_buchungsblatt        b   ON bnb.beziehung_zu   = b.gml_id
150  JOIN alkis_beziehungen      bbg  ON bbg.beziehung_zu   = b.gml_id
151  JOIN ax_buchungsstelle       s1  ON bbg.beziehung_von  = s1.gml_id
152  JOIN alkis_beziehungen      bss  ON bss.beziehung_von  = s1.gml_id
153  JOIN ax_buchungsstelle       s2  ON bss.beziehung_zu   = s2.gml_id
154  JOIN alkis_beziehungen      bsf  ON bsf.beziehung_zu   = s2.gml_id
155  JOIN ax_flurstueck           f   ON bsf.beziehung_von  = f.gml_id
156  JOIN ax_gemarkung            k   ON f.land             = k.land
157                                  AND f.gemarkungsnummer = k.gemarkungsnummer
158  JOIN gemeinde_gemarkung      g   ON k.gemarkungsnummer = g.gemarkung
159  WHERE bpn.beziehungsart = 'benennt'
160    AND bnb.beziehungsart = 'istBestandteilVon'
161    AND bbg.beziehungsart = 'istBestandteilVon'
162    AND bss.beziehungsart = 'an'
163    AND bsf.beziehungsart = 'istGebucht'
164;
165COMMENT ON VIEW gemeinde_person_typ2 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ2 = Buchungen mit Rechten einer Buchungssstelle an einer anderen.';
166CREATE VIEW gemeinde_person_statistik
167AS
168  SELECT p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp, count(p.person) as personen
169  FROM   gemeinde_person    p
170  JOIN   gemeinde_gemarkung g
171    ON   p.land     = g.land
172    AND  p.regierungsbezirk = g.regierungsbezirk
173    AND  p.kreis    = g.kreis
174    AND  p.gemeinde = g.gemeinde
175  GROUP BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp
176  ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp;
177COMMENT ON VIEW gemeinde_person_statistik IS 'ZÀhlen der Personen je Gemeinde und Buchungstyp';
178CREATE VIEW pp_gemeinde_analyse AS
179  SELECT land, gemeinde, gemeindename,
180         st_npoints(the_geom)    AS umring_alle_punkte,
181         st_npoints(simple_geom) AS umring_einfache_punkte
182  FROM pp_gemeinde;
183CREATE VIEW pp_gemarkung_analyse AS
184  SELECT land, gemeinde, gemarkung, gemarkungsname,
185         st_npoints(the_geom)    AS umring_alle_punkte,
186         st_npoints(simple_geom) AS umring_einfache_punkte
187  FROM pp_gemarkung;
188purge recyclebin;
189QUIT;
Note: See TracBrowser for help on using the repository browser.