In PostgreSQL 9.1, ich brauche einen Tabellennamen als Parameter an meine Funktion zu übergeben, um in einem Cursor verwendet werden - und rufen dann die Funktion wie:Wie übergibt man einen Tabellennamen für einen Cursor als Funktionsparameter?
select myfunction('tableA');
oder:
select myfunction('tableB')
Ich habe dies versucht:
create or replace function myfunction(sid text)
returns integer as $BODY$
declare
bids cursor is select id from sid; --line 4
begin
for bid in bids loop
--some logic
end loop;
return 1;
end;
$BODY$
language plpgsql volatile;
ich erhalte error on line 4
. Und ich habe es verstanden, es ist nicht erlaubt, einen Tabellennamen als Funktionsparameter zu übergeben, wo es Ruhe (Auswahl, Projektion) erlaubt.
Gibt es Alternativen, um dies zu erreichen?
Ich versuchte dies. eigentlich möchte ich die Eingabe für den Cursor verwenden (im declare block). – Spike
@Spike: Ich habe eine andere Antwort hinzugefügt, wie man einen Cursor dafür benutzt. –
Funktioniert gut. Vielen Dank. – Spike