mehrere Funktionen in einer Funktion aufrufen

Ludwigmller

SQL-Guru
Beiträge
168
Ich möchte mehrere Funktionen aufrufen, die selber jeweils eine Tabelle als Ergebnis ausgeben. Eine Funktion report() soll x Funktionen aufrufen und die Ergebnisse untereinander ausgeben.
Wie mache ich das am besten?
 
Werbung:
ich glaube du suchst union.

Bedingung:
alle functions müssen gleichviele Spalten haben.

Code:
select function1() union select function2();

EDIT:
halt den oben genannten Code in einer function definieren, würde aber eher eine View anlegen...
 
Das ist nicht gegeben.

Ist es vielleicht einfacher die Ausgabe für jede Funktion einer Ausgabedatei anzuhängen?
Wenn Du eine Funktion (oder View) haben willst, die alle Funktionen kombiniert, dann musst Diese Funktion so viele Spalten zurückgeben, wie die Funktion die am meisten Spalten zurückliefert. Die fehlenden Spalten musst Du mit NULL auffüllen.

Sowas in der Art:

Code:
select spalte_1, spalte_2, null::text as spalte_3, null::int as spalte_4
from funktion1()
union all
select spalte_1, spalte_2, spalte_3, null::int as spalte_4
from funktion2()
union all
select spalte_1, spalte_2, spalte_3, spalte_4
from funktion3()
 
Werbung:
Kann man das nicht als Text ausgeben?
Also unabhängig von der Spaltenanzahl?
Einfach nur die Ausgabe der jeweiligen Funktionen als Text nacheinander ausgeben, vielleicht mit RAISE_NOTICE oder in eine Datei schreiben?
 
Zurück
Oben