Verwenden Sie die ESQL-Anweisung CALL, um eine Prozedur aufzurufen, die in einer Datenbank gespeichert ist. Die gespeicherte Prozedur muss durch eine
CREATE PROCEDURE-Anweisung mit folgenden Elementen definiert sein:
- Die LANGUAGE-Klausel DATABASE
- Eine EXTERNAL NAME-Klausel, die den Namen der Prozedur in der Datenbank und (optional) das zugehörige Datenbankschema angibt.
Wenn Sie mit der CALL-Anweisung eine gespeicherte Prozedur aufrufen, vergewissert sich der Broker, dass die ESQL-Definition und die Datenbankdefinition übereinstimmen:
- Der externe Name der Prozedur muss einer Prozedur in der Datenbank entsprechen.
- Die Anzahl der Parameter muss identisch sein.
- Der Parametertyp muss identisch sein.
- Die Richtung der einzelnen Parameter (IN, OUT, INOUT) muss identisch sein.
Die folgenden Einschränkungen gelten für die Verwendung gespeicherter Prozeduren:
- Überlappende Prozeduren werden nicht unterstützt. (Eine überlappende Prozedur ist eine Prozedur, die denselben Namen hat wie eine andere Prozedur in demselben Datenbankschema, jedoch eine andere Anzahl an Parametern oder Parameter anderer Typen.) Wenn der Broker eine überlappende Prozedur feststellt, gibt er eine Ausnahmebedingung aus.
- In einer gespeicherten Oracle-Prozedurdeklaration dürfen für die Parameter
CHAR und VARCHAR2 die Länge, für den Parameter NUMBER die Genauigkeit und/oder die Anzahl
der Kommastellen nicht vorgegeben werden. Verwenden Sie %TYPE bei der Deklaration der
Parameter CHAR, VARCHAR und NUMBER, um Vorgaben für einen formalen Parameter zu
ermöglichen.