堆栈溢出。
我有一些批处理作业在 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
语句吗?
谢谢你。
这些 SnowSQL 命令仅特定于 SnowSQL,它们不是 SQL 的一部分,必须自行运行,并且不能将它们与 SQL 查询或 SQL 脚本结合使用。
不支持此功能。