有条件地执行SnowSQL命令

问题描述 投票:0回答:1

堆栈溢出。

我有一些批处理作业在 Linux 中的 SnowSQL 下运行。我正在努力实现以下目标:

  • 如果条件为
    true
    ,则执行
    !system
    语句。

到目前为止,我已经尝试过以下方法,但没有成功。

SFUSER#[email protected]>SET SCRIPT =
                                  $$
                                  BEGIN
                                      LET count1 := 0;
                                      IF (count1 = 0) THEN
                                          !system 'echo asdfwerg > meow0111';
                                      END IF;

                                      RETURN 'MEOW';
                                  END;
                                  $$
                                  ;
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
1 Row(s) produced. Time Elapsed: 0.099s



SFUSER#[email protected]>EXECUTE IMMEDIATE $SCRIPT;
001003 (42000): SQL compilation error:
syntax error line 4 at position 7 unexpected '('.
syntax error line 4 at position 15 unexpected '='.

SFUSER#[email protected]>

但是,当我尝试使用

RETURN
语句或
SELECT
时,我可以成功执行脚本:

SFUSER#[email protected]>SET SCRIPT =
                                  $$
                                  BEGIN
                                      LET count1 := 0;
                                      IF (count1 = 0) THEN
                                          RETURN 'echo asdfwerg > meow0111';
                                      END IF;

                                      RETURN 'MEOW';
                                  END;
                                  $$
                                  ;
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
1 Row(s) produced. Time Elapsed: 0.077s


SFUSER#[email protected]>EXECUTE IMMEDIATE $SCRIPT;
+--------------------------+
| anonymous block          |
|--------------------------|
| echo asdfwerg > meow0111 |
+--------------------------+
1 Row(s) produced. Time Elapsed: 0.441s
SFUSER#[email protected]>

有什么方法可以在 Snowflake 脚本中执行

!system
语句吗?

谢谢你。

if-statement snowflake-cloud-data-platform system
1个回答
0
投票

这些 SnowSQL 命令仅特定于 SnowSQL,它们不是 SQL 的一部分,必须自行运行,并且不能将它们与 SQL 查询或 SQL 脚本结合使用。

不支持此功能。

© www.soinside.com 2019 - 2024. All rights reserved.