Weitere Einzelheiten zu der Syntax und den Parametern der CALL-Anweisung finden Sie unter CALL-Anweisung. Ein Beispiel zur Verwendung der CALL-Anweisung finden Sie in den Beispielen zur CREATE PROCEDURE-Anweisung.
Eine Routine wird als ESQL-Methode aufgerufen, wenn die Definition der Routine eine LANGUAGE-Klausel in ESQL angibt oder wenn es sich bei der Routine um eine integrierte Funktion handelt.
Zwischen der Definition und der CALL-Anweisung muss ein exakter 1:1-Abgleich der Datentypen und Richtungen jedes Parameters stattfinden.
Eine ESQL-Routine darf jeden ESQL-Datentyp zurückgeben, mit Ausnahme der Typen "Liste" und "Zeile".
Eine Routine wird als Java-Methode aufgerufen, wenn die Definition der Routine eine LANGUAGE-Klausel in JAVA angibt.
Zwischen der Definition und der CALL-Anweisung muss ein exakter 1:1-Abgleich der Datentypen und Richtungen jedes Parameters stattfinden.
Wenn die Java-Methode einen typenlosen Rückgabetyp besitzt, können Sie die INTO-Klausel nicht verwenden, da es keinen Wert gibt, der zurückgegeben werden kann.
Eine Java-Routine kann jeden Datentyp in der Tabelle für die Zuordnung von ESQL- zu Java-Datentypen zurückgeben. Ausnahmen bilden jedoch die Typen "Liste" und "Zeile".
Eine Routine wird als in einer Datenbank gespeicherte Prozedur aufgerufen, wenn die Definition der Routine die LANGUAGE-Klausel DATABASE (Datenbank) enthält.
Bei einem Aufruf an eine in einer Datenbank gespeicherte Prozedur sucht der Broker eine durch eine CREATE PROCEDURE-Anweisung erstellte Definition, die mit dem lokalen Namen der Prozedur übereinstimmt. Dann verwendet der Broker die folgende Sequenz, um den Namen der Prozedur in der zugehörigen Datenbank und im Datenbankschema zu ermitteln:
Wenn die aufgerufene Routine in ihrer Definition DYNAMIC RESULT SETS (dynamische Ergebnissätze) angibt, muss die Anzahl der Ausdrücke in der ParameterList-Variablen der CALL-Anweisung der Anzahl der tatsächlichen Parameter in der Routine plus der Anzahl der DYNAMIC RESULT SETS (dynamischen Ergebnissätze) entsprechen. Wenn die Routine z. B. drei Parameter und zwei DYNAMIC RESULT SETS (dynamische Ergebnissätze) enthält, muss die CALL-Anweisung fünf Parameter an die aufgerufene Routine weiterleiten. Die für die beiden DYNAMIC RESULT SETS (dynamischen Ergebnissätze) weitergeleiteten Parameter müssen Listenparameter sein, d. h., es muss sich dabei um Feldreferenzen handeln, die mit Array-Klammern [ ] qualifiziert sind (z. B. Environment.ResultSet1[]).
Eine in einer Datenbank gespeicherte Prozedur darf jeden ESQL-Datentyp zurückgeben, mit Ausnahme der Typen "Intervall", "Liste" und "Zeile".