Save status to an OUT parameter : Parameters « Procedure Function « SQL / MySQL

Home
SQL / MySQL
1.Aggregate Functions
2.Backup Load
3.Command MySQL
4.Cursor
5.Data Type
6.Database
7.Date Time
8.Engine
9.Event
10.Flow Control
11.FullText Search
12.Function
13.Geometric
14.I18N
15.Insert Delete Update
16.Join
17.Key
18.Math
19.Procedure Function
20.Regular Expression
21.Select Clause
22.String
23.Table Index
24.Transaction
25.Trigger
26.User Permission
27.View
28.Where Clause
29.XML
SQL / MySQL » Procedure Function » Parameters 
Save status to an OUT parameter
    

mysql>
mysql> CREATE TABLE Employee(
    ->     id            int,
    ->     first_name    VARCHAR(15),
    ->     last_name     VARCHAR(15),
    ->     start_date    DATE,
    ->     end_date      DATE,
    ->     salary        FLOAT(8,2),
    ->     city          VARCHAR(10),
    ->     description   VARCHAR(15)
    -> );
Query OK, rows affected (0.05 sec)

mysql>
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->              values (1,'Jason',    'Martin',  '19960725',  '20060725', 1234.56'Toronto',  'Programmer');
Query OK, row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(2,'Alison',   'Mathews',  '19760321', '19860221', 6661.78'Vancouver','Tester');
Query OK, row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(3,'James',    'Smith',    '19781212', '19900315', 6544.78'Vancouver','Tester');
Query OK, row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(4,'Celia',    'Rice',     '19821024', '19990421', 2344.78'Vancouver','Manager');
Query OK, row affected (0.02 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(5,'Robert',   'Black',    '19840115', '19980808', 2334.78'Vancouver','Tester');
Query OK, row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(6,'Linda',    'Green',    '19870730', '19960104', 4322.78,'New York',  'Tester');
Query OK, row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(7,'David',    'Larry',    '19901231', '19980212', 7897.78,'New York',  'Manager');
Query OK, row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(8,'James',    'Cat',     '19960917',  '20020415', 1232.78,'Vancouver', 'Tester');
Query OK, row affected (0.00 sec)

mysql>
mysql> select from Employee;
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
|    | Jason      | Martin    | 1996-07-25 2006-07-25 1234.56 | Toronto   | Programmer  |
|    | Alison     | Mathews   | 1976-03-21 1986-02-21 6661.78 | Vancouver | Tester      |
|    | James      | Smith     | 1978-12-12 1990-03-15 6544.78 | Vancouver | Tester      |
|    | Celia      | Rice      | 1982-10-24 1999-04-21 2344.78 | Vancouver | Manager     |
|    | Robert     | Black     | 1984-01-15 1998-08-08 2334.78 | Vancouver | Tester      |
|    | Linda      | Green     | 1987-07-30 1996-01-04 4322.78 | New York  | Tester      |
|    | David      | Larry     | 1990-12-31 1998-02-12 7897.78 | New York  | Manager     |
|    | James      | Cat       | 1996-09-17 2002-04-15 1232.78 | Vancouver | Tester      |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
rows in set (0.02 sec)

mysql>
mysql>
mysql> delimiter $$
mysql>
mysql> CREATE PROCEDURE myProc
    ->          (in_first_name   VARCHAR(30),
    ->           in_last_name    VARCHAR(30),
    ->           in_city         VARCHAR(30),
    ->           in_description  VARCHAR(10),
    ->           OUT out_status  VARCHAR(30))
    ->     MODIFIES SQL DATA
    -> BEGIN
    ->    DECLARE CONTINUE HANDLER FOR 1062
    ->       SET out_status='Duplicate Entry';
    ->
    ->    SET out_status='OK';
    ->    INSERT INTO employee
    ->      (first_name,last_name,city,description)
    ->     VALUES
    ->      (in_first_name,in_last_name,in_city,in_description);
    -> END$$
Query OK, rows affected (0.02 sec)

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

mysql>
mysql> call myProc('Jason','Martin','New City','New Description',@myMessage);
Query OK, row affected, warning (0.00 sec)

mysql>
mysql> select @myCode, @myMessage;
+---------+------------+
| @myCode | @myMessage |
+---------+------------+
0       | OK         |
+---------+------------+
row in set (0.00 sec)

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

mysql>
mysql>
mysql> select from Employee;
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
|    | Jason      | Martin    | 1996-07-25 2006-07-25 1234.56 | Toronto   | Programmer  |
|    | Alison     | Mathews   | 1976-03-21 1986-02-21 6661.78 | Vancouver | Tester      |
|    | James      | Smith     | 1978-12-12 1990-03-15 6544.78 | Vancouver | Tester      |
|    | Celia      | Rice      | 1982-10-24 1999-04-21 2344.78 | Vancouver | Manager     |
|    | Robert     | Black     | 1984-01-15 1998-08-08 2334.78 | Vancouver | Tester      |
|    | Linda      | Green     | 1987-07-30 1996-01-04 4322.78 | New York  | Tester      |
|    | David      | Larry     | 1990-12-31 1998-02-12 7897.78 | New York  | Manager     |
|    | James      | Cat       | 1996-09-17 2002-04-15 1232.78 | Vancouver | Tester      |
| NULL | Jason      | Martin    | NULL       | NULL       |    NULL | New City  | New Descri  |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
rows in set (0.00 sec)

mysql>
mysql>
mysql>
mysql> drop table Employee;
Query OK, rows affected (0.01 sec)

          
    
    
  
Related examples in the same category
1.DateTime parameter
2.Verify the input parameter
3.Check input parameter
4.Declare and use the OUT parameter
5.Pass status code and message out of a procedure
6.Using OUT parameter to return the status code and message from a procedure
7.Pass variable to a procedure as the OUT parameter
8.Out parameter
9.Three inout parameters
10.Syntax for Function Parameters
11.Create a procedure with out parameter
12.Syntax for Parameters of Procedures
13.Four out parameters
14.Assign value to an out parameter
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.