ในการคืนค่าจากกระบวนงานที่เก็บไว้ คุณต้องใช้ตัวแปรเฉพาะของเซสชันที่ผู้ใช้กำหนด ใส่สัญลักษณ์ @ ก่อนชื่อตัวแปร
ตัวอย่างเช่น ใช้ @symbol สำหรับตัวแปร valido ไวยากรณ์สำหรับสิ่งเดียวกันมีดังนี้:
SELECT @valido;
เมื่อใดก็ตามที่คุณใช้คำสั่ง select คุณต้องใช้ @anyVariableName ไวยากรณ์มีดังนี้:
SELECT @anyVariableName;
นี่คือตัวอย่างขั้นตอนการจัดเก็บค่าส่งคืน แบบสอบถามเพื่อสร้างกระบวนงานที่เก็บไว้มีดังนี้:
mysql> สร้างโพรซีเดอร์ 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); -> สิ้นสุดถ้า; -> เลือก @valido; -> สิ้นสุด // แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.32 วินาที) mysql> DELIMITER;
เรียกกระบวนงานที่เก็บไว้โดยใช้คำสั่ง CALL แบบสอบถามมีดังนี้:
mysql> โทร ReturnValueFrom_StoredProcedure(10,6,@TotalSum);+---------+| @valido |+---------+| NULL |+---------+1 แถวในชุด (0.00 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.01 วินาที)
ตอนนี้ตรวจสอบผลลัพธ์ของกระบวนงานที่เก็บไว้โดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก @TotalSum;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+-----------+| @TotalSum |+-----------+| 16 |+-----------+1 แถวในชุด (0.00 วินาที)ตอนนี้เรียกที่สองสำหรับความแตกต่างของสองค่า เรียกกระบวนงานที่เก็บไว้
mysql> โทร ReturnValueFrom_StoredProcedure(4,2,@TotalDiff);+---------+| @valido |+---------+| NULL |+---------+1 แถวในชุด (0.00 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.01 วินาที)
ตรวจสอบผลลัพธ์จากตัวแปรเฉพาะเซสชันที่ผู้ใช้กำหนดโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก @TotalDiff;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+-----------+| @TotalDiff |+-----------+| 2 |+------------+1 แถวในชุด (0.00 วินาที)