CALL sp_name([parameter[,...]]) CALL sp_name[()]
Stored procedure names can be specified as
database_name.procedure_name. Procedure names and database names can be quoted with backticks (). This is necessary if they are reserved words, or contain special characters. See identifier qualifiers for details.
Before MySQL 5.1.13, stored procedures that take no arguments required parentheses. In current releases of MariaDB,
CALL p() and
CALL p are equivalent.
If parentheses are used, any number of spaces, tab characters and new line characters is allowed between the procedure's name and the open parenthesis.
CALL can pass back values to its caller using parameters that are declared as
INOUT parameters. If no value is assigned to an
NULL is assigned (and its former value is lost). To pass such values from another stored program you can use user-defined variables, local variables or routine's parameters; in other contexts, you can only use user-defined variables.
CALL can also be executed as a prepared statement. Placeholders can be used for
IN parameters in all versions of MariaDB; for
INOUT parameters, placeholders can be used since MariaDB 5.5.
When the procedure returns, a client program can also obtain the number of rows affected for the final statement executed within the routine: At the SQL level, call the
ROW_COUNT() function; from the C API, call the
CLIENT_MULTI_RESULTS API flag is set,
CALL can return any number of resultsets and the called stored procedure can execute prepared statements. If it is not set, at most one resultset can be returned and prepared statements cannot be used within procedures.
© 2019 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.