
Zitat von
rolf.schaufelberger
Hallo,
laut DOc Kap. 7.2.1.4. Table Functions
kann ich eine Funktion, die ein setof zurückgibt , wie eine Tabelle verwenden.
Mein Problem nun ist, dass der Parameter, den ich der Funktion übergeben möchte, eben ein Parameter und damit variabel ist.
Postgres sagt dann:
FEHLER: ungültiger Verweis auf FROM-Klausel-Eintrag für Tabelle »op«
LINE 11: join getsusers(op.schemaname) as us on us.id = user_id;
^
HINT: Es gibt einen Eintrag für Tabelle »op«, aber auf ihn kann aus diesem Teil der Anfrage kein Bezug genommen werden.
Beispiel:
======
create or replace function getData( name varchar) returns setof blahblah as ( ...)
Diese Funktion funktioniert, ich kann sie aufrufen mit
select id, name from getData(123) where blah blah...
alles OK soweit.
Jetzt ist der Parameter 123 aber nicht fix sondern kommt aus einem JOIN, Z.B.
select id, name , xx.nochwas
from bestellung op
join getData(op.spalte) as xx on xx... = ...
where blah blah...
liefert oben genannte Fehlermeldung.
Das gleiche passiert, wenn ich das in ein WITH packe, also die Form
with order_data as (
select spalte, ... from bestellung
...
)
select b.spate, xx.nochwas from order_data op
join getData (op.spalte) ...
Wenn ich die beiden selects aufrufe und statt des parameters op.spalte einen konkreten Wert übergebe, funktioniert das jeweils.
Weiß jemand Rat ?
Rolf
Lesezeichen