PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PL/SQL Übergabe Parameter



klaus1
02-04-2007, 14:13
Hallo!

Frage zu den Übergabeparametern bei einer Function:
Gibt es eine Möglichkeit, wenn ich einen Übergabeparameter auslasse, dass ich in der Function dann rausfinden kann, ob ich nun dieser übergeben wurde oder nicht? geht das mit IF param1 IS NULL ?
Oder ist es generell nicht möglich, einen Übergabeparameter auszulassen, dann müsste ich mir beim Aufruf einen Dummywert setzen (bsp: -1), und in der Function abfragen wenn -1 dann wurde eben nichts übergeben.

danke,
Klaus

Waxolunist
03-04-2007, 09:35
Nein, du musst in einer Function immer genauso viel Parameter übergeben wie im Header angegeben sind. Beim schreiben von mehreren Functions mit dem gleichen Namen bin ich mir unsicher, denke aber dass dies möglich ist, wenn du verschiedene Parameter hast.

Du kannst aber statt eines Parameters null übergeben, solange die Anzahl stimmt. Dann musst du natürlich mit is null abfragen, sofern notwendig. Dummyparameter sind auch ok.

mfg, christian

Christoph
04-04-2007, 11:45
Das Overloading in PL/SQL ist -wie in C- so realisiert, dass man eine Funktion mehrmals mit verschiedenen Argumenten deklarieren kann. Beim Aufruf wird dann aber auch immer nur eine (und zwar die passende) aufgerufen.

Es kann also nicht sein, dass Code von einer Funktion mit fünf Argumenten ausgeführt wird, wenn diese Funktion mit vier Argumenten aufegrufen wurde.

Waxolunist
05-04-2007, 17:03
Also doch. Ich war mir ja nur unsicher, ob Oracle mehrere Procedures mit dem selben Namen in einem Package überhaupt erlaubt.