FOR-LOOP durch eine Ergebnismenge

Martin Spott <[email protected]>
Newsgroups gmane.comp.db.postgresql.german
Organization home
Message-ID <[email protected]>
Moin zusammen,

das Verfahren ist in etlichen Quellen zu Genuege beschrieben und im
Grunde auch nicht mehr brandneu, trotzdem steh' ich mit einer ganz
simplen Angelegenheit irgendwie sehr daemlich auf der Leitung. 
Vielleicht mag jemand so freundlich sein und mir weiterhelfen.

Ich habe da eine View, aus der allerlei nette Tabellen-Namen
aufgelistet werden koennen - den Inhalt kann man sich exemplarisch so
angucken:

landcover=> SELECT * FROM geometry_columns WHERE f_table_name LIKE 'clc06_sand';
 f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid |  type   
-----------------+----------------+--------------+-------------------+-----------------+------+---------
 landcover       | public         | clc06_sand   | wkb_geometry      |               2 | 4326 | POLYGON
(1 Zeile)


Natuerlich gibt es noch ein paar mehr Tabellen und auf etliche davon
will ich das gleiche Verfahren anwenden (ein SELECT * INTO ...., ich
erwarte also gar keine Ausgabe).  Zum Test, ob das auch klappt, habe
ich eine kleine Funktion, die mir beweisen soll, dass der LOOP
funktioniert:

CREATE OR REPLACE FUNCTION testproc()
    RETURNS void
AS $$
    DECLARE
        layer record;
    BEGIN
        FOR layer IN SELECT f_table_name FROM geometry_columns WHERE f_table_name LIKE 'clc06_sand'
        LOOP
            SELECT * FROM layer;
        END LOOP;
    END;
$$
LANGUAGE 'plpgsql';


Leider funktioniert der Beweis nicht:

landcover=> SELECT testproc();
ERROR:  relation "layer" does not exist
ZEILE 1: SELECT * FROM layer


Bedeutet das, dass ich in dem LOOP den Inhalt des Iterators aus dem FOR
nicht einfach als Tabellen-Namen weiterverwenden darf ?

Besten Dank fuer Erleuchtung,
	Martin.
-- 
 Unix _IS_ user friendly - it's just selective about who its friends are !
--------------------------------------------------------------------------


-- 
Sent via pgsql-de-allgemein mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.