Dynamisches Select Statement in Funktion

From: Marc Hanisch <marc(dot)hanisch(at)ateam(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Dynamisches Select Statement in Funktion
Date: 2008-03-12 08:01:03
Message-ID: 47D78DBF.2070608@ateam.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo,

ich habe eine Funktion geschrieben, die, je nach Argument welches sie
übergeben bekommt, eine Abfrage generiert. Bsp.:

CREATE OR REPLACE FUNCTION reference(char, char) RETURNS char
AS 'SELECT substring($1 from ''[(].+,(.+)[)]'') FROM substring($1 from
''(.+)[(].+[)]'') WHERE substring($1 from ''[(](.+),.+[)]'') = $2'
LANGUAGE SQL
RETURNS NULL ON NULL INPUT;

Die Funktion wird wie folgt aufgerufen:

SELECT reference('schema.tabelle(id_row,name_row)', 1);

Innerhalb der Funktion wird also folgende Abfrage erstellt:

SELECT name_row FROM schema.tabelle WHERE id_row = 1;

Allerdings funktioniert dies nicht wie angedacht, da PostgreSQL name_row
als String interpretiert, nicht als Spalte. Gibt es hierfür einen
Workaround, oder laufe ich da generell in die falsche Richtung?

Danke für eure Hilfe,
Marc

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message A. Kretschmer 2008-03-12 10:54:06 Re: Dynamisches Select Statement in Funktion
Previous Message Olaf Radicke 2008-03-11 21:13:16 Themawechsel: Test-Account/-Datenbank