如何解决从 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 举报,一经查实,本站将立刻删除。