Sollte die Reihenfolge der Parametertypen beim Aufruf einer gespeicherten Prozedur in Oracle wichtig sein?Gespeicherte Oracle-Prozeduren ... Probleme beim Setzen eines OUT-Parameters vor einem IN-Parameter?
Zum Beispiel
my_proc (
param_a IN NUMBER
, param_b IN STRING
, param_c OUT NUMBER
, param_d OUT STRING
) begin
param_c = param_a
param_d = param_b
end
Wenn wir etwas tun, wie die oben wir (die spezifische Syntax vergeben bitte wieder) in wieder heraus in den OUT-Parameter übergebenen Werte (bitte Syntaxfehler verzeihen). Erhalten die
Wenn wir jedoch param_c über param_b bewegen bekommen wir 0,0 und NULL anstelle der übergebenen Werte.
my_proc (
param_a IN NUMBER
, param_c OUT NUMBER
, param_b IN STRING
, param_d OUT STRING
) begin
param_c = param_a
param_d = param_b
end
Wir dies testen in PL/SQL.
Gibt es etwas, was wir übersehen?
Dank BayouBob
Verwenden Sie benannte oder positionelle Parameter? Benannte Elemente werden manchmal nicht so behandelt, wie Sie es erwarten, und werden als positional behandelt, was erklären könnte, was Sie gesehen haben. –
Wir wechseln von positional zu named, um uns von den Launen des Clients abzukoppeln, der die Datenbank bereitstellt, mit der wir uns verbinden müssen. –