3 votes

Snowflake Scripting - Comment accéder à une variable passée lors de l'appel de la procédure stockée ?

J'essaie de réécrire une procédure stockée Snowflake qui utilisait auparavant le javascript dans le scripting Snowflake. Je suis complètement novice en la matière. Je veux accéder à la valeur de "ma valeur" à partir de mon bloc mais je n'y arrive pas. Je suis sûr que c'est quelque chose de ridicule, mais si quelqu'un pouvait m'aider, je l'apprécierais vraiment.

CREATE OR REPLACE PROCEDURE my_stored_procedure("my_value" varchar)
returns varchar
language sql
as
$$
DECLARE
current_day varchar;
current_month varchar;
current_year varchar;
current_value VARCHAR;
BEGIN

SELECT date_part(day, current_timestamp()) INTO :current_day;                         
SELECT date_part(month, current_timestamp()) INTO :current_month;
SELECT date_part(year, current_timestamp()) INTO :current_year;
current_value=my_value;
RETURN current_value;
exception
  when statement_error then
    return object_construct('Error type', 'STATEMENT_ERROR',
                            'SQLCODE', sqlcode,
                            'SQLERRM', sqlerrm,
                            'SQLSTATE', sqlstate);

END;
$$;

CALL my_stored_procedure('value');

Comme je l'ai dit, je suis complètement novice en matière de scriptage de flocon de neige et (si je suis honnête) mon SQL est également un peu rouillé, donc toute autre critique constructive est également la bienvenue.

2voto

lad2025 Points 38168

La syntaxe correcte pour l'affectation est :=

current_value=my_value;
=>
current_value:="my_value";

Sortie :

enter image description here

Il n'y a pas non plus besoin de " à l'adresse CREATE OR REPLACE PROCEDURE my_stored_procedure(my_value varchar) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X