Default-Werte, der Gespeicherten Prozedur in Oracle
Ich habe eine gespeicherte Prozedur wie folgt.
CREATE OR REPLACE PROCEDURE TEST(X IN VARCHAR2 DEFAULT 'P',Y IN NUMBER DEFAULT 1) AS
BEGIN
DBMS_OUTPUT.PUT_LINE('X'|| X||'--'||'Y'||Y);
END;
Wenn ich führen Sie die oben beschriebenen Verfahren
EXEC TEST(NULL,NULL);
Sind, gibt es X--Y. Die input-Parameter werden nicht standardmäßig auf die angegebenen Werte in der Prozedur-Signatur, wenn input-Parameter null sind
. Was ist die Verwendung von default-Werten?. Was ist, wenn wir übergeben Sie null-Wert als input, und wir wollen zu ersetzen null-Wert mit dem default-Wert?.
InformationsquelleAutor der Frage user1118468 | 2014-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Default-Werte werden nur verwendet, wenn die Argumente nicht angegeben sind. In Ihrem Fall, dass Sie hat geben Sie die Argumente - beide geliefert wurden, mit einem Wert von NULL. (Ja, in diesem Fall wird NULL als ein realer Wert :-). Versuchen:
Teilen und genießen.
Nachtrag: Die Standardwerte für die Prozedur-Parameter sind sicherlich begraben in einem system Tabelle irgendwo (siehe
SYS.ALL_ARGUMENTS
Sicht), aber immer der default Wert aus der Sicht umfasst das extrahieren von text aus einem LANGEN Feld, und ist wahrscheinlich, um zu beweisen, noch schmerzhafter, als es Wert ist. Die einfach Weg ist, fügen Sie einige code, um das Verfahren:InformationsquelleAutor der Antwort Bob Jarvis