У меня есть представление, которое зависит от переменной сеанса:
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
Дело в том, что я хочу установить переменную сеанса из процедуры, а это недопустимо.
Ошибка выполнения хранимой процедуры: неподдерживаемый тип оператора «SET». В Snowflake.execute
В конечном итоге цель состоит в том, чтобы иметь ЗАДАЧУ Снежинки, которая запускает хранимую процедуру, и мне нужно иметь возможность каким-то образом установить переменную (ЗАДАЧА также не позволяет запускать набор, как и хранимая процедура).
Есть ли обходной путь?