Hallo,
ich möchte eine User Defined Table Function erstellen. Die SQL-UDTF soll ein RPGLE-Programm (in diesem Fall ein Serviceprogramm) aufrufen. Das haben wir alles schon oft gemacht und es klappt normalerweise. Jetzt haben wir die Besonderheit, dass wir der UDTF variabel viele Input-Parameter mitgeben möchten. Ich habe deshalb mehrere SQL-Funktionen mit dem gleichen Namen und den unterschiedlichen Parametern erstellt. Alle verweisen auf dasselbe RPG-Programm. (so haben wir das bei normalen UDFs (nicht UDTFs!) auch schon oft gemacht.

Im RPG werden ja viel mehr Parameter deklariert als in der SQL-UDTF. Also die Input-Werte der SQL-UDTF, dann die zurückzugebenden Spalten, dann für alle Parameter die Null-Indikatoren und dann noch die Standard-Statusvariablen (z.B. Scratchpad).
Die Besonderheit liegt im RPG jetzt darin, dass die optionalen Parameter (meiner Meinung nach) innerhalb der Gesamt-Parameterdeklaration stehen müssen und nicht, wie üblich, am Ende. Ich habe also die optionalen Parameter am Ende der Input-Parameter eingetragen. Das Programm lässt sich kompilieren. Aber beim Aufruf über die SQL-Funktion gibt es Runtime-Fehler, weil nicht alle Parameter übergeben wurden.

Deshalb die wichtigste Frage: Geht das überhaupt? Also UDTF mit RPGLE und optionalen Parametern.
Falls ja: Wo in der Parameterliste müssen die optionalen Parameter stehen und wie werden sie deklariert? (Ich habe das ja mit *OMIT gemacht).

Vielen Dank im Voraus.

Dieter