CALL

Executes the specified stored procedure. Does not return results.

Syntax

CALL { procedure_name([arg[, ...]])
| database_name.procedure_name([arg [, ...]]) };

Arguments

procedure_name

The name of the stored procedure to execute.

argument_list

A list of optional arguments to pass as input parameters to the stored procedure.

Remarks

  • Refer to the Permission Matrix for the required permission.

  • Stored procedures that return a scalar value can also be called on the right hand side of an assignment operation (within another stored procedure or an anonymous code block). See CREATE PROCEDURE for more information.

Example

The following example executes a stored procedure named snapshot_db that accepts a VARCHAR as an input parameter.

CALL snapshot_db('db1');
Query OK, 0 rows affected (0.35 sec)

The example below shows an example of calling a stored procedure and assigning the return value to a variable. In this example, the getNumRows stored procedure is created and is then called from within the INSERT statement.

DELIMITER //
CREATE PROCEDURE getNumRows(tableName text) RETURNS bigint AS
DECLARE rowCount bigint;
BEGIN
EXECUTE IMMEDIATE CONCAT('select count(*) from ', tableName)
INTO rowCount;
RETURN rowCount;
END
//
DELIMITER ;
CREATE TABLE spt(a int);
INSERT spt VALUES(1),(2);
DELIMITER //
DO
DECLARE n bigint;
BEGIN
/* calls getNumRows stored procedure and assigns result to n */
n = getNumRows("spt");
ECHO SELECT n;
END
//
DELIMITER ;

Related Topics

Last modified: April 30, 2024

Was this article helpful?