Azure SQL - Stored Procedure

On this Page

Snap type:Write
Description:

This Snap invokes a stored procedure in the Azure SQL Database. If the procedure contains any OUT parameters, they are written to the output view.

ETL Transformations & Data Flow

This Snap enables the following ETL operations/flows:

Ideally, there is no data flow from the Snap to the database, however, the results computed in the store procedure or the result of queries executed in the stored procedure can be fetched by the Snap through output parameters.

Input & Output

  • InputThis Snap can have an upstream Snap that can pass a document output view. Such as Structure or JSON Generator. 
  • Output: The Snap has two output views-
    • Results set output view: Output document in the Result Set output view contains the result set of the stored procedure.
    • Output parameters output view : Output document in the output view contains a key-value pair for each output parameter. It will be an empty map document if there is no output parameter.


Prerequisites:The SP to be invoked must be created before executing the Snap.
Limitations and Known Issues:
  • Works in Ultra Tasks.
  • Can invoke only SPs but not functions. For such functions, use Execute Snap.
Configurations:

Account & Access

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint. See Azure SQL Account for information on setting up this type of account.

Views

InputThis Snap allows up to one input view. If an input view is defined, then values from an incoming document can be used as input parameters to the stored procedure.
OutputThis Snap has exactly two document output views, one regular output view, and one Result Set output view.
Error

This Snap has at most one error view and produces zero or more documents in the view.

Troubleshooting:

Ensure the input provided (Schema name and SP name) is correct.

Ensure the input parameters are provided correctly.

Settings

Label


Required. The name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.

Schema Name


The schema name where the procedure resides. The property is suggestible and will return all schemas of the DB.

The values can be passed using the pipeline parameters but not the upstream parameter.

Example: dbo


Stored Procedure Name

Required. Stored procedure to execute. The property is suggestible and will return all procedures of the DB. If a package is defined, then it will only return the procedures of that package. If a schema is defined and no package is defined, then it will return all procedures of that schema.

Example: addSeventeen
Default value: [None] 


Parameter Values


Select the input parameter values for the stored procedure. If you define parameter values, you must do so in the same order as they appear in the stored procedure definition.

Example: Suppose there is a stored procedure named createGreeting.  It has three parameters p1,p2, and p3.  p1 and p2 are input parameters of type VARCHAR2.  Then there have to be two string values provided.  The first value goes to p1 and the second to p2.

Quotation marks should not be used when setting input parameters unless they are part of the input value itself, since they are treated as escaped plain characters. For example, if the desired input value is TEST_VALUE1, the input parameter should be set as TEST_VALUE1, if you set it as "TEST_VALUE1", it will be recognized as \"TEST_VALUE1\".

If you do not provide any parameters in the given Snap, you can still view the required input parameters in the Target Schema of the upstream Mapper Snap. The parameters are dynamically populated based on the column keys of the stored procedure; you can map the parameters and pass them as an input to the Stored Procedure Snap.

Default value: [None]

Snap execution

Select one of the three modes in which the Snap executes. Available options are:
  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.
  • Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.
  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Basic Use Case

The following pipeline describes how the Snap functions in a pipeline: 

The Azure SQL Stored Procedure Snap invokes the Stored Procedure, Emp_Select_2

  


The Stored Procedure as created on the Azure SQL Database:

Create PROCEDURE Emp_Select_2(
@emp_id INT    -- Input parameter 
)
AS
BEGIN
SELECT * FROM dbo.Emp_Details WHERE emp_id=@emp_id 
END


The value passed through the upstream:



The Azure SQL Stored Procedure Snap invokes the stored procedure EMP_Select_2:

The output parameters output preview:

The result set output preview:

Typical Snap Configurations

The key configuration for the Snap are:

The Azure SQL Stored Procedure Snap invokes a procedure Emp_Select  on the database.

 

The procedure as created on the Azure SQL database:

  • Without Expression: Directly passing the required values into the Azure SQL Stored Procedure Snap:

The Azure SQL Stored Procedure Snap invokes the stored procedure, EMP_Select, with the parameter values as provided through the upstream:

 

The upstream Snap passes the values for invoking the procedure:

