SQL 编译错误:位置 0 处的语法错误行 1 意外的“WHILE”(Snowflake SQL)

SQL compilation error: syntax error line 1 at position 0 unexpected 'WHILE' (Snowflake SQL)

提问人:Rahul 提问时间:4/17/2023 更新时间:4/17/2023 访问量:645

问:

我正在尝试在雪花中运行 while 循环,但它在第一行上出现错误,即“While”

错误消息:- SQL 编译错误:位置 0 处的语法错误行 1 意外的“WHILE”。

示例代码如下:-

        WHILE ((SELECT Max(Column1) FROM table1) IS NOT NULL AND (SELECT Max(Column2) FROM table1) IS NOT NULL)
        DO
        
        UPDATE table 2
    set Column1(from table 1) = select col1 from table2...
        ....... (some more logic)
---column1(this value will be updated for while condition)
        ;
        
        insert into table 2
        ....(Some logic) --> 
        ;
        END WHILE; 

以下声明:-

SELECT Max(Column1) FROM table1 and SELECT Max(Column2) FROM table1
 --> 

将始终将 0 和 0 作为值,然后从更新查询中获取将运行循环的数据

谁能帮忙解决确切的问题?

sql while-loop 雪花云数据平台

评论


答:

0赞 Limonka 4/17/2023 #1

Snowflake 要求您在脚本块中编写此类代码。尝试将代码打包

BEGIN
...
END

文档:https://docs.snowflake.com/en/developer-guide/snowflake-scripting/blocks#using-an-anonymous-block