Using OUT parameter to return the status code and message from a procedure : Parameters « Procedure Function « MySQL Tutorial






mysql>
mysql> delimiter $$
mysql>
mysql> CREATE PROCEDURE myProc
    ->     (in_dob DATE,
    ->      OUT status_code INT,
    ->      OUT status_message VARCHAR(30))
    -> BEGIN
    ->
    ->   IF DATE_SUB(now(), INTERVAL 18 YEAR) <in_dob THEN
    ->     SET status_code=-1;
    ->     SET status_message="Error: employee is less than 18 years old";
    ->   ELSE
    ->     SET status_code=0;
    ->     SET status_message="OK";
    ->   END IF;
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql>
mysql> set @myCode = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> set @myMessage='';
Query OK, 0 rows affected (0.02 sec)

mysql>
mysql> call myProc('1999-01-01',@myCode,@myMessage);
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> drop procedure myProc;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select @myCode;
+---------+
| @myCode |
+---------+
| -1      |
+---------+
1 row in set (0.02 sec)

mysql>
mysql> select @myMessage;
+--------------------------------+
| @myMessage                     |
+--------------------------------+
| Error: employee is less than 1 |
+--------------------------------+
1 row in set (0.00 sec)








11.7.Parameters
11.7.1.DateTime parameter
11.7.2.Verify the input parameter
11.7.3.Check input parameter
11.7.4.Declare and use the OUT parameter
11.7.5.Save status to an OUT parameter
11.7.6.Pass status code and message out of a procedure
11.7.7.Using OUT parameter to return the status code and message from a procedure
11.7.8.Pass variable to a procedure as the OUT parameter