The Stored Procedure Snap retrieves the Stored Procedure name ($SP_Name) dynamically from the Upstream and the Schema name (_Schema) from the pipeline parameters:

 The Result Set output view that displays the results (the details of the employee with the provided ID) of the procedure:

   


Advanced Use Case

The following describes a pipeline, with a broader business logic involving multiple ETL transformations, that shows how typically in an enterprise environment, stored procedure functionality is used. Pipeline download link below.

This pipeline reads and moves the files from the SQL Server database to the Azure SQL database for reporting purposes. In this use case, the SQl Server Select Snap reads five records whose salary range is 40000 - 50000. The pipeline invokes a stored procedure, Emp_Select_SP, that retrieves the employee IDs where the salary>@sal. The Mapper Snap maps the value 50000 to the target output, sal. The Stored Procedure Snap invokes the procedure that retrieves all the records whose salary is greater than 50000. 

 

  1. Extract: The SQL Server Select Snap reads the records from the SQL Server Database.

  2. Transform: The Mapper Snap maps the values to be used for the stored procedure.

  3. Load: The Bulk Load Snap loads the records into the Azure SQL table.

  4. Extract: The Azure SQL Stored Procedure Snap retrieves the records as set in the stored procedure code.


The Stored Procedure as created on the Azure SQL Database:

Create PROCEDURE Emp_Select_SP (
@sal INT
)
AS 
BEGIN 
SELECT * FROM dbo.employee_sp WHERE salary>@sal 
END


The out preview (5 records) from the SQL Server Select Snap:

The Output preview from the Azure SQL Stored Procedure Snap:

(2 records with employee salary greater than 50000 are retrieved)

Downloads 

Important steps to successfully reuse Pipelines

  1. Download and import the pipeline into the SnapLogic application.
  2. Configure Snap accounts as applicable.
  3. Provide pipeline parameters as applicable.

Snap Pack History

 Click to view/expand
Release Snap Pack VersionDateTypeUpdates
November 2024main29029 StableUpdated and certified against the current SnapLogic Platform release.
August 2024main27765 StableUpgraded the org.json.json library from v20090211 to v20240303, which is fully backward compatible.
May 2024437patches27180 Latest

Fixed the following issues with the Azure SQL - Bulk Load Snap:

  • The Snap displayed an error when the DateTime was of the LocalDateTime type.

  • The Snap lost milliseconds when the DateTime was in the String data type because the given DateTime format was parsed into a Date object and the timestamp object was created from that date.

May 2024main26341 Stable

The following Azure SQL Active Directory Accounts have been renamed because Microsoft has rebranded Azure Active Directory to Microsoft Entra ID.

February 2024436patches25468 Latest

The Azure SQL Bulk Extract Snap now supports Azure SQL Active Directory and Azure SQL Active Directory Dynamic Accounts.

February 2024main25112 StableUpdated and certified against the current SnapLogic Platform release.
November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.
August 2023main22460

 

Stable

The Azure SQL Execute Snap now includes a new Query type field. When Auto is selected, the Snap determines the query type automatically.

May 2023main21015 StableUpgraded with the latest SnapLogic Platform release.
May 2023432patches20967 LatestFixed an issue with the connection pool in the Azure SQL accounts, which was affecting the Snap Pack's performance. You should now experience improved performance when using these accounts.
March 2023432patches20318 Latest

The Azure SQL - Bulk Extract Snap no longer fails with a java.lang.NumberFormatException error.

March 2023432patches20219 LatestFixed an issue with the Azure SQL - Bulk Load Snap involving special characters in JDBC URL properties, such as passwords. Special characters are properly escaped now
March 2023432patches20049 Latest

Intermittent connectivity issues no longer occur when using some Snaps in the Azure SQL Snap Pack. These issues caused the following message to display: The connection is broken and recovery is not possible. The connection is marked by the client driver as unrecoverable. No attempt was made to restore the connection

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
January 2023

431patches19493

 Latest

The Azure SQL Active Directory and the Azure SQL Active Directory Dynamic accounts now include an Authentication Mode dropdown list, which allows you to choose the Active Directory authentication mode you would like to use. This enhancement supports Active Directory Service Principal authentication for the Snap Pack.

December 2022

431patches19410


 


 

Stable


Latest

