Я пытаюсь написать процедуру, которая создает пользователей, роли и вархаус. Эта процедура выполняется с пользователем с высоким уровнем привилегий с ролью ACCOUNTADMIN
USE ACCOUNT_ADMIN;
USE WAREHOUSE PROVISIONER;
CREATE or replace PROCEDURE TEST()
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
snowflake.execute({ sqlText: "CREATE OR REPLACE WAREHOUSE test;"});
return "";
$$
;
Теперь, если я запрашиваю текущий склад:
SELECT CURRENT_WAREHOUSE();
Я получу PROVISIONER
Если Теперь я вызываю процедуру
CALL TEST();
Склад изменился
SELECT CURRENT_WAREHOUSE();
Теперь возвращается TEST
Это нормальное поведение? Это проблема, потому что хранилище изменено вне процедуры, и я не могу использовать оператор «USE WAREHOUSE» внутри процедуры.
Есть ли другой способ создать WAREHOUSE из процедуры без изменения текущего хранилища?