Skip to content

Snowflake Scripting

  • Can be used outside of stored-procedure
  • A block consists of: declare: variables, cursors, ResultSets, custom exceptions, begin, exception, end
  • ResultSet
    • v/s cursor: For cursor, query is executed when cursor is opened, whereas, for ResultSet, the query is executed when it is assigned a query (or with default clause in declaration)
    • can be async
    • can be used to fetch data within the block by declaring a <csr> cursor for <rs>
    • can be returned by stored procedure that has a return type table as return table(<rs>); example
  • async queries are run in asynchronously in a child job
    • can be associated with ResultSet or can be associated independently
    • must be awaited or canceled
  • handling exceptions:
    • exception: followed by a series of when <exception> then statements
    • can handle declared exceptions or built-in (statement_error and expression_error)
    • available built-in variables: sqlcode, sqlerrm and sqlstate
    • re-raise by specifying raise