LEARN

Snowflake Stored Procedures

Learn what Snowflake stored procedures are, how to create and execute them, and how they compare to user-defined functions (UDFs).

Archie Sarre Wood
Archie Sarre Wood

What is a Stored Procedure in Snowflake?

A stored procedure in Snowflake is a reusable block of SQL and procedural logic that can be executed as a single unit. Stored procedures help automate tasks such as data transformations, batch processing, and administrative operations.

Key Features of Snowflake Stored Procedures:

  • Encapsulation of Business Logic – Store and execute complex logic within the database.
  • Supports JavaScript – Write procedural code using JavaScript for greater flexibility.
  • Parameterized Execution – Accept input parameters for dynamic behavior.
  • Transaction Control – Perform multi-step operations with rollback capabilities.

How to Create a Stored Procedure in Snowflake

Stored procedures in Snowflake are typically written using SQL and JavaScript. Here’s a basic example:

CREATE OR REPLACE PROCEDURE my_procedure()
RETURNS STRING
LANGUAGE JAVASCRIPT
AS $$
    return 'Hello from my procedure!';
$$;

How to Execute a Stored Procedure in Snowflake

You can execute a stored procedure using the CALL statement:

CALL my_procedure();

How to View Stored Procedures in Snowflake

To list stored procedures in a schema, use:

SHOW PROCEDURES IN my_database.my_schema;

To view the details of a specific stored procedure:

DESCRIBE PROCEDURE my_procedure();

How to Call a Stored Procedure in Snowflake

Stored procedures are executed using the CALL command, and they can accept parameters:

CALL my_procedure('parameter_value');

How to Find a Stored Procedure in Snowflake

You can search for stored procedures using the INFORMATION_SCHEMA:

SELECT * FROM INFORMATION_SCHEMA.PROCEDURES WHERE PROCEDURE_NAME = 'my_procedure';

How to Drop a Stored Procedure in Snowflake

To delete a stored procedure, use the DROP PROCEDURE statement:

DROP PROCEDURE my_procedure();

How Does a Snowflake Stored Procedure Compare to a User-Defined Function (UDF)?

FeatureStored ProcedureUser-Defined Function (UDF)
PurposeExecute multi-step operationsCompute and return a single value
Supports TransactionsYesNo
Returns Multiple RowsYes (via table operations)No
Supports JavaScriptYesYes
ExecutionCalled with CALLUsed in SELECT, WHERE, etc.

Using Snowflake with Evidence

For teams working with Snowflake stored procedures, Evidence provides an efficient way to integrate Snowflake data into reports and dashboards. With Evidence, you can:

  • Execute stored procedures to transform and aggregate data.
  • Automate reporting workflows based on procedure outputs.
  • Leverage version-controlled reporting for accurate insights.

Check out the Evidence documentation to learn more about using Snowflake stored procedures for analytics and reporting.

Get Started with Evidence

Build performant data apps using SQL and markdown

Join industry leaders version controlling their reporting layer

Start Free Trial →