Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-de-allgemein by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group