เพื่อคืนค่าจาก Stored Procedure ต้องใช้ตัวแปร Session-specific ที่ผู้ใช้กำหนด (User-defined Variable) โดยใส่สัญลักษณ์ @ นำหน้าชื่อตัวแปร
ตัวอย่างการใช้งาน
สร้าง Stored Procedure ที่รับค่า 2 ตัว ส่งค่ากลับผ่านตัวแปร OUT:
mysql> CREATE PROCEDURE ReturnValueFrom_StoredProcedure ( IN num1 INT, IN num2 INT, OUT valido INT ) BEGIN IF (num1 > 4 AND num2 > 5) THEN SET valido = (num1 + num2); ELSE SET valido = (num1 - num2); END IF; SELECT @valido; END // Query OK, 0 rows affected (0.32 sec) mysql> DELIMITER ;
เรียก Stored Procedure ครั้งแรก (10, 6 ตรงเงื่อนไขบวก):
mysql> CALL ReturnValueFrom_StoredProcedure(10, 6, @TotalSum);
ตรวจสอบผลลัพธ์จากตัวแปร Session:
mysql> SELECT @TotalSum;
ผลลัพธ์:
+-----------+ | @TotalSum | +-----------+ | 16 | +-----------+ 1 row in set (0.00 sec)
เรียก Stored Procedure ครั้งที่สอง (4, 2 ไม่ตรงเงื่อนไข ลบกัน):
mysql> CALL ReturnValueFrom_StoredProcedure(4, 2, @TotalDiff);
ตรวจสอบผลลัพธ์:
mysql> SELECT @TotalDiff;
ผลลัพธ์:
+------------+ | @TotalDiff | +------------+ | 2 | +------------+ 1 row in set (0.00 sec)
สรุป: ใช้ตัวแปร OUT ใน Stored Procedure แล้วรับค่าผ่านตัวแปร @variable_name หลังจาก CALL