[pl-sql] procedures: parameter out; wie?

Hi,
Wie kann ich denn beim Aufruf einer Prozedur den/die output parameter übergeben?
rein ist ja easy und überall erklärt… namentlich => oder positionell.
aber den wert des out parameters. oder ist das der rückgabewert der Prozedur? ( var_out := proc_name (in => xy, etc) )
nur was ist dann bei mehreren rückgabewerten??
oder stehen die auch in dem klammerausdrück hinter dem aufruf??

danke zur behebung meiner ratlosigkeit…!

chris

Hei,

ohne zu wissen welche Datenbank/Version aus Oracle Sicht so
ungefähr:

PROCEDURE eins (in_parm IN VARCHAR2, out_parm IN OUT VARCHAR2)
IS
BEGIN

out_parm := ‚JIPPI‘;

END;

irgendwo in einer anderen Proc.

var_eins VARCHAR2(10);
var_zwei VARCHAR2(10);

– Aufruf Procedur eins
eins (var_eins, var_zwei);

Ciao, Uwe

Moin,

ohne zu wissen welche Datenbank/Version aus Oracle Sicht so
ungefähr:

Jo, Oracle ist´s; die DB 8.0.6 oder 8.1.6;
ich hielt diese Sache für so elementar, dass ich keine Unterschiede vermutete…

PROCEDURE eins (in_parm IN VARCHAR2, out_parm IN OUT VARCHAR2)
IS
BEGIN

out_parm := ‚JIPPI‘;

END;

irgendwo in einer anderen Proc.

var_eins VARCHAR2(10);
var_zwei VARCHAR2(10);

– Aufruf Procedur eins
eins (var_eins, var_zwei);

Also sacht var_zwei jetzt ‚JIPPI‘…?

Danke!

Chris_Der´s_Irgendwann_Bestimmt_Lernt…:wink:

Wie kann ich denn beim Aufruf einer Prozedur den/die output
parameter übergeben?

Die Frage ist nicht wie - sondern wohin. Die Parameterwerte von OUT und INOUT Parametern müssen nämlich an Variablen übergeben werden. Nun hast du also 2 Möglichkeiten :

1. PL/SQL-Variablen + anonymer Block

DECLARE
v_dummy NUMBER; – oder anderer Datentyp
BEGIN
my_proc(1234, v_dummy); – Prozeduraufruf
dbms_output.put_line(v_dummy); – oder sonstige Weiterverarbeitung
END;
/

2. Bind/Host-Variablen (am Beispiel SQL*Plus)

variable v_dummy NUMBER – NUMBER ohne Längenangabe !!!

execute my_proc(1234, v_dummy) – Prozeduraufruf

print v_dummy – oder sonstige Weiterverarbeitung

Ich habe also jeweils eine Variable erstellt und dieser den Parameterwert zugewiesen. Die Zuweisung kann auch hier positional oder namentlich erfolgen.

Noch Fragen ? Dann immer her damit !

Gruss

der Janus

PS: Welches Buch hast du den gelesen ?