स्टोर्ड प्रोसीजर सबरूटीन हैं, 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 उदाहरण उपरोक्त स्टोर्ड प्रोसीजर को 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("Date 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