【发布时间】:2021-12-09 18:08:41
【问题描述】:
我在表上创建的流上运行了两个 ETL 作业。我需要在相同的流数据上运行这两个数据,并且我阅读了它以便这样做,DML 语句(在我的情况下是合并语句)需要包装在事务中并在最后提交。不过,我似乎无法在任务中做到这一点。我想我在某个地方弄乱了分号。这是我尝试过的
create or replace task my_task as
begin;
merge into my_table1 t using my_stream s on t.id=s.id when matched insert values (id, col1);
merge into my_table2 t using my_stream s on t.id=s.id when matched insert values (id, col2);
commit;
这只是一个例子,合并语句做了更复杂的事情。
如果我使用分号,脚本只会运行到begin,如果我不使用分号,则脚本会运行到 EOF 错误,即使脚本后面有多个分号(因此它会尝试读取过去commit)
【问题讨论】:
-
嗨 - 如果您阅读了文档,它清楚地指出任务可以运行单个 SQL 语句或存储过程
标签: sql snowflake-cloud-data-platform