У меня есть представление, которое зависит от переменной сеанса:
create or replace view test as
(
select getvariable('MY_VAR')::int as col1
) ;
Я могу запросить это представление следующим образом:
set MY_VAR=5;
select * from test; -- 5
set MY_VAR=6;
select * from test; -- 6
Теперь я хочу сделать тот же запрос изхранимая процедура:
create or replace procedure myproc()
returns VARCHAR
language javascript
as
$$
var stmt = snowflake.createStatement({sqlText: "select * from test"});
var rs = stmt.execute();
rs.next(); // .next().getColumnValue(1);
return rs.getColumnValue(1);
$$
;
call myproc() -- this work as long as MY_VAR is set outside before the call proc
Дело в том, что я хочу установить переменную сеанса изнутри процедуры, а это недопустимо
Ошибка выполнения хранимой процедуры: неподдерживаемый тип оператора'УСТАНОВЛЕН'. В Snowflake.execute
В конечном счете, цель состоит в том, чтобы иметь задание Snowflake, которое выполняет хранимую процедуру, и мне нужно как-то установить переменную (TASK также не позволяет запускать set,и ни один не делает хранимую процедуру).
Есть ли обходной путь?