PDA

View Full Version : UDF Aufruf ohne Angabe von Schema



Ralf_2011
03-06-13, 14:32
Hallo,

nach der Definition einer UDF kann diese nur qualifiziert aufgerufen werden. Die Verwendung von SET Schema hat keine Wirkung. Das Schema ist in der *LIBL enthalten. Fehlermeldung lautet:

$F55 der Art *N in *LIBL nicht gefunden.



create function S080IDV.$F55()
returns date --char(10)
language sql
reads sql data
no external action
allow parallel
deterministic
specific S080IDV.$F55
begin
declare abr char(4);
select s.abrz into abr from S080BIL.STATUS S where gruppe = 'TIMER';
return date( '01.' || substr(abr, 3, 2) || '.20' || substr(abr, 1, 2) );
end;
Kann jemand helfen ??

Danke

B.Hauser
03-06-13, 14:40
Das liegt daran, dass Du SQL Naming verwendets.
Beim SQL Naming wird die Bibliotheksliste ignoriert. Unqualifiziert angegebene Tabellen oder Views werden in dem Default oder Current Schema (=Bibliothek) gesucht (was nicht das gleiche ist wie die *CURLIB). Das Default oder Current Schema wird mit dem Befehl SET SCHEMA gesetzt, anderen falls wird das Schema mit dem Namen des Benutzers verwendet.

Unqualifiziert angegebene Routinen (Stored Procedures, UDFs und UDTFs) werden im SQL PATH gesucht.
Der SQL PATH wird mit SET PATH gesetzt. Der Sonderwert *LIBL ist beim SET PATH zulässig.

Birgitta

Ralf_2011
03-06-13, 15:16
Hallo,

vielen Dank. Hat mir sehr geholfen.

Gruß
:)