微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 snowsql cli

如何解决从 snowsql cli

  • 我正在尝试通过雪花 cli 使用 sql 脚本文件从雪花表中删除一条记录。
  • 例如从 PIPELINE_CONfig_DETAILS 表中,我想删除 DAG_NAME = 'file_to_sNowflake' 的记录
  • 我想让它成为通用的,以便用户可以在输入参数中传递表名和过滤条件来实现目标。
  • 为此,我将表名和 where 子句作为变量传递给 sql 文件
  • 变量 where 子句抛出无效标识符错误
  • 我尝试将变量值作为 DAG_NAME = 'file_to_sNowflake' 以及 DAG_NAME IN ('file_to_sNowflake') 传递,这两个值都抛出相同的错误

下面是我在sNowsql中传递的命令:with = in filter condition sNowsql -c development -f sql_template_filter_parameter.sql -D SF_TABLE='"TestDb"."Dev"."PIPELINE_CONfig_DETAILS"' -D SF_sql_FILTER=DAG_NAME='file_to_sNowflake'

以下是我得到的错误:With = condition 000904 (42000):sql 编译错误:第 1 行错误位于位置 75
无效标识符 '"DAG_NAME='file_to_sNowflake'"'

下面是我在sNowsql中传递的命令:with IN in the filter condition sNowsql -c development -f sql_template_filter_parameter.sql -D SF_TABLE='"SANDPIT"."MCM_SANDBox"."PIPELINE_CONfig_DETAILS_3_COLS"' -D SF_sql_FILTER="DAG_NAME"\ IN('file_to_sNowflake') -o remove_comments=

以下是我得到的错误IN 条件 000904 (42000):sql 编译错误:第 1 行错误位于位置 75
无效标识符 '"DAG_NAME IN('file_to_sNowflake')"'

以下是 sql 文件正文内容 !SET variable_substitution=true;

DELETE FROM "&{SF_TABLE}" WHERE "&{SF_sql_FILTER}";

SELECT COUNT(*) FROM "&{SF_TABLE}";

希望我对用例很清楚。

非常感谢您的任何帮助。

提前致谢, 拉古。

解决方法

您的 -D 参数错误:

-D SF_SQL_FILTER=DAG_NAME='file_to_snowflake'

您有 3 个值和 2 个 = 符号,这毫无意义

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。