কম্পিউটার টিউটোরিয়াল

MySQL স্ট্রোড প্রসিডিউর থেকে মান রিটার্ন করা

স্ট্রোড প্রসিডিউর থেকে মান রিটার্ন করতে ইউজার-ডিফাইন্ড সেশন-স্পেসিফিক ভেরিয়েবল ব্যবহার করতে হয়। ভেরিয়েবল নামের আগে @ সিম্বল যোগ করুন।

উদাহরণস্বরূপ, valido ভেরিয়েবলের জন্য @ সিম্বল ব্যবহার করা হলো। এর সিনট্যাক্স নিচে দেওয়া হলো:

SELECT @valido;

যখনই সিলেক্ট স্টেটমেন্ট ব্যবহার করবেন, তখন @anyVariableName ব্যবহার করতে হবে। সিনট্যাক্স নিচে দেওয়া হলো:

SELECT @anyVariableName;

স্ট্রোড প্রসিডিউর থেকে মান রিটার্ন করার ডেমো নিচে দেওয়া হলো। স্ট্রোড প্রসিডিউর তৈরির কোয়েরি:

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 ;

CALL কমান্ড দিয়ে স্ট্রোড প্রসিডিউর কল করা যাক। কোয়েরিটি হলো:

mysql> call ReturnValueFrom_StoredProcedure(10,6,@TotalSum); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)

এখন স্ট্রোড প্রসিডিউরের ফলাফল চেক করতে সিলেক্ট স্টেটমেন্ট ব্যবহার করা যাক। কোয়েরিটি হলো:

mysql> select @TotalSum;

আউটপুট নিচে দেওয়া হলো:

+-----------+ | @TotalSum | +-----------+ | 16 | +-----------+ 1 row in set (0.00 sec)

দ্বিতীয় কল দুটি মানের পার্থক্যের জন্য। স্ট্রোড প্রসিডিউর কল করা যাক।

mysql> call ReturnValueFrom_StoredProcedure(4,2,@TotalDiff); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)

ইউজার-ডিফাইন্ড সেশন-স্পেসিফিক ভেরিয়েবল দিয়ে ফলাফল চেক করা যাক। কোয়েরিটি হলো:

mysql> select @TotalDiff;

আউটপুট নিচে দেওয়া হলো:

+------------+ | @TotalDiff | +------------+ | 2 | +------------+ 1 row in set (0.00 sec)

ব্যাখ্যা: MySQL-এ স্ট্রোড প্রসিডিউর থেকে সরাসরি RETURN স্টেটমেন্ট দিয়ে মান রিটার্ন করা যায় না (ফাংশনে যায়)। এর পরিবর্তে OUT প্যারামিটার ব্যবহার করে এবং কল করার পর @variableName দিয়ে মানটি আউটপুট হিসেবে পাওয়া যায়। স্ট্রোড প্রসিডিউরterno SELECT @valido; লাইনটি আসলে অনावশ্যক, কারণ আউটপুট প্যারামিটারের মান কল করার পর সেশন ভেরিয়েবলে অ্যাসাইন হয়ে যায়।

  1. MySQL 저장 프로시저에서 IF-ELSE 조건문 구현하기

  2. MySQL 저장 프로시저에서 수학 연산(곱셈) 수행하기

  3. MySQL স্টোরড প্রসিডিউরে ডেটা ইনসার্ট করা

  4. MySQL-এ স্টোরড প্রসিডিউরের ভেরিয়েবলে কলামের মান সংরক্ষণ করা