MySQL-এ ভেরিয়েবল ব্যবহার করে স্টোরড প্রোসিজার আউটপুট হ্যান্ডলিং
MySQL স্টোরড প্রোসিজার সরাসরি রেজাল্ট সেট রিটার্ন করে না। আউটপুট নেওয়ার জন্য ইউজার-ডিফাইন্ড ভেরিয়েবল (@variable) ব্যবহার করা হয়।
উদাহরণ সহ ব্যাখ্যা
টেবিল তৈরি ও ডেটা:
mysql> CREATE TABLE person_information (Id INT, Name VARCHAR(20)); mysql> INSERT INTO person_information VALUES(100, 'John'), (101, 'Chris'), (102, 'Robert');
স্টোরড প্রোসিজার তৈরি (আউটপুট ভেরিয়েবলে স্টোর):
mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_supressOutputDemo()
-> BEGIN
-> SET @output = (SELECT Name FROM person_information WHERE id = 101);
-> END //
mysql> DELIMITER ;
প্রোসিজার কল করি (কোনো আউটপুট দেখাবে না):
mysql> CALL sp_supressOutputDemo();
Query OK, 0 rows affected (0.00 sec)
ভেরিয়েবল থেকে আউটপুট দেখি:
mysql> SELECT @output;
+---------+ | @output | +---------+ | Chris | +---------+
দ্রষ্টব্য: DELIMITER // ও DELIMITER ; প্রোসিজার ডেফিনিশনের জন্য দরকার। আউটপুট পেতে অবশ্যই SELECT @variable করতে হবে।