Fixed the Azure SQL - Execute Snap using the Azure SQL Active Directory Account that failed with SQL operation failed errors in environments using federated authentication.

December 2022431patches19263 Latest

The Azure Synapse SQL Insert Snap no longer includes the Preserve case-sensitivity checkbox because the database is case-insensitive. The database stores the data regardless of whether the columns in the target table and the input data are in mixed, lower, or upper case.

November 2022main18944 Stable

The Azure SQL Snap Pack uses the 11.2x driver by default. If you specify any specific driver, ensure that you provide a version higher than 9.1 that is compatible with Microsoft Authentication Library for Java, as this Snap Pack uses the MSAL4J. Otherwise, you may run into issues.

August 2022

main17386 Stable

The Azure Active Directory Search Entries Snap includes a Display Properties field where you can specify the properties to display in the output for the user or group. For the Snap to correctly return the attributes in the output, you must specify the attribute name as described in User profile attributes in Azure Active Directory B2C. Learn more about Properties for a user and Properties for a group.

4.29 Patch429patches16545 Latest

Fixed an issue with the Azure SQL-Stored Procedure Snap where the Snap failed with an Invalid value type error when the stored procedure contained an NCHAR data type.

4.29 Patch429patches16460 Latest

Fixed an issue with Azure SQL Bulk Load Snap where the Snaplex exited due to insufficient memory when a large number of rows are loaded into the target table and the input data contained a null value for a non-nullable column.

4.29main15993 Stable

Enhanced the Azure SQL Account and Azure SQL Active Directory Account with the Disable connection pooling checkbox that allows you to manage session state sharing.

4.28 Patch428patches15164 Latest

Fixed an issue with the Azure SQL - Update Snap where the Snap failed with an Incorrect syntax error when a column in a table is of NVARCHAR, NCHAR, or NTEXT data type and this column is part of another NVARCHAR, NCHAR, or NTEXT data type column name and the update condition is specified as an expression.

4.28 Patch428patches15114 LatestFixed an issue with the Azure SQL - Bulk Load Snap where the decimal values lost precision when they were inserted into the database.
4.28main14627 StableUpgraded with the latest SnapLogic Platform release.
4.27main12833 Stable

Enhanced the Azure SQL - Execute Snap to invoke stored procedures.

4.26main11181 StableUpgraded with the latest SnapLogic Platform release.
4.25main9554
 
StableUpgraded with the latest SnapLogic Platform release.
4.24main8556
Stable

Enhances the Azure SQL - Stored Procedure to accept parameters from input documents by column keys. If the values are empty, the parameters are populated based on the column keys for easier mapping in the upstream Mapper Snap.

4.23main7430
 
Stable

Enhances the Azure SQL - Bulk Extract Snap by adding a new check box Enable UTF-8 encoding to support UTF-8 encoded characters. This check box allows the Snap to update the BCP command to read the special characters.

4.22 Patch 422Patches6751 Latest

Enhances the Azure SQL - Bulk Extract Snap by adding a new check box Enable UTF-8 encoding to support UTF-8 encoded characters. Selected by default, this check box allows the Snap to update the BCP command to read these special characters.

4.22main6403
 
StableUpgraded with the latest SnapLogic Platform release.
4.21 Patch 421patches6272 Latest

Fixes the issue where Snowflake SCD2 Snap generates two output documents despite no changes to Cause-historization fields with DATE, TIME and TIMESTAMP Snowflake data types, and with Ignore unchanged rows field selected.

4.21 Patch 421patches6144 Latest

Fixes the following issues with DB Snaps:

  • The connection thread waits indefinitely causing the subsequent connection requests to become unresponsive.
  • Connection leaks occur during Pipeline execution.
4.21 Patch421patches5864 Latest

Adds support for UTF_8 characters with BCP (bulk copy program) command to the Azure SQL Bulk Extract Snap.

4.21 PatchMULTIPLE8841 Latest

Fixes the connection issue in Database Snaps by detecting and closing open connections after the Snap execution ends. 

4.21snapsmrc542

 

StableUpgraded with the latest SnapLogic Platform release.
4.20snapsmrc535
 
StableUpgraded with the latest SnapLogic Platform release.
4.19 Patch db/azuresql8403 Latest

