Вызов процедуры через Snowsql

#snowflake-cloud-data-platform

#платформа облачных данных snowflake

Вопрос:

Я вызываю заблокированную процедуру через SNOWSQL и получаю ошибку ниже.

002141 (42601): ошибка компиляции SQL: неизвестная пользовательская функция ETL_SCHEMA.PROC

Ниже приведен запрос snowsql:

 snowsql -c newConnection  -o log_level=DEBUG -r ACCT_ROLE  -w ETL_XS_WH -d ETL_DEV_DB -s ETL_SCHEMA -q "CALL ETL_SCHEMA.PROC('202')" -o friendly=False  -o header=False -o output_format=plain -o timing=False
 

Здесь что-то не так?

Ответ №1:

CALL ETL_SCHEMA.PROC('202') Работает ли ваш веб-интерфейс Snowflake? Возможно, это не хранимая процедура, а определяемая пользователем функция.

Комментарии:

1. да, он работает нормально, когда я работаю в веб-графическом интерфейсе

Ответ №2:

Проблема, с которой вы столкнулись, связана либо с разрешениями, либо с проблемой пути поиска.

Я бы рекомендовал добавить префикс «etl_schema» к имени базы данных (он же полное имя) и попробовать это. Вы также можете просто запустить select current_role(), current_database(), current_schema(); команду вместо команды вызова, чтобы узнать, каков контекст, возможно, в конфигурации есть что-то, что перезаписывает аргументы, переданные с помощью команды.

Комментарии:

1. Спасибо, Рич, я проверил, что могу запустить процедуру из ВЕБ-интерфейса, но из snowsql не могу ее запустить. ниже приведен сценарий оболочки, который я использую для запуска процедуры. #!/bin/ksh export SNOWSQL_ACCOUNT=accountname; export SNOWSQL_USER=useid; export SNOWSQL_PWD=Password; export SNOWSQL_DATABASE=DEV_DB; export SNOWSQL_SCHEMA=ETL_SCHEMA; snowsql -a $SNOWSQL_ACCOUNT -u $SNOWSQL_USER --variable SNOWSQL_PWD=$SNOWSQL_PWD -o log_level=DEBUG -o log_file=~/snowsql_sso_debug.log -r SRVC_ACCT_ROLE -w ETL_XS_WH -d DEV_DB -s ETL_SCHEMA -q "CALL ETL_SCHEMA.PROC('202')"

2. пожалуйста, попробуйте ^ это (то, что вы написали), но замените команду SQL на ту, которую я предоставил, чтобы проверить «контекст» вашего сеанса.

3. схема не существует, поэтому она выдает ошибку. я проверю, как только схема будет доступна, и обновлю свой комментарий, спасибо!