Re: Variable Anzahl von Parametern in Funktion

From: Philipp Lawitschka <witschko(at)gmx(dot)de>
To: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Variable Anzahl von Parametern in Funktion
Date: 2008-10-21 17:38:31
Message-ID: 48FE1397.9020306@gmx.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

A. Kretschmer schrieb:
> am Tue, dem 21.10.2008, um 14:48:29 +0200 mailte Philipp Lawitschka folgendes:
>> Hallo zusammen,
>>
>> ich habe in der Dokumentation nichts darüber gefunden oder habe es
>> überlesen. Gibt es eine Möglichkeit eine variable Anzahl von Parametern
>> an eine Funktion zu übergeben? Ich habe eine Funktion concat, die als
>> Parameter Text aufnimmt und verknüpft wieder zurückgibt:
>>
>> CREATE OR REPLACE FUNCTION concat(text, text) RETURNS text AS $$
>>
>> SELECT $1 || $2;
>>
>> $$ LANGUAGE 'sql';
>>
>>
>> Es kann allerdings sein, dass die Anzahl der Parameter variiert. Bisher
>> habe ich es so gelöst, dass ich eben 3 Funktionen mit 2, 3, 4 Parametern
>> habe. In Zukunft könnte es aber auch vorkommen, dass es mehr Parameter
>> werden. Deshalb wäre eine variable Anzahl nicht schlecht.
>
> Mal von den bisherigen Antworten abgesehen folgende Fragen:
> - warum sowas triviales in eine Function stecken?

weil für die Anwendung bereits MySQL queries vorhanden sind. Die
function concat eben auch. Ich müsste die queries nicht von der db
abhängig machen (zumindest nicht dort, wo ich es vermeiden kann).

> - was ist, wenn eine Variable NULL ist? Dir ist klar, was dann passiert?

yep

> - was spricht gegen concat(text, concat(text,text)), falls es mal 3
> Parameter sind?

auch keine schlechte Idee

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas 'ads' Scherbaum 2008-10-23 21:46:50 == Wöchentlicher PostgreSQL Newsletter - 19. Oktober 2008 ==
Previous Message A. Kretschmer 2008-10-21 17:16:24 Re: Variable Anzahl von Parametern in Funktion