CALL

Chama um procedimento armazenado.

Consulte também:

CREATE PROCEDURE , SHOW PROCEDURES

Sintaxe

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

Parâmetros obrigatórios

procedure_name ( [ arg , ... ] )

Especifica o identificador (procedure_name) e quaisquer argumentos de entrada (arg) para o procedimento a ser chamado.

Parâmetros opcionais

INTO :snowflake_scripting_variable

Define a variável do Script Snowflake especificada para o valor de retorno do procedimento armazenado.

Notas de uso

  • Os nomes dos procedimentos não são necessariamente únicos dentro do esquema; os procedimentos armazenados são identificados e resolvidos por seus tipos de argumentos, assim como seus nomes (ou seja, os procedimentos armazenados podem ser sobrecarregados).

  • Fora de um bloco do Script Snowflake, o valor retornado pelo procedimento armazenado não pode ser utilizado, pois a chamada não pode fazer parte de uma expressão.

    Em um bloco do Script Snowflake, você pode especificar INTO :snowflake_scripting_variable para capturar o valor de retorno de um procedimento armazenado em uma variável do Script Snowflake.

  • Os procedimentos armazenados não são atômicos; se uma instrução em um procedimento armazenado falhar, as outras instruções no procedimento armazenado não são necessariamente revertidas. Para obter mais informações sobre procedimentos armazenados e transações, consulte Gerenciamento de transações.

  • Você também pode criar e chamar um procedimento anônimo usando CALL (com procedimento anônimo).

Exemplos

O exemplo a seguir chama um procedimento armazenado chamado sv_proc1 e passa em uma cadeia de cadeia de caracteres literal e numérica como argumentos de entrada:

CALL sv_proc1('Manitoba', 127.4);
Copy

O exemplo a seguir demonstra como definir e passar uma variável de sessão como um argumento de entrada para um procedimento armazenado:

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

A seguir é mostrado um exemplo de um bloco do Script Snowflake que captura o valor de retorno de um procedimento armazenado em uma variável do Script Snowflake.

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

Nota: se você estiver usando SnowSQL ou Classic Console, use este exemplo (consulte Como usar o Script Snowflake no SnowSQL e na Classic Console):

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

Para exemplos mais extensos de criação e chamada de procedimentos armazenados, consulte Como trabalhar com procedimentos armazenados.