【发布时间】:2021-10-12 21:26:54
【问题描述】:
我试图在 WHEN
之后创建雪花任务时调用存储过程CREATE OR REPLACE TASK SCHEMA.TASK1
warehouse = '..'
schedule = '5 minute'
WHEN
CALL DB.SCHEMA.CHECK_STATUS('arg1');
as
CALL DB.SCHEMA.ETL('arg1');
这是有效的,
WHEN
CALL DB.SCHEMA.CHECK_STATUS('arg1');
如果是,我们如何实现这一点以在任务中返回 true 或 false。 雪花文档链接 - https://docs.snowflake.com/en/sql-reference/sql/create-task.html#examples
我收到以下错误
SQL 编译错误:位置 9 处的语法错误第 5 行意外 '数据库'。
【问题讨论】:
-
我会考虑将 CHECK_STATUS 和 ETL 存储过程合并到单个 SP 中。如果不满足 CHECK_STATUS 条件,则退出 SP。如果满足,则继续 ETL 部分。尽管您可以使用 SYSTEM$STREAM_HAS_DATA 来避免运行 ETL,但仅运行 CHECK_STATUS 将需要运行仓库。换句话说,它不会通过将检查和 ETL 操作分开来保存任何内容。
标签: snowflake-cloud-data-platform