Fixes an issue with the Azure SQL - Update Snap wherein the Snap is unable to perform operations when:

  • An expression is used in the Update condition property.
  • Input data contain the character '?'.
4.19snaprsmrc528
 
Stable

Enhanced the error handling in PolyBase Bulk Load Snap when writing to a data warehouse. The Snap writes a new blob in the Azure container. This new blob highlights the first invalid row that caused the bulk load operation to fail.

4.18snapsmrc523
 
StableUpgraded with the latest SnapLogic Platform release.
4.17ALL7402
 
Latest

Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.

4.17snapsmrc515
 
Latest
  • Fixes an issue with the Azure SQL Execute Snap wherein the Snap would send the input document to the output view even if the Pass through field is not selected in the Snap configuration. With this fix, the Snap sends the input document to the output view, under the key original, only if you select the Pass through field. 
  • Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.
4.16 Patch db/azuresql7179 Latest

Fixes an issue with the Azure SQL Bulk Extract Snap wherein the Snap fails to process all the metadata information of the input table and schema.

4.16snapsmrc508
 
StableUpgraded with the latest SnapLogic Platform release.
4.15 Patch db/azuresql6327 Latest

Replaced Max idle time and Idle connection test period properties with Max life time and Idle Timeout properties respectively, in the Account configuration. The new properties fix the connection release issues that were occurring due to default/restricted DB Account settings.

4.15snapsmrc500
 
StableUpgraded with the latest SnapLogic Platform release.
4.14snapsmrc490
 
StableUpgraded with the latest SnapLogic Platform release.
4.13

snapsmrc486

 
StableUpgraded with the latest SnapLogic Platform release.
4.12

snapsmrc480

 
StableUpgraded with the latest SnapLogic Platform release.
4.11 Patchazuresql4631 Latest

Fixes an issue with the Azure Polybase Bulk Load Snap that failed with "Parse error" when there was no input.

4.11 Patch db/azuresql4326 Latest
  • Fixes an issue with the Azure SQL Polybase Bulk Load Snap, that allowed the Snap to load data into a table with identity columns for Azure SQL Data Warehouse instance.
  • Fixes encoding issue when using a Windows plex, and added a "Encoding" Snap property that allows user to choose input data's encoding from UTF-8 and UTF-16.
4.11snapsmrc465
 
StableUpgraded with the latest SnapLogic Platform release.
4.10

snapsmrc414

 
Stable
  • Renamed the Azure SQL Bulk Load Snap to Polybase Bulk Load as it supports Azure SQL DW and SQL Server (starting with 2016).
  • The new Snap, Azure SQL Bulk Load is developed has been developed to carry out the bulk load function extensively for Azure SQL DB. (The old Azure Bulk Load has been renamed to Polybase BulkLoad  which works for on-premise SQL Server and Azure SQL Data Warehouse with polybase functionality).
  • Azure SQL Bulk Load, Table List, Execute, Stored ProcedureAzure SQL - Table Listand Update Snaps are released in this release.
  • Added Auto commit property to the Select and Execute Snaps at the Snap level to support overriding of the Auto commit property at the Account level.
  • Added the below accounts:
    • Azure SQL Active Directory Account

    • Azure SQL Active Directory Dynamic Account

4.9 Patch azuresql3078 Latest

Fixes an issue regarding connection not closed after login failure; Expose autocommit for "Select into" statement in PostgreSQL Execute Snap and Redshift Execute Snap

4.9snapsmrc405
 
StableUpgraded with the latest SnapLogic Platform release.
4.8 Patch azuresql2750
Latest

Potential fix for JDBC deadlock issue.

4.8

snapsmrc398

 
Stable
  • Info tab added to accounts.
  • Database accounts now invalidate connection pools if account properties are modified and login attempts fail.
4.7 Patchazuresql2196 Latest

Fixes an issue for database Select Snaps regarding Limit rows not supporting an empty string from a pipeline parameter.

4.7

snapsmrc382

 
StableUpgraded with the latest SnapLogic Platform release.
4.6snapsmrc362
 
StableUpgraded with the latest SnapLogic Platform release.
4.5.1

snapsmrc344

 
StableUpgraded with the latest SnapLogic Platform release.
4.5

snapsmrc344

 StableUpgraded with the latest SnapLogic Platform release.