ich eine Funktion in Postgres entlang der Linien von dieser erstellen möchten:Mit WHERE ... IN in einer Postgres Funktion
CREATE OR REPLACE FUNCTION public.getAvailableForms (
get_form_names TEXT[]
) RETURNS TABLE (
id INTEGER,
name TEXT,
location TEXT,
created TIMESTAMP
) AS $$
BEGIN
RETURN QUERY
SELECT *
FROM form
WHERE form.name IN get_form_names;
END;
$$ LANGUAGE plpgsql
SECURITY DEFINER;
aber es sagt mir, dass WHERE form.name IN get_form_names
syntaktisch falsch ist.
Ich kann keine Dokumentation zur Verwendung von Array-Variablen in einem Postgres-Funktionsaufruf finden.
Wie auch immer, ist es möglich, einen Array-Wert zu verwenden, der als Funktionsargument in einem WHERE ... IN
übergeben wird?
Ich vergaß etwas zu erwähnen ... wenn Sie wirklich 'Select *', dann müssen Sie nicht die Tabelle als die Ausgabe deklarieren. Statt dessen könnten Sie 'RETURNS SETOF form AS' anstelle von' RETURNS TABLE (...) AS' ausführen. Ich weiß, dass dies ein primitives Beispiel sein könnte, um Ihr Problem zu demonstrieren, aber wenn Sie wirklich jedes Feld aus der Tabelle "form" zurückgeben, könnte dies hilfreich sein. – Hambone