স্টোরড প্রোসিজার হল সাব-রুটিন, SQL স্টেটমেন্টের সেগমেন্ট যা SQL ক্যাটালগে সংরক্ষিত থাকে। রিলেশনাল ডেটাবেস অ্যাক্সেস করতে পারা সকল অ্যাপ্লিকেশন (Java, Python, PHP ইত্যাদি) এই প্রোসিজার অ্যাক্সেস করতে পারে।
স্টোরড প্রোসিজার IN ও OUT প্যারামিটার বা দুটোই থাকতে পারে। SELECT স্টেটমেন্ট ব্যবহার করলে রেজাল্ট সেট রিটার্ন করতে পারে, একাধিক রেজাল্ট সেটও রিটার্ন করতে পারে।
উদাহরণ
ধরি MySQL ডেটাবেসে Dispatches নামক একটি টেবিল আছে নিচের ডেটার সাথে:
+--------------+------------------+------------------+------------------+ | Product_Name | Date_Of_Dispatch | Time_Of_Dispatch | Location | +--------------+------------------+------------------+------------------+ | KeyBoard | 1970-01-19 | 08:51:36 | Hyderabad | | Earphones | 1970-01-19 | 05:54:28 | Vishakhapatnam | | Mouse | 1970-01-19 | 04:26:38 | Vijayawada | +--------------+------------------+------------------+------------------+
এবং myProcedure নামক একটি প্রোসিজার তৈরি করা হয়েছে এই টেবিল থেকে মান বের করার জন্য:
Create procedure myProcedure () -> BEGIN -> SELECT * from Dispatches; -> END //
উদাহরণ
নিচের JDBC উদাহরণ উপরের স্টোরড প্রোসিজার কল করে।
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CallingProcedure {
public static void main(String args[]) throws SQLException {
// ড্রাইভার রেজিস্টার
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// কানেকশন
String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
// CallableStatement প্রস্তুত
CallableStatement cstmt = con.prepareCall("{call myProcedure()}");
// ফলাফল বের করা
ResultSet rs = cstmt.executeQuery();
while (rs.next()) {
System.out.println("Product Name: " + rs.getString("Product_Name"));
System.out.println("Date Of Dispatch: " + rs.getDate("Date_Of_Dispatch"));
System.out.println("Time Of Dispatch: " + rs.getTime("Time_Of_Dispatch"));
System.out.println("Location: " + rs.getString("Location"));
System.out.println();
}
}
}
আউটপুট
Connection established...... Product Name: KeyBoard Date of Dispatch: 1970-01-19 Time of Dispatch: 08:51:36 Location: Hyderabad Product Name: Earphones Date of Dispatch: 1970-01-19 Time of Dispatch: 05:54:28 Location: Vishakhapatnam Product Name: Mouse Date of Dispatch: 1970-01-19 Time of Dispatch: 04:26:38 Location: Vijayawada