Execute Stored Procedure

**NOTE: This plug-in is deprecated and no longer recommended for use for sites running on Appian 22.1 or later. The functionality of this component is available in Appian without installing the plug-in. You can use a!executeStoredProcedureForQuery(), a!executeStoredProcedureOnSave(), or the Execute Stored Procedure Smart Service in Appian 22.1 or later.**

Overview

This plug-in provides a Smart Service and Function for executing stored procedures. The Smart Service can be used to execute stored procedures that modify data. Result sets are returned as CDTs. As custom functions cannot have side-effects, it must not be used to execute stored procedures that modify data. It is only safe to use the Smart Service with stored procedures that modify data. Following SQL Statements should not be used by the stored procedures executed with the function:

  • INSERT
  • UPDATE
  • DELETE
  • TRUNCATE
  • CREATE TEMPORARY TABLE
  • SELECT... INTO (when the input target is not an input or output variable)

Key Features & Functionality

  • Works with both complex and simple data types
  • Tested with: MySQL, SQL Server, and Oracle
  • See the instructions document provided with the download for an example and how to configure
  • (New) Total row count column added to trace log
Anonymous
Parents
  • How to pass the result set back to Appian from the stored procedure?  I am using an out parameter of type varchar that returns string data.  But I don't know what datatype I should select if I have to return a set of rows?  Any thoughts?

Comment
  • How to pass the result set back to Appian from the stored procedure?  I am using an out parameter of type varchar that returns string data.  But I don't know what datatype I should select if I have to return a set of rows?  Any thoughts?

Children
  • are you using MySQL? I'm not sure if you can output a set of rows as an OUT parameter, but what you can do if you're returning a set of rows is to just have the last statement as the SELECT statement.

    Then in the Inputs tab of the Execute Stored Procedure smart service, you can define an ac parameter named "resultset1" marked as multiple - it has to be a CDT matching the columns of the returned rows - and have a save Into defined to a pv.

    If you're using the function version, then it will just return the data in the "result" attribute, a list of dictionary.

    I suggest you download the plugin jar; it has the documentation and examples on how to use this plugin.