स्टोर्ड प्रोसीजर के फायदे निम्नलिखित हैं:
चूंकि स्टोर्ड प्रोसीजर संकलित और संग्रहीत होते हैं, जब भी आप किसी प्रोसीजर को कॉल करते हैं तो प्रतिक्रिया त्वरित होती है।
आप सभी आवश्यक SQL स्टेटमेंट को एक प्रोसीजर में समूहित कर सकते हैं और उन्हें एक साथ निष्पादित कर सकते हैं।
चूंकि प्रोसीजर डेटाबेस सर्वर पर संग्रहीत होते हैं जो क्लाइंट से तेज़ होता है। आप इसका उपयोग करके सभी जटिल क्वेरी निष्पादित कर सकते हैं, जो तेज़ होगी।
प्रोसीजर का उपयोग करके, आप कोड की पुनरावृत्ति से बच सकते हैं, इसके अलावा इनके साथ आप अतिरिक्त SQL कार्यक्षमता जैसे स्टोर्ड फंक्शन कॉल कर सकते हैं।
एक बार जब आप स्टोर्ड प्रोसीजर संकलित कर लेते हैं तो आप इसे किसी भी संख्या में एप्लिकेशन में उपयोग कर सकते हैं। यदि कोई परिवर्तन आवश्यक है तो आप एप्लिकेशन कोड को छुए बिना केवल प्रोसीजर बदल सकते हैं।
आप PL/SQL स्टोर्ड प्रोसीजर को Java से और Java स्टोर्ड प्रोसीजर को PL/SQL से कॉल कर सकते हैं।
उदाहरण
मान लें कि हमने Employees नाम की एक टेबल बनाई है जिसका विवरण निम्नलिखित है:
+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Salary | int(11) | NO | | NULL | | | Location | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
मान लें कि हमारे पास myProcedure नाम का एक प्रोसीजर है जो Employees टेबल में डेटा डालता है:
Create procedure myProcedure (IN name VARCHAR(30), IN sal INT, IN loc VARCHAR(45)) -> BEGIN -> INSERT INTO Employees(Name, Salary, Location) VALUES (name, sal, loc); -> END //
निम्नलिखित JDBC प्रोग्राम उपरोक्त Java स्टोर्ड प्रोसीजर को कॉल करता है।
import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Example { public static void main(String args[]) throws SQLException { // ड्राइवर रजिस्टर करना DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // कनेक्शन प्राप्त करना String mysqlUrl = "jdbc:mysql://localhost/testdb"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); // CallableStatement तैयार करना CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}"); cstmt.setString(1, "Amit"); cstmt.setInt(2, 3000); cstmt.setString(3, "Hyderabad"); cstmt.execute(); cstmt.setString(1, "Kalyan"); cstmt.setInt(2, 4000); cstmt.setString(3, "Vishakhapatnam"); cstmt.execute(); } }आउटपुट
Connection established......
यदि आप Employees टेबल की सामग्री सत्यापित करते हैं, तो आप नई जोड़ी गई पंक्तियों को नीचे दिखाए अनुसार पा सकते हैं:
+-----------+--------+----------------+ | Name | Salary | Location | +-----------+--------+----------------+ | Amit | 3000 | Hyderabad | | Kalyan | 4000 | Vishakhapatnam | +-----------+--------+----------------+