'Executing Multiple Lines in a Snowflake Task

I created the task below and am having trouble getting it to execute all lines. It looks like it just does the first delete from productweekly_upload then completes. Anyone have any ideas? This is my first time using tasks

CREATE OR REPLACE TASK WeeklySymphony_Load
  WAREHOUSE = UPLOADWAREHOUSE
  SCHEDULE = 'USING CRON 10 8 * * MON America/New_York'
as

--run every monday at 8:10 am 

delete from Productweekly_Upload;
delete from Factsweekly_Upload;
delete from Productweekly;
delete from Factsweekly;

copy into ProductWeekly_Upload
from @symphony_s3_stage/prasco_phast_it_prdct_wk_;

copy into FactsWeekly_Upload
from @symphony_s3_stage/prasco_phast_it_wk_;

insert into ProductWeekly
select * from ProductWeekly_Upload;

insert into FactsWeekly 
select * from FactsWeekly_Upload;


Solution 1:[1]

You can only execute 1 command in a TASK. If you want to create multiple steps, you can either wrap these into a stored procedure and call the SP from the TASK, or you can create each step as a TASK and make those dependencies, so they execute in order.

I recommend a read-through of this document:

https://docs.snowflake.com/en/user-guide/tasks-intro.html

Solution 2:[2]

If you want multiple statement, the 3 solutions are :

  1. Stored proc
  2. Chain multiple tasking AFTER statement
  3. Use Procedural logic with AS DECLARE // BEGIN // END; block https://docs.snowflake.com/en/sql-reference/sql/create-task.html#procedural-logic-using-snowflake-scripting

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mike Walton
Solution 2 Vincent Heuschling