Re: FOR-LOOP durch eine Ergebnismenge
Martin Spott <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Organization | home |
| Message-ID | <[email protected]> |
Andreas Kretschmer wrote: > execute 'select * from ' || layer || ';'; > > *untested* .... aber schon nah dran ! ;-) Wenn ich im FOR nur die gesuchte Spalte selektiere, wie beschrieben als: FOR layer IN SELECT f_table_name FROM geometry_columns WHERE f_table_name LIKE 'clc06_sand' dann kriege ich mit dem obigen EXECUTE beim Aufruf der Funktion den Fehler: psql:testproc.sql:18: ERROR: syntax error at or near ")" ZEILE 1: SELECT * FROM (clc06_sand); Wenn ich aber den kompletten Record aus der View selektiere: FOR layer IN SELECT * FROM geometry_columns WHERE f_table_name LIKE 'clc06_sand' dann kann ich im EXECUTE mittels "layer.f_table_name" (anstelle nur von "layer") wie gewuenscht damit operieren. Leider muss ich mir letztlich doch was anderes ueberlegen, denn bei: EXECUTE 'SELECT * INTO test FROM ' || layer.f_table_name || ';'; kriege ich letztlich: psql:testproc.sql:18: ERROR: EXECUTE of SELECT ... INTO is not implemented TIP: You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS instead. Dennoch vielen Dank fuer den zielfuehrenden Hinweis, der Versuch mit EXECUTE 'CREATE TABLE test AS SELECT * FROM ' || layer.f_table_name || ';'; fuehrte letztlich zum gewuenschten Ergebnis ! 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