Changeset 299


Ignore:
Timestamp:
12/20/13 13:21:27 (10 years ago)
Author:
frank.jaeger
Message:

In Trigger-Function "update_fields_beziehungen" eine Fehlerbehandlung. Beim Anlagen der DB auch Sichten definieren.

Location:
trunk/import
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/alkis-functions.sql

    r215 r299  
     1-- alkis-functions.sql - Trigger-Funktionen fÃŒr die FortfÃŒhrung der  
     2--                       alkis_beziehungen aus EintrÀgen der delete-Tabelle 
     3 
     4-- 2013-07-10: Erweiterung zur Verarbeitung der Replace-SÀtze in ALKIS-Beziehungen  
     5 
     6-- 2013-12-10:  In der Function "update_fields_beziehungen" den Fall behandeln, dass ein Objekt einer  
     7--                              neuen Beziehung in keiner Tabelle gefunden wird. 
     8--                              Wenn ein einzelnes Objekt fehlt, soll dies keine Auswirkungen auf andere Objekte haben. 
     9--              FÃŒllen von "zu_typename" auskommentiert. 
     10 
    111-- Table/View/Sequence löschen, wenn vorhanden 
    212CREATE OR REPLACE FUNCTION alkis_dropobject(t TEXT) RETURNS varchar AS $$ 
     
    273283CREATE OR REPLACE FUNCTION delete_feature_hist() RETURNS TRIGGER AS $$ 
    274284DECLARE 
    275         s TEXT; 
    276         alt_id TEXT; 
    277         neu_id TEXT; 
    278         beginnt TEXT; 
     285        sql TEXT; 
     286        gml_id TEXT; 
    279287        endete TEXT; 
    280288        n INTEGER; 
    281289BEGIN 
    282290        NEW.context := lower(NEW.context); 
     291        gml_id      := substr(NEW.featureid, 1, 16); 
     292 
    283293        IF NEW.context IS NULL THEN 
    284294                NEW.context := 'delete'; 
    285         END IF; 
    286  
    287         -- TIMESTAMP weder in gml_id noch identifier verlÀßlich. 
    288         -- also ggf. aus Datenbank holen 
    289  
    290         IF length(NEW.featureid)=32 THEN 
    291                 alt_id  := substr(NEW.featureid, 1, 16); 
    292  
    293                 IF NEW.featureid<>NEW.replacedBy THEN 
    294                         -- Beginnt-Datum aus Timestamp 
    295                         beginnt := substr(NEW.featureid, 17, 4) || '-' 
    296                                 || substr(NEW.featureid, 21, 2) || '-' 
    297                                 || substr(NEW.featureid, 23, 2) || 'T' 
    298                                 || substr(NEW.featureid, 26, 2) || ':' 
    299                                 || substr(NEW.featureid, 28, 2) || ':' 
    300                                 || substr(NEW.featureid, 30, 2) || 'Z' 
    301                                 ; 
    302                 END IF; 
    303         ELSIF length(NEW.featureid)=16 THEN 
    304                 alt_id  := NEW.featureid; 
    305         ELSE 
    306                 RAISE EXCEPTION '%: LÀnge 16 oder 32 statt % erwartet.', NEW.featureid, length(NEW.featureid); 
    307         END IF; 
    308  
    309         IF beginnt IS NULL THEN 
    310                 -- Beginnt-Datum des Àltesten Eintrag, der nicht untergegangen ist 
    311                 -- => der Satz dessen 'endet' gesetzt werden muß 
    312                 EXECUTE 'SELECT min(beginnt) FROM ' || NEW.typename 
    313                         || ' WHERE gml_id=''' || alt_id || '''' 
    314                         || ' AND endet IS NULL' 
    315                         INTO beginnt; 
    316         END IF; 
    317  
    318         IF beginnt IS NULL THEN 
    319                 IF NEW.context = 'delete' OR NEW.safetoignore = 'true' THEN 
    320                         RAISE NOTICE 'Kein Beginndatum fuer Objekt % gefunden - ignoriert.', alt_id; 
    321                         NEW.ignored := true; 
    322                         RETURN NEW; 
    323                 ELSE 
    324                         RAISE EXCEPTION 'Kein Beginndatum fuer Objekt % gefunden.', alt_id; 
    325                 END IF; 
    326295        END IF; 
    327296 
     
    338307                END IF; 
    339308 
    340                 IF length(NEW.replacedBy)=32 THEN 
    341                         -- Beginnt-Datum aus Timestamp 
    342                         neu_id := substr(NEW.replacedBy, 1, 16); 
    343  
    344                         IF NEW.featureid<>NEW.replacedBy THEN 
    345                                 endete  := substr(NEW.replacedBy, 17, 4) || '-' 
    346                                         || substr(NEW.replacedBy, 21, 2) || '-' 
    347                                         || substr(NEW.replacedBy, 23, 2) || 'T' 
    348                                         || substr(NEW.replacedBy, 26, 2) || ':' 
    349                                         || substr(NEW.replacedBy, 28, 2) || ':' 
    350                                         || substr(NEW.replacedBy, 30, 2) || 'Z' 
    351                                         ; 
     309                IF NEW.replacedBy IS NULL OR length(NEW.replacedBy)<16 THEN 
     310                        IF NEW.safetoignore = 'true' THEN 
     311                                RAISE NOTICE '%: Nachfolger ''%'' nicht richtig gesetzt - ignoriert', NEW.featureid, NEW.replacedBy; 
     312                                NEW.ignored := true; 
     313                                RETURN NEW; 
     314                        ELSE 
     315                                RAISE EXCEPTION '%: Nachfolger ''%'' nicht richtig gesetzt - Abbruch', NEW.featureid, NEW.replacedBy; 
    352316                        END IF; 
    353                 ELSIF length(NEW.replacedBy)=16 THEN 
    354                         neu_id  := NEW.replacedBy; 
    355                 ELSIF length(NEW.replacedBy)<>16 THEN 
    356                         RAISE EXCEPTION '%: LÀnge 16 oder 32 statt % erwartet.', NEW.replacedBy, length(NEW.replacedBy); 
    357317                END IF; 
    358318 
     319                IF length(NEW.replacedBy)=16 THEN 
     320                        EXECUTE 'SELECT beginnt FROM ' || NEW.typename || 
     321                                ' WHERE gml_id=''' || NEW.replacedBy || ''' AND endet IS NULL' || 
     322                                ' ORDER BY beginnt DESC LIMIT 1' 
     323                           INTO endete; 
     324                ELSE 
     325                        -- replaceBy mit Timestamp 
     326                        EXECUTE 'SELECT beginnt FROM ' || NEW.typename || 
     327                                ' WHERE identifier=''urn:adv:oid:' || NEW.replacedBy || '''' 
     328                           INTO endete; 
     329                        IF endete IS NULL THEN 
     330                                EXECUTE 'SELECT beginnt FROM ' || NEW.typename || 
     331                                        ' WHERE gml_id=''' || substr(NEW.replacedBy,1,16) || ''' AND endet IS NULL' || 
     332                                        ' ORDER BY beginnt DESC LIMIT 1' 
     333                                   INTO endete; 
     334                        END IF; 
     335                END IF; 
     336 
    359337                IF endete IS NULL THEN 
    360                         -- Beginnt-Datum des neuesten Eintrag, der nicht untergegangen ist 
    361                         -- => Enddatum fÃŒr vorherigen Satz 
    362                         EXECUTE 'SELECT max(beginnt) FROM ' || NEW.typename 
    363                                 || ' WHERE gml_id=''' || neu_id || '''' 
    364                                 || ' AND beginnt>''' || beginnt || '''' 
    365                                 || ' AND endet IS NULL' 
    366                                 INTO endete; 
    367                 END IF; 
    368  
    369                 IF alt_id<>neu_id THEN 
    370                         RAISE NOTICE 'Objekt % wird durch Objekt % ersetzt.', alt_id, neu_id; 
    371                 END IF; 
    372  
    373                 IF endete IS NULL THEN 
    374                         RAISE NOTICE 'Kein Beginndatum fuer Objekt % gefunden.', neu_id; 
    375                 END IF; 
    376  
    377                 IF endete IS NULL OR beginnt=endete THEN 
    378                         RAISE EXCEPTION 'Objekt % wird durch Objekt % ersetzt (leere Lebensdauer?).', alt_id, neu_id; 
     338                        IF NEW.safetoignore = 'true' THEN 
     339                                RAISE NOTICE '%: Nachfolger % nicht gefunden - ignoriert', NEW.featureid, NEW.replacedBy; 
     340                                NEW.ignored := true; 
     341                                RETURN NEW; 
     342                        ELSE 
     343                                RAISE EXCEPTION '%: Nachfolger % nicht gefunden', NEW.featureid, NEW.replacedBy; 
     344                        END IF; 
    379345                END IF; 
    380346        ELSE 
     
    382348        END IF; 
    383349 
    384         s   := 'UPDATE ' || NEW.typename 
    385             || ' SET endet=''' || endete || '''' 
    386             || ' WHERE gml_id=''' || alt_id || '''' 
    387             || ' AND beginnt=''' || beginnt || '''' 
    388             || ' AND endet IS NULL'; 
    389         EXECUTE s; 
     350        sql     := 'UPDATE ' || NEW.typename 
     351                || ' SET endet=''' || endete || '''' 
     352                || ' WHERE gml_id=''' || gml_id || '''' 
     353                || ' AND endet IS NULL' 
     354                || ' AND beginnt<''' || endete || ''''; 
     355        -- RAISE NOTICE 'SQL: %', sql; 
     356        EXECUTE sql; 
    390357        GET DIAGNOSTICS n = ROW_COUNT; 
    391358        IF n<>1 THEN 
    392                 RAISE NOTICE 'SQL: %', s; 
     359                RAISE NOTICE 'SQL: %', sql; 
    393360                IF NEW.context = 'delete' OR NEW.safetoignore = 'true' THEN 
    394                         RAISE NOTICE '%: Untergangsdatum von % Objekten statt einem auf % gesetzt - ignoriert', NEW.featureid, n, endete; 
    395                         NEW.ignored := true; 
    396                         RETURN NEW; 
    397                 ELSIF n=0 THEN 
    398                         EXECUTE 'SELECT endet FROM ' || NEW.typename || 
    399                                 ' WHERE gml_id=''' || alt_id || '''' || 
    400                                 ' AND beginnt=''' || beginnt || '''' 
    401                                 INTO endete; 
    402  
    403                         IF NOT endete IS NULL THEN 
    404                                 RAISE NOTICE '%: Objekt bereits % untergegangen - ignoriert', NEW.featureid, endete; 
    405                         ELSE 
    406                                 RAISE NOTICE '%: Objekt nicht gefunden - ignoriert', NEW.featureid; 
    407                         END IF; 
    408  
     361                        RAISE NOTICE '%: Untergangsdatum von % Objekten statt nur einem auf % gesetzt - ignoriert', NEW.featureid, n, endete; 
    409362                        NEW.ignored := true; 
    410363                        RETURN NEW; 
    411364                ELSE 
    412                         RAISE EXCEPTION '%: Untergangsdatum von % Objekten statt einem auf % gesetzt - Abbruch', NEW.featureid, n, endete; 
     365                        RAISE EXCEPTION '%: Untergangsdatum von % Objekten statt nur einem auf % gesetzt - Abbruch', NEW.featureid, n, endete; 
    413366                END IF; 
    414367        END IF; 
     
    424377-- Siehe Mail W. Jacobs vom 23.03.2012 in PostNAS-Mailingliste 
    425378-- geaendert krz FJ 2012-10-31 
     379-- geÀndertt krz FJ 2013-07-10 auf Vorschlag MB Krs. Unna 
    426380CREATE OR REPLACE FUNCTION delete_feature_kill() RETURNS TRIGGER AS $$ 
    427381DECLARE 
     
    430384        aktbeg TEXT; 
    431385        gml_id TEXT; 
     386        query_bez TEXT; -- 2013-07-10 Erweiterung 
    432387BEGIN 
    433388        NEW.typename := lower(NEW.typename); 
     
    452407 
    453408        ELSE 
    454                 -- Ersetzen eines Objektes 
     409                -- Ersetzen eines Objektes (Replace) 
    455410                -- In der objekt-Tabelle sind bereits 2 Objekte vorhanden (alt und neu). 
    456411                -- Die 2 DatensÀtze unterscheiden sich nur in ogc_fid und beginnt 
     
    466421                EXECUTE query; 
    467422 
    468                 -- Tabelle alkis_beziehungen 
     423                -- Tabelle "alkis_beziehungen" 
     424        -- Löschen der Beziehungen des in einer anderen Tabelle ersetzten Objektes. 
    469425                IF gml_id = substr(NEW.replacedBy, 1, 16) THEN -- gml_id gleich 
    470426                        -- Beziehungen des Objektes wurden redundant noch einmal eingetragen 
    471427                        -- ToDo:         HIER sofort die Redundanzen zum aktuellen Objekt beseitigen. 
    472428                        -- Workaround: Nach der Konvertierung werden im Post-Processing 
    473                         --             ALLE Redundanzen mit einem SQL-Statemant beseitigt. 
     429                        --             ALLE Redundanzen mit einem SQL-Statement beseitigt. 
    474430                --      RAISE NOTICE 'Ersetze gleiche gml_id % in %', gml_id, NEW.typename; 
    475431 
    476                 -- ENTWURF ungetestet: 
     432                -- ENTWURF FJ, noch ungetestet: 
     433        -- Bei Replace wird zur aktuellen gml_id nach redundanten SÀtzen in alkis_beziehungen gesucht. 
     434        -- Die Version mit dem kleineren serial-Feld wird gelöscht. 
    477435                --query := 'DELETE FROM alkis_beziehungen AS bezalt 
    478436                --      WHERE (bezalt.beziehung_von = ' || gml_id || ' OR bezalt.beziehung_zu = ' || gml_id ||') 
     
    484442                --EXECUTE query; 
    485443 
     444                -- Funktioniert wahrscheinlich nicht wegen: 
     445                --   Der zu löschende Satz in "alkis_beziehungen" muss nicht komplett redandant sein (von+zu+art).  
     446        -- Es ist entweder ein Replace des von-objektes passiert oder ein Replace des zu-Objektes. 
     447                -- In beiden FÀllen kann auf der entgegen gesetzten Seite der Beziehung auch ein anderes Objekt sein. 
     448                -- Dummerweise sind die neuen Beziehungen mit der gleichen gml_id schon eingetragen worden. 
     449 
     450        -- 2013-07-10 Alternative Version von Marvon Brandt (Krs. Unna)  
     451        -- Diese Version setzt voraus, dass das Feld 'beginnt' beim EinfÃŒgen der Beziehung aus  
     452        -- dem Satz des von-Objektes kopiert wurde. 
     453        -- Dies geschieht in "update_fields_beziehungen" als Trigger beim EinfÃŒgen der alkis_beziehung. 
     454           -- alte Beziehungen löschen 
     455           query_bez := 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id   
     456                        || ''' AND beginnt < ''' || aktbeg || ''''; 
     457           RAISE NOTICE 'Lösche in beziehungen alte gml_id % vor %', gml_id, aktbeg; 
     458           EXECUTE query_bez; 
     459 
     460          -- Was ist, wenn das in der delete-Tabelle ersetzte Objekt nur/auch auf der zu-Seite der Beziehung auftaucht. 
     461          -- Hier wird es nur auf der von-Seite gesucht. 
     462  
     463        -- 2013-07-10 Erweiterung Ende 
     464 
    486465                ELSE 
    487466                        -- replace mit ungleicher gml_id 
     
    521500END; 
    522501$$ LANGUAGE plpgsql; 
     502 
     503 
     504-- 2013-07-10: Erweiterung zur Verarbeitung der Replace-SÀtze in ALKIS-Beziehungen  
     505 
     506-- ZusÀtzliche Felder fÃŒr alkis_beziehungen auswerten. 
     507-- In die Tabelle alkis_beziehungen wird zusÀtzlich zu den gml_ids der Objekte auf von- und zu-Seite  
     508-- auch noch eingetragen, aus welcher Tabelle die gml_id stammt. Dies sollte langfristig direkt  
     509-- vom PostNAS (ogr2ogr) gemacht werden so dass dieser Trigger als Provisorium anzusehen ist. 
     510 
     511-- Eventuell kann auch die Sammlung der bekannten Tabellen-Namen als Kette von UNION-Zeilen ersetzt werden 
     512-- durch eine smarte Function, die eine gefilterte Liste der vorhandenen Tabellen (-namen) durchsucht. 
     513-- Somit wÃŒrden auch solche Tabellen einbezogen, die von PostNAS nachtrÀglich angelegt wurden. 
     514 
     515-- Das Beginnt-Datum des Datensatzes auf der Seite "beziehung_von" wird zu der Beziehung kopiert (redundant). 
     516CREATE OR REPLACE FUNCTION update_fields_beziehungen() RETURNS TRIGGER AS $$ 
     517DECLARE 
     518        sql_vonTypename TEXT; 
     519        sql_zuTypename TEXT; 
     520        sql_beginnt TEXT; 
     521BEGIN 
     522    -- Die folgende Liste von Tabellen-Namen kann reduziert werden, auf solche Tabellen, die auf 
     523    -- von-Seite von Beziehungen auftauchen können. 
     524    sql_vonTypename :=  
     525       'SELECT ''ap_darstellung'' FROM ap_darstellung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     526                SELECT ''ap_lpo'' FROM ap_lpo WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     527                SELECT ''ap_lto'' FROM ap_lto WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     528                SELECT ''ap_ppo'' FROM ap_ppo WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     529                SELECT ''ap_pto'' FROM ap_pto WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     530                SELECT ''ax_anderefestlegungnachwasserrecht'' FROM ax_anderefestlegungnachwasserrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     531                SELECT ''ax_anschrift'' FROM ax_anschrift WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     532                SELECT ''ax_aufnahmepunkt'' FROM ax_aufnahmepunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     533                SELECT ''ax_bahnverkehr'' FROM ax_bahnverkehr WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     534                SELECT ''ax_bahnverkehrsanlage'' FROM ax_bahnverkehrsanlage WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     535                SELECT ''ax_baublock'' FROM ax_baublock WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     536                SELECT ''ax_bauraumoderbodenordnungsrecht'' FROM ax_bauraumoderbodenordnungsrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     537                SELECT ''ax_bauteil'' FROM ax_bauteil WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     538                SELECT ''ax_bauwerkimgewaesserbereich'' FROM ax_bauwerkimgewaesserbereich WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     539                SELECT ''ax_bauwerkimverkehrsbereich'' FROM ax_bauwerkimverkehrsbereich WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     540                SELECT ''ax_bauwerkoderanlagefuerindustrieundgewerbe'' FROM ax_bauwerkoderanlagefuerindustrieundgewerbe WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     541                SELECT ''ax_bauwerkoderanlagefuersportfreizeitunderholung'' FROM ax_bauwerkoderanlagefuersportfreizeitunderholung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     542                SELECT ''ax_bergbaubetrieb'' FROM ax_bergbaubetrieb WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     543                SELECT ''ax_besondereflurstuecksgrenze'' FROM ax_besondereflurstuecksgrenze WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     544                SELECT ''ax_besonderegebaeudelinie'' FROM ax_besonderegebaeudelinie WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     545                SELECT ''ax_besondererbauwerkspunkt'' FROM ax_besondererbauwerkspunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     546                SELECT ''ax_besonderergebaeudepunkt'' FROM ax_besonderergebaeudepunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     547                SELECT ''ax_besondererhoehenpunkt'' FROM ax_besondererhoehenpunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     548                SELECT ''ax_besonderertopographischerpunkt'' FROM ax_besonderertopographischerpunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     549                SELECT ''ax_bewertung'' FROM ax_bewertung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     550                SELECT ''ax_bodenschaetzung'' FROM ax_bodenschaetzung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     551                SELECT ''ax_boeschungkliff'' FROM ax_boeschungkliff WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     552                SELECT ''ax_boeschungsflaeche'' FROM ax_boeschungsflaeche WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     553                SELECT ''ax_buchungsblatt'' FROM ax_buchungsblatt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     554                SELECT ''ax_buchungsblattbezirk'' FROM ax_buchungsblattbezirk WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     555                SELECT ''ax_buchungsstelle'' FROM ax_buchungsstelle WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     556                SELECT ''ax_bundesland'' FROM ax_bundesland WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     557                SELECT ''ax_dammwalldeich'' FROM ax_dammwalldeich WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     558                SELECT ''ax_denkmalschutzrecht'' FROM ax_denkmalschutzrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     559                SELECT ''ax_dienststelle'' FROM ax_dienststelle WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     560                SELECT ''ax_duene'' FROM ax_duene WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     561                SELECT ''ax_einrichtungenfuerdenschiffsverkehr'' FROM ax_einrichtungenfuerdenschiffsverkehr WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     562                SELECT ''ax_einrichtunginoeffentlichenbereichen'' FROM ax_einrichtunginoeffentlichenbereichen WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     563                SELECT ''ax_felsenfelsblockfelsnadel'' FROM ax_felsenfelsblockfelsnadel WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     564                SELECT ''ax_firstlinie'' FROM ax_firstlinie WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     565                SELECT ''ax_flaechebesondererfunktionalerpraegung'' FROM ax_flaechebesondererfunktionalerpraegung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     566                SELECT ''ax_flaechegemischternutzung'' FROM ax_flaechegemischternutzung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     567                SELECT ''ax_fliessgewaesser'' FROM ax_fliessgewaesser WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     568                SELECT ''ax_flugverkehr'' FROM ax_flugverkehr WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     569                SELECT ''ax_flugverkehrsanlage'' FROM ax_flugverkehrsanlage WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     570                SELECT ''ax_flurstueck'' FROM ax_flurstueck WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     571                SELECT ''ax_forstrecht'' FROM ax_forstrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     572                SELECT ''ax_fortfuehrungsfall'' FROM ax_fortfuehrungsfall WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     573                SELECT ''ax_fortfuehrungsnachweisdeckblatt'' FROM ax_fortfuehrungsnachweisdeckblatt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     574                SELECT ''ax_friedhof'' FROM ax_friedhof WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     575                SELECT ''ax_gebaeude'' FROM ax_gebaeude WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     576                SELECT ''ax_gebaeudeausgestaltung'' FROM ax_gebaeudeausgestaltung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     577                SELECT ''ax_gehoelz'' FROM ax_gehoelz WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     578                SELECT ''ax_gelaendekante'' FROM ax_gelaendekante WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     579                SELECT ''ax_gemarkung'' FROM ax_gemarkung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     580                SELECT ''ax_gemarkungsteilflur'' FROM ax_gemarkungsteilflur WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     581                SELECT ''ax_gemeinde'' FROM ax_gemeinde WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     582                SELECT ''ax_gemeindeteil'' FROM ax_gemeindeteil WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     583                SELECT ''ax_georeferenziertegebaeudeadresse'' FROM ax_georeferenziertegebaeudeadresse WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     584                SELECT ''ax_gewaessermerkmal'' FROM ax_gewaessermerkmal WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     585                SELECT ''ax_gleis'' FROM ax_gleis WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     586                SELECT ''ax_grablochderbodenschaetzung'' FROM ax_grablochderbodenschaetzung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     587                SELECT ''ax_grenzpunkt'' FROM ax_grenzpunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     588                SELECT ''ax_hafenbecken'' FROM ax_hafenbecken WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     589                SELECT ''ax_halde'' FROM ax_halde WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     590                SELECT ''ax_heide'' FROM ax_heide WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     591                SELECT ''ax_heilquellegasquelle'' FROM ax_heilquellegasquelle WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     592                SELECT ''ax_historischesbauwerkoderhistorischeeinrichtung'' FROM ax_historischesbauwerkoderhistorischeeinrichtung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     593                SELECT ''ax_historischesflurstueck'' FROM ax_historischesflurstueck WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     594                SELECT ''ax_historischesflurstueckalb'' FROM ax_historischesflurstueckalb WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     595                SELECT ''ax_historischesflurstueckohneraumbezug'' FROM ax_historischesflurstueckohneraumbezug WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     596                SELECT ''ax_hoehenlinie'' FROM ax_hoehenlinie WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     597                SELECT ''ax_hoehleneingang'' FROM ax_hoehleneingang WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     598                SELECT ''ax_industrieundgewerbeflaeche'' FROM ax_industrieundgewerbeflaeche WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     599                SELECT ''ax_klassifizierungnachstrassenrecht'' FROM ax_klassifizierungnachstrassenrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     600                SELECT ''ax_klassifizierungnachwasserrecht'' FROM ax_klassifizierungnachwasserrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     601                SELECT ''ax_kleinraeumigerlandschaftsteil'' FROM ax_kleinraeumigerlandschaftsteil WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     602                SELECT ''ax_kommunalesgebiet'' FROM ax_kommunalesgebiet WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     603                SELECT ''ax_kreisregion'' FROM ax_kreisregion WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     604                SELECT ''ax_lagebezeichnungkatalogeintrag'' FROM ax_lagebezeichnungkatalogeintrag WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     605                SELECT ''ax_lagebezeichnungmithausnummer'' FROM ax_lagebezeichnungmithausnummer WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     606                SELECT ''ax_lagebezeichnungmitpseudonummer'' FROM ax_lagebezeichnungmitpseudonummer WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     607                SELECT ''ax_lagebezeichnungohnehausnummer'' FROM ax_lagebezeichnungohnehausnummer WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     608                SELECT ''ax_landwirtschaft'' FROM ax_landwirtschaft WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     609                SELECT ''ax_leitung'' FROM ax_leitung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     610                SELECT ''ax_meer'' FROM ax_meer WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     611                SELECT ''ax_moor'' FROM ax_moor WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     612                SELECT ''ax_musterlandesmusterundvergleichsstueck'' FROM ax_musterlandesmusterundvergleichsstueck WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     613                SELECT ''ax_namensnummer'' FROM ax_namensnummer WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     614                SELECT ''ax_naturumweltoderbodenschutzrecht'' FROM ax_naturumweltoderbodenschutzrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     615                SELECT ''ax_person'' FROM ax_person WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     616                SELECT ''ax_platz'' FROM ax_platz WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     617                SELECT ''ax_punktkennunguntergegangen'' FROM ax_punktkennunguntergegangen WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     618                SELECT ''ax_punktortag'' FROM ax_punktortag WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     619                SELECT ''ax_punktortau'' FROM ax_punktortau WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     620                SELECT ''ax_punktortta'' FROM ax_punktortta WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     621                SELECT ''ax_regierungsbezirk'' FROM ax_regierungsbezirk WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     622                SELECT ''ax_reservierung'' FROM ax_reservierung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     623                SELECT ''ax_schifffahrtsliniefaehrverkehr'' FROM ax_schifffahrtsliniefaehrverkehr WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     624                SELECT ''ax_schiffsverkehr'' FROM ax_schiffsverkehr WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     625                SELECT ''ax_schutzgebietnachnaturumweltoderbodenschutzrecht'' FROM ax_schutzgebietnachnaturumweltoderbodenschutzrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     626                SELECT ''ax_schutzgebietnachwasserrecht'' FROM ax_schutzgebietnachwasserrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     627                SELECT ''ax_schutzzone'' FROM ax_schutzzone WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     628                SELECT ''ax_seilbahnschwebebahn'' FROM ax_seilbahnschwebebahn WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     629                SELECT ''ax_sicherungspunkt'' FROM ax_sicherungspunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     630                SELECT ''ax_soll'' FROM ax_soll WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     631                SELECT ''ax_sonstigervermessungspunkt'' FROM ax_sonstigervermessungspunkt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     632                SELECT ''ax_sonstigesbauwerkodersonstigeeinrichtung'' FROM ax_sonstigesbauwerkodersonstigeeinrichtung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     633                SELECT ''ax_sonstigesrecht'' FROM ax_sonstigesrecht WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     634                SELECT ''ax_sportfreizeitunderholungsflaeche'' FROM ax_sportfreizeitunderholungsflaeche WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     635                SELECT ''ax_stehendesgewaesser'' FROM ax_stehendesgewaesser WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     636                SELECT ''ax_strassenverkehr'' FROM ax_strassenverkehr WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     637                SELECT ''ax_strassenverkehrsanlage'' FROM ax_strassenverkehrsanlage WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     638                SELECT ''ax_sumpf'' FROM ax_sumpf WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     639                SELECT ''ax_tagebaugrubesteinbruch'' FROM ax_tagebaugrubesteinbruch WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     640                SELECT ''ax_tagesabschnitt'' FROM ax_tagesabschnitt WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     641                SELECT ''ax_topographischelinie'' FROM ax_topographischelinie WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     642                SELECT ''ax_transportanlage'' FROM ax_transportanlage WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     643                SELECT ''ax_turm'' FROM ax_turm WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     644                SELECT ''ax_unlandvegetationsloseflaeche'' FROM ax_unlandvegetationsloseflaeche WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     645                SELECT ''ax_untergeordnetesgewaesser'' FROM ax_untergeordnetesgewaesser WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     646                SELECT ''ax_vegetationsmerkmal'' FROM ax_vegetationsmerkmal WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     647                SELECT ''ax_vertretung'' FROM ax_vertretung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     648                SELECT ''ax_verwaltung'' FROM ax_verwaltung WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     649                SELECT ''ax_verwaltungsgemeinschaft'' FROM ax_verwaltungsgemeinschaft WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     650                SELECT ''ax_vorratsbehaelterspeicherbauwerk'' FROM ax_vorratsbehaelterspeicherbauwerk WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     651                SELECT ''ax_wald'' FROM ax_wald WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     652                SELECT ''ax_wasserspiegelhoehe'' FROM ax_wasserspiegelhoehe WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     653                SELECT ''ax_weg'' FROM ax_weg WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     654                SELECT ''ax_wegpfadsteig'' FROM ax_wegpfadsteig WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     655                SELECT ''ax_wohnbauflaeche'' FROM ax_wohnbauflaeche WHERE gml_id = ''' || NEW.beziehung_von || ''' UNION 
     656                SELECT ''ax_wohnplatz'' FROM ax_wohnplatz WHERE gml_id = ''' || NEW.beziehung_von || ''''; 
     657        EXECUTE sql_vonTypename INTO NEW.von_typename; 
     658 
     659        -- 2013-12-10: Den Fall behandeln, dass das Objekt in keiner Tabelle gefunden wird. 
     660        -- NULL-Wert fÃŒhrt zu Abbruch des 2. Execute. Dies fÃŒhrt in einer Kettenreaktion dazu, 
     661        -- dass auch weitere Objekte nicht eingefÃŒgt werden können. 
     662        IF NEW.von_typename IS NULL THEN 
     663                RAISE NOTICE 'Neue gml_id fuer "beziehung_von" in "alkis_beziehungen" ist keiner Tabelle zuzuordnen. "beziehung_von" und "beginnt" bleiben leer. gml_id: %', NEW.beziehung_von; 
     664        ELSE 
     665                -- Der von_typename (= Tabellen-Name) muss zuvor ermittelt worden sein. Dort wird nach der gml_id gesucht.  
     666                sql_beginnt := 'SELECT max(beginnt) FROM ' || NEW.von_typename || ' WHERE gml_id = ''' || NEW.beziehung_von ||''''; 
     667                EXECUTE sql_beginnt INTO NEW.beginnt; 
     668                -- Was passiert bei Replace eines Objektes, das nur auf der zu-Seite einer Beziehung auftaucht. 
     669        END IF; 
     670 
     671    -- Die folgende Liste von Tabellen-Namen kann reduziert werden, auf solche Tabellen, die auf 
     672    -- zu-Seite von Beziehungen auftauchen können. 
     673        -- Diese Spalte erleichtert die Analyse, wird aber nicht fÃŒr die aktuelle Version des Triggers nicht verwendet. 
     674    -- Diese Anweisung liefert nur teilweise ein Ergebnis. 
     675 
     676-- -- 2013-12-10 Wird nicht benötigt und ist auch nur teilweise erfolgreich.  
     677-- --            Dann den Aufwand sparen. Auskommentiert. 
     678--      sql_zuTypename :=  
     679--       'SELECT ''ap_darstellung'' FROM ap_darstellung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     680--              SELECT ''ap_lpo'' FROM ap_lpo WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     681--              SELECT ''ap_lto'' FROM ap_lto WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     682--              SELECT ''ap_ppo'' FROM ap_ppo WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     683--              SELECT ''ap_pto'' FROM ap_pto WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     684--              SELECT ''ax_anderefestlegungnachwasserrecht'' FROM ax_anderefestlegungnachwasserrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     685--              SELECT ''ax_anschrift'' FROM ax_anschrift WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     686--              SELECT ''ax_aufnahmepunkt'' FROM ax_aufnahmepunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     687--              SELECT ''ax_bahnverkehr'' FROM ax_bahnverkehr WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     688--              SELECT ''ax_bahnverkehrsanlage'' FROM ax_bahnverkehrsanlage WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     689--              SELECT ''ax_baublock'' FROM ax_baublock WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     690--              SELECT ''ax_bauraumoderbodenordnungsrecht'' FROM ax_bauraumoderbodenordnungsrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     691--              SELECT ''ax_bauteil'' FROM ax_bauteil WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     692--              SELECT ''ax_bauwerkimgewaesserbereich'' FROM ax_bauwerkimgewaesserbereich WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     693--              SELECT ''ax_bauwerkimverkehrsbereich'' FROM ax_bauwerkimverkehrsbereich WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     694--              SELECT ''ax_bauwerkoderanlagefuerindustrieundgewerbe'' FROM ax_bauwerkoderanlagefuerindustrieundgewerbe WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     695--              SELECT ''ax_bauwerkoderanlagefuersportfreizeitunderholung'' FROM ax_bauwerkoderanlagefuersportfreizeitunderholung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     696--              SELECT ''ax_bergbaubetrieb'' FROM ax_bergbaubetrieb WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     697--              SELECT ''ax_besondereflurstuecksgrenze'' FROM ax_besondereflurstuecksgrenze WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     698--              SELECT ''ax_besonderegebaeudelinie'' FROM ax_besonderegebaeudelinie WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     699--              SELECT ''ax_besondererbauwerkspunkt'' FROM ax_besondererbauwerkspunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     700--              SELECT ''ax_besonderergebaeudepunkt'' FROM ax_besonderergebaeudepunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     701--              SELECT ''ax_besondererhoehenpunkt'' FROM ax_besondererhoehenpunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     702--              SELECT ''ax_besonderertopographischerpunkt'' FROM ax_besonderertopographischerpunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     703--              SELECT ''ax_bewertung'' FROM ax_bewertung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     704--              SELECT ''ax_bodenschaetzung'' FROM ax_bodenschaetzung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     705--              SELECT ''ax_boeschungkliff'' FROM ax_boeschungkliff WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     706--              SELECT ''ax_boeschungsflaeche'' FROM ax_boeschungsflaeche WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     707--              SELECT ''ax_buchungsblatt'' FROM ax_buchungsblatt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     708--              SELECT ''ax_buchungsblattbezirk'' FROM ax_buchungsblattbezirk WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     709--              SELECT ''ax_buchungsstelle'' FROM ax_buchungsstelle WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     710--              SELECT ''ax_bundesland'' FROM ax_bundesland WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     711--              SELECT ''ax_dammwalldeich'' FROM ax_dammwalldeich WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     712--              SELECT ''ax_denkmalschutzrecht'' FROM ax_denkmalschutzrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     713--              SELECT ''ax_dienststelle'' FROM ax_dienststelle WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     714--              SELECT ''ax_duene'' FROM ax_duene WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     715--              SELECT ''ax_einrichtungenfuerdenschiffsverkehr'' FROM ax_einrichtungenfuerdenschiffsverkehr WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     716--              SELECT ''ax_einrichtunginoeffentlichenbereichen'' FROM ax_einrichtunginoeffentlichenbereichen WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     717--              SELECT ''ax_felsenfelsblockfelsnadel'' FROM ax_felsenfelsblockfelsnadel WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     718--              SELECT ''ax_firstlinie'' FROM ax_firstlinie WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     719--              SELECT ''ax_flaechebesondererfunktionalerpraegung'' FROM ax_flaechebesondererfunktionalerpraegung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     720--              SELECT ''ax_flaechegemischternutzung'' FROM ax_flaechegemischternutzung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     721--              SELECT ''ax_fliessgewaesser'' FROM ax_fliessgewaesser WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     722--              SELECT ''ax_flugverkehr'' FROM ax_flugverkehr WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     723--              SELECT ''ax_flugverkehrsanlage'' FROM ax_flugverkehrsanlage WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     724--              SELECT ''ax_flurstueck'' FROM ax_flurstueck WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     725--              SELECT ''ax_forstrecht'' FROM ax_forstrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     726--              SELECT ''ax_fortfuehrungsfall'' FROM ax_fortfuehrungsfall WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     727--              SELECT ''ax_fortfuehrungsnachweisdeckblatt'' FROM ax_fortfuehrungsnachweisdeckblatt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     728--              SELECT ''ax_friedhof'' FROM ax_friedhof WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     729--              SELECT ''ax_gebaeude'' FROM ax_gebaeude WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     730--              SELECT ''ax_gebaeudeausgestaltung'' FROM ax_gebaeudeausgestaltung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     731--              SELECT ''ax_gehoelz'' FROM ax_gehoelz WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     732--              SELECT ''ax_gelaendekante'' FROM ax_gelaendekante WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     733--              SELECT ''ax_gemarkung'' FROM ax_gemarkung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     734--              SELECT ''ax_gemarkungsteilflur'' FROM ax_gemarkungsteilflur WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     735--              SELECT ''ax_gemeinde'' FROM ax_gemeinde WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     736--              SELECT ''ax_gemeindeteil'' FROM ax_gemeindeteil WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     737--              SELECT ''ax_georeferenziertegebaeudeadresse'' FROM ax_georeferenziertegebaeudeadresse WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     738--              SELECT ''ax_gewaessermerkmal'' FROM ax_gewaessermerkmal WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     739--              SELECT ''ax_gleis'' FROM ax_gleis WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     740--              SELECT ''ax_grablochderbodenschaetzung'' FROM ax_grablochderbodenschaetzung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     741--              SELECT ''ax_grenzpunkt'' FROM ax_grenzpunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     742--              SELECT ''ax_hafenbecken'' FROM ax_hafenbecken WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     743--              SELECT ''ax_halde'' FROM ax_halde WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     744--              SELECT ''ax_heide'' FROM ax_heide WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     745--              SELECT ''ax_heilquellegasquelle'' FROM ax_heilquellegasquelle WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     746--              SELECT ''ax_historischesbauwerkoderhistorischeeinrichtung'' FROM ax_historischesbauwerkoderhistorischeeinrichtung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     747--              SELECT ''ax_historischesflurstueck'' FROM ax_historischesflurstueck WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     748--              SELECT ''ax_historischesflurstueckalb'' FROM ax_historischesflurstueckalb WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     749--              SELECT ''ax_historischesflurstueckohneraumbezug'' FROM ax_historischesflurstueckohneraumbezug WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     750--              SELECT ''ax_hoehenlinie'' FROM ax_hoehenlinie WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     751--              SELECT ''ax_hoehleneingang'' FROM ax_hoehleneingang WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     752--              SELECT ''ax_industrieundgewerbeflaeche'' FROM ax_industrieundgewerbeflaeche WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     753--              SELECT ''ax_klassifizierungnachstrassenrecht'' FROM ax_klassifizierungnachstrassenrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     754--              SELECT ''ax_klassifizierungnachwasserrecht'' FROM ax_klassifizierungnachwasserrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     755--              SELECT ''ax_kleinraeumigerlandschaftsteil'' FROM ax_kleinraeumigerlandschaftsteil WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     756--              SELECT ''ax_kommunalesgebiet'' FROM ax_kommunalesgebiet WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     757--              SELECT ''ax_kreisregion'' FROM ax_kreisregion WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     758--              SELECT ''ax_lagebezeichnungkatalogeintrag'' FROM ax_lagebezeichnungkatalogeintrag WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     759--              SELECT ''ax_lagebezeichnungmithausnummer'' FROM ax_lagebezeichnungmithausnummer WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     760--              SELECT ''ax_lagebezeichnungmitpseudonummer'' FROM ax_lagebezeichnungmitpseudonummer WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     761--              SELECT ''ax_lagebezeichnungohnehausnummer'' FROM ax_lagebezeichnungohnehausnummer WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     762--              SELECT ''ax_landwirtschaft'' FROM ax_landwirtschaft WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     763--              SELECT ''ax_leitung'' FROM ax_leitung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     764--              SELECT ''ax_meer'' FROM ax_meer WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     765--              SELECT ''ax_moor'' FROM ax_moor WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     766--              SELECT ''ax_musterlandesmusterundvergleichsstueck'' FROM ax_musterlandesmusterundvergleichsstueck WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     767--              SELECT ''ax_namensnummer'' FROM ax_namensnummer WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     768--              SELECT ''ax_naturumweltoderbodenschutzrecht'' FROM ax_naturumweltoderbodenschutzrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     769--              SELECT ''ax_person'' FROM ax_person WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     770--              SELECT ''ax_platz'' FROM ax_platz WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     771--              SELECT ''ax_punktkennunguntergegangen'' FROM ax_punktkennunguntergegangen WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     772--              SELECT ''ax_punktortag'' FROM ax_punktortag WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     773--              SELECT ''ax_punktortau'' FROM ax_punktortau WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     774--              SELECT ''ax_punktortta'' FROM ax_punktortta WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     775--              SELECT ''ax_regierungsbezirk'' FROM ax_regierungsbezirk WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     776--              SELECT ''ax_reservierung'' FROM ax_reservierung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     777--              SELECT ''ax_schifffahrtsliniefaehrverkehr'' FROM ax_schifffahrtsliniefaehrverkehr WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     778--              SELECT ''ax_schiffsverkehr'' FROM ax_schiffsverkehr WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     779--              SELECT ''ax_schutzgebietnachnaturumweltoderbodenschutzrecht'' FROM ax_schutzgebietnachnaturumweltoderbodenschutzrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     780--              SELECT ''ax_schutzgebietnachwasserrecht'' FROM ax_schutzgebietnachwasserrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     781--              SELECT ''ax_schutzzone'' FROM ax_schutzzone WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     782--              SELECT ''ax_seilbahnschwebebahn'' FROM ax_seilbahnschwebebahn WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     783--              SELECT ''ax_sicherungspunkt'' FROM ax_sicherungspunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     784--              SELECT ''ax_soll'' FROM ax_soll WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     785--              SELECT ''ax_sonstigervermessungspunkt'' FROM ax_sonstigervermessungspunkt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     786--              SELECT ''ax_sonstigesbauwerkodersonstigeeinrichtung'' FROM ax_sonstigesbauwerkodersonstigeeinrichtung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     787--              SELECT ''ax_sonstigesrecht'' FROM ax_sonstigesrecht WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     788--              SELECT ''ax_sportfreizeitunderholungsflaeche'' FROM ax_sportfreizeitunderholungsflaeche WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     789--              SELECT ''ax_stehendesgewaesser'' FROM ax_stehendesgewaesser WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     790--              SELECT ''ax_strassenverkehr'' FROM ax_strassenverkehr WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     791--              SELECT ''ax_strassenverkehrsanlage'' FROM ax_strassenverkehrsanlage WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     792--              SELECT ''ax_sumpf'' FROM ax_sumpf WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     793--              SELECT ''ax_tagebaugrubesteinbruch'' FROM ax_tagebaugrubesteinbruch WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     794--              SELECT ''ax_tagesabschnitt'' FROM ax_tagesabschnitt WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     795--              SELECT ''ax_topographischelinie'' FROM ax_topographischelinie WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     796--              SELECT ''ax_transportanlage'' FROM ax_transportanlage WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     797--              SELECT ''ax_turm'' FROM ax_turm WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     798--              SELECT ''ax_unlandvegetationsloseflaeche'' FROM ax_unlandvegetationsloseflaeche WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     799--              SELECT ''ax_untergeordnetesgewaesser'' FROM ax_untergeordnetesgewaesser WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     800--              SELECT ''ax_vegetationsmerkmal'' FROM ax_vegetationsmerkmal WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     801--              SELECT ''ax_vertretung'' FROM ax_vertretung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     802--              SELECT ''ax_verwaltung'' FROM ax_verwaltung WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     803--              SELECT ''ax_verwaltungsgemeinschaft'' FROM ax_verwaltungsgemeinschaft WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     804--              SELECT ''ax_vorratsbehaelterspeicherbauwerk'' FROM ax_vorratsbehaelterspeicherbauwerk WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     805--              SELECT ''ax_wald'' FROM ax_wald WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     806--              SELECT ''ax_wasserspiegelhoehe'' FROM ax_wasserspiegelhoehe WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     807--              SELECT ''ax_weg'' FROM ax_weg WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     808--              SELECT ''ax_wegpfadsteig'' FROM ax_wegpfadsteig WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     809--              SELECT ''ax_wohnbauflaeche'' FROM ax_wohnbauflaeche WHERE gml_id = ''' || NEW.beziehung_zu || ''' UNION 
     810--              SELECT ''ax_wohnplatz'' FROM ax_wohnplatz WHERE gml_id = ''' || NEW.beziehung_zu || ''''; 
     811--      EXECUTE sql_zuTypename INTO NEW.zu_typename; 
     812-- -- 2013-12-10 Ende 
     813 
     814        RETURN NEW; 
     815END; 
     816$$ LANGUAGE plpgsql; 
  • trunk/import/datenbank_anlegen.sh

    r294 r299  
    1010##  2013-04-16 Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql 
    1111##  2013-10-16 F.J. krz: Neues Sript "pp_praesentation_sichten.sql" für Reparatur Präsentationsobjekte Straßennamen 
     12##  2013-12-03 F.J. krz: Script "sichten.sql" einbeziehen. Darin View "doppelverbindung" fuer WMS FS-Kommunal. 
    1213 
    1314POSTNAS_HOME=$(dirname $0) 
     
    116117 
    117118echo " " 
    118 echo "** Definition von Views (sichten_wms.sql)" 
     119echo "** Definition von Views fuer Kartendienste (sichten_wms.sql)" 
    119120psql $con -U ${DBUSER} -f sichten_wms.sql >$MANDANT_HOME/log/sichten_wms.log 
     121 
     122echo " " 
     123echo "** Definition von Views (sichten.sql)" 
     124psql $con -U ${DBUSER} -f sichten.sql >$MANDANT_HOME/log/sichten.log 
    120125 
    121126echo " " 
Note: See TracChangeset for help on using the changeset viewer.