Default-parameter in oracle-Prozedur
Habe ich ein Paket xyz wie folgt :-
create or replace package xyz
is
procedure abc( v_frst_param in VARCHAR2 default 'Y')
IS
BEGIN
dbms_output.put_line(v_frst_param);
-- CALLING another function
update_table(p_frst_parm =>v_frst_param,
p_second_param =>'2');
END;
In der dbms_output.put_line die Ausgabe kommt null wenn ich mich nicht übergeben, Wert beim aufrufen von abc Verfahren.
wenn ich bestanden haben Standard und ich bin nicht passign irgendwelche parameter nicht den Wert kommen, als Y in der Ausgabe
- Haben Sie server-Ausgabe auf?
- ja, in der Ausgabe bin ich immer die anderen Ausgänge aber nicht diesen besonderen Wert
- haben Sie das entsprechende Paket Körper angelegt?
- Wie sind Sie mit der Ausführung dieses? Sie haben beide Kröte und plsqldeveloper-tags. Sind Sie mit einem bestimmten tool? Sind Sie auf der Ausführung von anonymen block, den Sie eingegeben haben oder verwenden Sie das tool ausführen dialog? Wenn Sie das tool ausführen-dialog werden Sie sicher, dass die param-Eingänge sind als Sie erwarten. Kröte wird zu Ehren der default-Wert und verwenden, es sei denn, Sie überschreiben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, ich denken, dass Paket wäre ungültig, Sie versuchen, hinzufügen, ein Körper für Ihre Funktion in Ihrer package-Spezifikation. Aber die ganze Idee ist gut und es sollte funktionieren, wenn richtig gemacht, zum Beispiel, erstellen Sie ein Paket:
Und ein Paket, Karosserie:
Dann möchten Sie vielleicht, um den Aufruf der Prozedur ist:
Bitte beachten Sie, dass, wenn Sie senden Sie alles als parameter für v_first_parameter zu dieser Prozedur wird der Wert, den Sie gesendet und nicht dem Standardwert.
abc(a in varchar2 default 'Y', b in varchar2)
ist völlig legal und funktioniert gut, solange Sie benannte Parameter zu verwenden, wenn Sie ihn aufrufen.Ausprobieren
Hängt hauptsächlich davon ab, wie Sie den Aufruf Ihrer Prozedur -
ABC();
oderABC;
oderABC(NULL);
oderABC('');
und die Art und Weise Ihrerparameters
deklariert werden.Nun, wenn Sie nennen Ihr Verfahren wie: