From: | Andreas Kretschmer <akretschmer(at)spamfence(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: FOR-LOOP durch eine Ergebnismenge |
Date: | 2013-03-30 07:36:46 |
Message-ID: | 20130330073645.GA8964@tux |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | Postg사설 토토SQL : Postg사설 |
Martin Spott <Martin(dot)Spott(at)mgras(dot)net> wrote:
> Andreas Kretschmer wrote:
>
> > execute 'select * from ' || layer || ';';
> >
> > *untested*
>
> .... aber schon nah dran ! ;-)
dachte ich mir schon, daß es Probleme geben wird, weil Du da mit eine
Record hantierst.
> 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'
Alternativ: die Variable als TEXT definieren und nur die Spalte
selektieren. untested, aber sollte so gehen. Ist IMHO dann sauberer,
denn stell Dir vor, da wären noch eine 2 GB große BYTEA-Spalte mit dabei
...
>
>
> Dennoch vielen Dank fuer den zielfuehrenden Hinweis, der Versuch mit
schon okay, kein Ding.
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
From | Date | Subject | |
---|---|---|---|
Next Message | Lars Grundei | 2013-04-03 17:18:36 | Datenbankgröße unplausibel |
Previous Message | Martin Spott | 2013-03-29 20:35:52 | Re: FOR-LOOP durch eine Ergebnismenge |