MySQL স্টোরড প্রোসিজারে DECLARE সঠিক സ്ഥানে লেখা
MySQL প্রোসিজারে ভেরিয়েবল ডিক্লেয়ারেশন অবশ্যই BEGIN এবং END-এর মাঝপথে, এবং প্রথম স্টেটমেন্ট হিসেবে হতে হবে। এরপরই SET, SELECT, INSERT ইত্যাদি লিখতে হয়।
সঠিক স্ট্রাকচার
DELIMITER //
CREATE PROCEDURE procName()
BEGIN
DECLARE varName dataType; -- প্রথমে ডিক্লেয়ার
SET varName = value; -- তারপর অ্যাসাইন
SELECT varName; -- তারপর ব্যবহার
END //
DELIMITER ;
উদাহরণ
mysql> DELIMITER //
mysql> CREATE PROCEDURE showVariablesValue()
-> BEGIN
-> DECLARE output VARCHAR(100);
-> SET output = "Hello MySQL";
-> SELECT output;
-> END //
mysql> DELIMITER ;
প্রোসিজার কল:
mysql> CALL showVariablesValue();
+-------------+ | output | +-------------+ | Hello MySQL | +-------------+
ভুল উদাহরণ (এরর দেবে):
BEGIN
SET @x = 10; -- DECLARE ছাড়া SET (সেশন ভেরিয়েবল হলেও যাবে)
DECLARE y INT; -- EROR: DECLARE SET-এর পরে নয়
SELECT y;
END
নোট: লোকাল ভেরিয়েবল (DECLARE) প্রোসিজার স্কোপে থাকে। সেশন ভেরিয়েবল (@var) কানেকশন স্কোপে থাকে।