Snowflake 脚本 - 如何访问调用存储过程时传递的变量
Snowflake Scripting - How to access a variable that is passed when the stored procedure is called
我正在尝试重写以前在雪花脚本中使用 javascript 的雪花存储过程。我对它完全陌生。我想从我的块中访问“我的价值”的价值,但我似乎无法获得它。我敢肯定这很荒谬,但如果有人能帮助我,我将不胜感激。
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');
正如我所说,我对雪花脚本完全陌生,而且(老实说)我的 sql 也有点生疏,所以也欢迎任何其他建设性的批评。
赋值的正确语法是:=
current_value=my_value;
=>
current_value:="my_value";
输出:
CREATE OR REPLACE PROCEDURE my_stored_procedure(my_value varchar)
也不需要 "
。
我正在尝试重写以前在雪花脚本中使用 javascript 的雪花存储过程。我对它完全陌生。我想从我的块中访问“我的价值”的价值,但我似乎无法获得它。我敢肯定这很荒谬,但如果有人能帮助我,我将不胜感激。
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');
正如我所说,我对雪花脚本完全陌生,而且(老实说)我的 sql 也有点生疏,所以也欢迎任何其他建设性的批评。
赋值的正确语法是:=
current_value=my_value;
=>
current_value:="my_value";
输出:
CREATE OR REPLACE PROCEDURE my_stored_procedure(my_value varchar)
也不需要 "
。