snowflake-cloud-data-platformsnowflake-task

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

  • 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