รูปแบบสร้าง Procedure ที่รับ IN และส่งค่าออก OUT:
DELIMITER //
CREATE PROCEDURE procName(IN inParam TYPE, OUT outParam TYPE)
BEGIN
-- statements
END //
DELIMITER ;
ตัวอย่าง: ตรวจสอบค่าในตาราง
สร้างตาราง SumOfAll (Amount) เพิ่มข้อมูล 100, 330, 450, 400
mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_CheckValue(IN value1 INT, OUT value2 INT)
-> BEGIN
-> SET value2 = (SELECT Amount FROM SumOfAll WHERE Amount = value1);
-> END;
-> //
mysql> DELIMITER ;
ทดสอบเรียกใช้
กรณีไม่พบค่า (300):
mysql> CALL sp_CheckValue(300, @isPresent);
mysql> SELECT @isPresent; -- NULL
กรณีพบค่า (330):
mysql> CALL sp_CheckValue(330, @isPresent);
mysql> SELECT @isPresent; -- 330
คำอธิบาย: Subquery ใน SET คืนค่า NULL หาไม่เจอ ทำให้ OUT Parameter ได้ NULL ตามต้องการ