CALL

Ruft eine gespeicherte Prozedur auf.

Siehe auch:

CREATE PROCEDURE, SHOW PROCEDURES

Syntax

CALL <procedure_name> ( [ <arg> , ... ] )
  [ INTO :<snowflake_scripting_variable> ]

Erforderliche Parameter

procedure_name ( [ arg , ... ] )

Gibt den Bezeichner (procedure_name) und alle Eingabeargumente (arg) für die aufzurufende Prozedur an.

Optionale Parameter

INTO :snowflake_scripting_variable

Setzt die angegebene Snowflake Scripting-Variable auf den Rückgabewert der gespeicherten Prozedur.

Nutzungshinweise

  • Prozedurnamen sind im Schema nicht unbedingt eindeutig; gespeicherte Prozeduren werden durch ihre Argumenttypen sowie ihre Namen identifiziert und aufgelöst (d. h. gespeicherte Prozeduren können überladen werden).

  • Außerhalb des Snowflake Scripting-Blocks kann der von der gespeicherten Prozedur zurückgegebene Wert nicht verwendet werden, da der Aufruf nicht Teil eines Ausdrucks sein darf.

    In einem Snowflake Scripting-Block können Sie INTO :snowflake_scripting_variable angeben, um den Rückgabewert der gespeicherten Prozedur in einer Snowflake Scripting-Variablen zu erfassen.

  • Gespeicherte Prozeduren sind nicht atomar. Wenn eine Anweisung in einer gespeicherten Prozedur fehlschlägt, werden die anderen Anweisungen in der gespeicherten Prozedur nicht unbedingt zurückgesetzt. Weitere Informationen zu gespeicherten Prozeduren und Transaktionen finden Sie unter Transaktionsmanagement.

  • Sie können auch eine anonyme Prozedur mit CALL (mit anonymen Prozeduren) erstellen und aufrufen.

Beispiele

Im folgenden Beispiel wird eine gespeicherte Prozedur mit dem Namen sv_proc1 aufgerufen, die dabei ein Zeichenfolgenliteral und eine Zahl als Eingabeargumente übergibt:

CALL sv_proc1('Manitoba', 127.4);

Das folgende Beispiel zeigt, wie eine Sitzungsvariable als Eingabeargument festgelegt und an eine gespeicherte Prozedur übergeben wird:

SET Variable1 = 49;
CALL sv_proc2($Variable1);

Das folgende Beispiel zeigt einen Snowflake Scripting-Block, der den Rückgabewert einer gespeicherten Prozedur in einer Snowflake Scripting-Variablen speichert.

DECLARE
  ret1 NUMBER;
BEGIN
  CALL sv_proc1('Manitoba', 127.4) into :ret1;
  RETURN ret1;
END;

Hinweis: Wenn Sie SnowSQL oder die klassische Weboberfläche verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in SnowSQL und über die klassische Weboberfläche):

EXECUTE IMMEDIATE $$
DECLARE
  ret1 NUMBER;
BEGIN
  CALL sv_proc1('Manitoba', 127.4) into :ret1;
  RETURN ret1;
END;
$$
;

Ausführlichere Beispiele zum Erstellen und Aufrufen gespeicherter Prozeduren finden Sie unter Verwenden von gespeicherten Prozeduren.

Zurück zum Anfang