CALLDBPROC
dbproc ddm-name
|
|||||||||||||
M
|
|||||||||||||
[USING ]
|
parameter |
AD=
|
O
|
||||||||||
A
|
|||||||||||||
[RESULT SETS
result-set]
|
|||||||||||||
[GIVING
sqlcode]
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Das Statement CALLDBPROC
dient dazu, eine Stored Procedure
des SQL-Datenbanksystems, mit dem Natural verbunden ist, aufzurufen.
Die Stored Procedure kann entweder ein Natural-Subprogramm oder ein in
einer anderen Programmiersprache geschriebenes Programm sein. Neben der
Möglichkeit, Parameter zwischen dem aufrufenden Objekt und der Stored Procedure
zu übergeben, unterstützt CALLDBPROC
sogenannte Result Sets; mit
diesen ist es möglich, größere Datenmengen von der Stored Procedure an das
aufrufende Objekt zu übergeben, als dies mittels Parametern möglich wäre.
Die Result Sets sind von der Stored Procedure erzeugte temporäre
Ergebnistabellen, die das aufrufende Objekt mittels eines
READ RESULT
SET
-Statements lesen und verarbeiten können.
Anmerkung:
Im Prinzip ist der Aufruf einer Stored Procedure mit dem Aufruf
eines Natural-Subprogramms vergleichbar: wenn das
CALLDBPROC
-Statement ausgeführt wird, wird die Kontrolle an die
Stored Procedure übergeben; nach Verarbeitung der Stored Procedure wird die
Kontrolle wieder an das aufrufende Objekt zurückgegeben, und die Verarbeitung
wird mit dem nächsten Statement nach dem CALLDBPROC
-Statement
fortgesetzt.
dbproc |
Aufzurufende Stored Procedure:
Als dbproc geben Sie den Namen der Stored Procedure an, die aufgerufen werden soll. Der Name kann entweder als alphanumerische Variable oder als Konstante in Apostrophen (') angegeben werden. Der Name muss den Regeln für Stored-Procedure-Namen des Ziel-Datenbanksystems entsprechen. Falls die Stored Procedure ein Natural-Subprogramm ist, darf der eigentliche Procedure-Name nicht länger als 8 Stellen sein. |
|
---|---|---|
ddm-name |
Name eines
Natural-Datendefinitionsmoduls:
Der Name eines DDMs muss angegeben werden, um die "Adresse" der Datenbank, die die Stored Procedure ausführt, bereitzustellen. Weitere Informationen siehe ddm-name. |
|
[USING] parameter |
Zu übergebende Parameter:
Hier können Sie Parameter angeben, die vom aufrufenden Objekt an die Stored Procedure übergeben werden sollen. Als parameter können Sie Folgendes angeben:
Weitere Informationen siehe host-variable. |
|
AD= |
Attribut-Definition: Wenn es sich bei
dem parameter um eine
host-variable handelt, können Sie ihn wie folgt
markieren:
|
|
AD=O |
Nicht änderbar, siehe Session-Parameter
(Entsprechende Prozedur-Notation in DB2 for z/OS:
|
|
AD=M |
Änderbar, siehe Session-Parameter
(Entsprechende Prozedur-Notation in DB2 for z/OS:
|
|
AD=A |
Nur zur Eingabe, siehe Session-Parameter
(Entsprechende Prozedur-Notation in DB2 for z/OS:
|
|
Wenn der
parameter eine constant
ist, kann AD nicht explizit angegeben werden. Für
Konstanten gilt immer AD=O .
|
||
RESULT SETS result-set
|
Feld für Result-Set-Locator-Variable:
Als result-set geben Sie ein Feld an, in das der Result-Set-Locator zurückgegeben werden soll. Ein result-set muss eine Variable mit Format/Länge I4 sein. Der Wert einer result-set-Variablen ist
lediglich eine Zahl, die den Result Set identifiziert und die in einem
nachfolgenden Die Reihenfolge der result-set-Werte entspricht der Reihenfolge der von der Stored Procedure zurückgegebenen Result Sets. Der Inhalt der Result Sets kann von einem nachfolgenden Es kann nur ein Result-Set angegeben werden. |
|
GIVING sqlcode |
GIVING
sqlcode-Option:
Mit dieser Option können Sie den SQL-Code des SQL
Wenn Sie diese Option angeben und der SQL-Code der Stored Procedure ist nicht Null (0), wird keine Natural-Fehlermeldung ausgegeben. In diesem Fall muss die als Reaktion auf den SQL-Codewert auszuführende Handlung im aufrufenden Natural-Objekt programmiert werden. Das sqlcode-Feld muss eine Variable von Format/Länge I4 sein. Wenn Sie die Option |
Das folgende Beispiel zeigt ein Natural-Programm, das die Stored
Procedure DEMO_PROC
aufruft, um alle zu einem gegebenen Bereich
gehörenden Namen der Tabelle PERSON
einzulesen.
Drei Parameter-Felder werden an DEMO_PROC
übergeben: der
erste und zweite Parameter übergeben jeweils Start- und Endwerte des Bereichs
von Namen an die Stored Procedure, und der dritte Parameter nimmt einen Namen
auf, der das Kriterium erfüllt.
In diesem Beispiel werden die Namen in einem Result Set zurückgegeben,
der mit dem READ RESULT
SET
-Statement verarbeitet wird.
DEFINE DATA LOCAL 1 PERSON VIEW OF DEMO-PERSON 2 PERSON_ID 2 LAST_NAME 1 #BEGIN (A2) INIT <'AB'> 1 #END (A2) INIT <'DE'> 1 #RESPONSE (I4) 1 #RESULT (I4) 1 #NAME (A20) END-DEFINE ... CALLDBPROC 'DEMO_PROC' DEMO-PERSON #BEGIN (AD=O) #END (AD=O) #NAME (AD=A) RESULT SETS #RESULT GIVING #RESPONSE READ RESULT SET #RESULT INTO #NAME FROM DEMO-PERSON GIVING #RESPONSE DISPLAY #NAME END-RESULT ... END