Überladen in Pl/SQL

Liebe/-r wer-weiss-was Experte/-in,

folgendes, wahrscheinlich triviales Problem. Ich möchte eine Prozedur in oracle pl/sql überladen. im originalzustand wird die prozedur mit zwei string variablen aufgerufen (Varchar2). Ich wollte nun die prozedur so überladen, dass ich sie auch mit nur einem bzw keinem string aufrufen kann. Diese sollen dann wieder die original Prozedur aufrufen, mit defaultwerten.
der code sieht so aus:

PROCEDURE logInfo
(servicename IN VARCHAR2, message IN VARCHAR2)
IS
loglevel CONSTANT NUMBER :=3;

p_equal_name(SERVICE,message,loglevel);

END logInfo;


PROCEDURE logInfo
(servicename IN VARCHAR2)
IS
begin
logInfo(servicename,‚Info aufgetreten‘);
end logInfo;

PROCEDURE logInfo
IS
begin
logInfo(‚DEFAULT‘,‚Info aufgetreten‘);
end logInfo;

tja, leider funktioniert das ganze dann beim testen nicht. er sagt immer zuwenig werte übergeben wenn ich die beiden unteren prozeduren aufrufen will.

Wenn Sie einen Tipp für mich hätten wäre ich sehr dankbar dafür.

MfG Johannes

Hallo Johannes,

folgendes, wahrscheinlich triviales Problem. Ich möchte eine
Prozedur in oracle pl/sql überladen.

Ich hoffe du hast berücksichtigt, dass das nur innerhalb eines Packages geht. Standalone - Prozeduren können nicht überladen werden.

Diese sollen
dann wieder die original Prozedur aufrufen, mit defaultwerten.
der code sieht so aus:

Dafür brauchst du aber das Überladen gar nicht.

PROCEDURE logInfo (servicename IN VARCHAR2 **DEFAULT 'DEFAULT'** , 
 message IN VARCHAR2 **DEFAULT 'Info aufgetreten'** ) 
IS
**BEGIN**
 loglevel CONSTANT NUMBER :=3;
 p\_equal\_name(SERVICE,message,loglevel);
END logInfo;

Ich hoffe ich habe jetzt kein Fehlerchen eingebaut, unser DB-Server spinnt sich gerade aus :-/

lg
Martin

Vielen Dank, aber…

Ich hoffe du hast berücksichtigt, dass das nur innerhalb eines
Packages geht. Standalone - Prozeduren können nicht überladen
werden.

ich würde trotzdem gerne wissen warum meine idee nicht funktioniert hat. also die Prozeduren sind allesamt im selben Package daran kann es nicht liegen.
Aber trotzdem noch mal vielen Danke für die schnelle Antwort. Funktionier 1A!

Johannes

ich würde trotzdem gerne wissen warum meine idee nicht
funktioniert hat.

Ohne ein vollständiges Codebeispiel kann man nur raten, aber ich würde raten, dass für die Varianten mit weniger Paramtern keine Spezifikation angegeben wurde.

Jens

sehr gut geraten :wink:
Danke Dir

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]