View Full Version : udf ohne ergebniss
Na ja, ich denke wenn
select PNESU31('xxx' 1 , 2 , 3 , 4, 'xx') from DATEI
mit LibList LibA (wie beim create) geht, müsste LibB auch gehen.
select PNESU31('xxx' 1 , 2 , 3 , 4, 'xx') from LibA/DATEI geht ja auch.
Werde Montag nochmal nachsehen (sysreq / offene Dateien) is ja auch ne gute Idee
Danke
Max
Ach jaaa.
Du machst eine Funktion in LibA die später nicht in der Libl ist.
Mach einen "select liba/PNESU31(...", qualifiziere also den Funktionsnamen.
Oder pack die LibA ans Ende deiner aktuellen Libl oder kopiere (SAVOBJ/RSTOBJ) deine Funktion in LibB.
So, hab nun neu getestet.
Create ... return(select ...
from DATEI_OHNE_LIB ...
und anschließend
select Funktion(...) from DATEI_OHNE_LIB (in der selben Sitzung) geht.
select Funktion(...) from LIB/DATEI geht nur, wenn LIB auch in Liblist vorhanden ist. Ein 'Mitnehmen' (wie ich es mir gewünscht hätte) der fest angegebenen Lib in die Funktion geht nicht.
mit SAVOBJ / RSTOBJ übertragen geht auch.
Hab also was gelernt, bin nicht ganz zufrieden, aber kann mir zukünftig wieder ein wenig besser helfen.
Vielen Dank allen beteiligten Helfern !
gruß
Max
Ein "mitnehmen" einer LIB wäre auch fatal.
Wenn ich
Select ... from fileA
inner join LIBX/fileB ...
soll schließlich LIBX nicht für fileA verwendet werden.
Was anderes würdest du bei deiner Funktion nämlich nicht verlangen.
Hm, das seh ich anders
unqualifizierte Dateiangaben IN der Funktion übernehmen die qualifizierten Dateiangaben AUßERHALB der Funktion.
Natürlich nicht 'blind' Dateiübergreifend sondern schon auf der Qualifizierung DATEINAME
aber Egal
Max
Da eine Funktion nur mit Parametern aufgerufen wird, kann sie von der Datei ausserhalb gar nichts wissen !
select MyFunc(Parm)
from LibA/F1 ...
join LibB/F2 ...
join LibC/F3 ...
oder
Set :MyVar = MyFunc(:Parm)
Woher soll die Funktion nun erfahren, aus welcher Lib die Daten kommen sollen ?
Dies wird nun mal zur Laufzeit durch die Umgebung gesteuert:
Bei *SYS eben *LIBL
Bei *SQL eben der aktive User bzw. die "User"LIB zur Compilezeit
Alles andere wäre vollkommen unklar.
Ansonsten baue die Funktion als externes Programm, gib die Lib als Parameter mit und mach einen dynamischen SQL draus.