CALL¶
Chama um procedimento armazenado.
- Consulte também:
Sintaxe¶
CALL <procedure_name> ( [ <arg> , ... ] )
[ INTO :<snowflake_scripting_variable> ]
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);
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);
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;
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;
$$
;
Para exemplos mais extensos de criação e chamada de procedimentos armazenados, consulte Como trabalhar com procedimentos armazenados.