SAP HANA SQL संग्रहीत प्रक्रिया ट्यूटोरियल
SQL संग्रहित प्रक्रियाएं क्या हैं?
प्रक्रिया एक इकाई/मॉड्यूल है जो एक विशिष्ट कार्य निष्पादित करती है। इस प्रक्रिया को बड़े प्रोग्राम बनाने के लिए संयोजित किया जा सकता है। यह मूल रूप से 'मॉड्यूलर डिज़ाइन' बनाता है। एक प्रक्रिया को किसी अन्य प्रक्रिया द्वारा बुलाया जा सकता है जिसे कॉलिंग प्रोग्राम कहा जाता है।
प्रक्रियाएँ डेटा रूपांतरण के एक विशिष्ट अनुक्रम के साथ पुनः उपयोग योग्य प्रसंस्करण ब्लॉक हैं। प्रक्रिया में बहु-इनपुट/आउटपुट पैरामीटर हो सकते हैं। प्रक्रिया को केवल पढ़ने के लिए या पढ़ने-लिखने के लिए बनाया जा सकता है।
An एसक्यूएल प्रक्रिया निम्न प्रकार बनाई जा सकती है –
- स्कीमा स्तर पर(कैटलॉग नोड)
- पैकेज स्तर पर(सामग्री नोड)
संग्रहित प्रक्रिया सिंटैक्स SAP HANA जैसा कि नीचे दिखाया गया है –
वाक्य - विन्यास
CREATE PROCEDURE <proc_name> [(<parameter_clause>)] [LANGUAGE <lang>] [SQL SECURITY <mode>] [DEFAULT SCHEMA <default_schema_name>] [READS SQL DATA [WITH RESULT VIEW <view_name>]] AS {BEGIN [SEQUENTIAL EXECUTION] <procedure_body> END | HEADER ONLY }
CREATE PROCEDURE कथन उल्लेख प्रोग्रामिंग भाषा का उपयोग करके एक प्रक्रिया बनाता है .
वाक्यविन्यास तत्व
तत्व | वर्णन |
---|---|
प्रक्रिया का नाम | |
पैरामीटर यहाँ परिभाषित किया गया है। IN, OUT, INOUT पैरामीटर यहाँ है। प्रत्येक पैरामीटर को IN/OUT/INOUT कीवर्ड का उपयोग करके चिह्नित किया गया है
• IN - प्रक्रिया में मान को INPUT के रूप में पास करने के लिए उपयोग किया जाता है। यह केवल पढ़ने के लिए पैरामीटर है। • OUT – प्रक्रिया से OUTPUT के रूप में रिटर्न वैल्यू के लिए उपयोग किया जाता है। • INOUT – समान पैरामीटर द्वारा प्रक्रिया में मान पास करने और वापस करने के लिए उपयोग किया जाता है। |
|
भाषा | प्रक्रिया में प्रयुक्त प्रोग्रामिंग भाषा को परिभाषित करता है। डिफ़ॉल्ट: SQLSCRIPT |
एसक्यूएल सुरक्षा | प्रक्रिया के सुरक्षा मोड को निर्दिष्ट करता है। डिफ़ॉल्ट: DEFINER
• DEFINER – निर्दिष्ट करता है कि प्रक्रिया का निष्पादन प्रक्रिया के परिभाषितकर्ता के विशेषाधिकारों के साथ किया जाता है। • INVOKER – निर्दिष्ट करता है कि प्रक्रिया का निष्पादन प्रक्रिया के आह्वानकर्ता के विशेषाधिकारों के साथ किया जाता है। |
यह प्रक्रिया निकाय में अयोग्य ऑब्जेक्ट के लिए स्कीमा को परिभाषित करता है। यदि कुछ भी परिभाषित नहीं है, तो सत्र की वर्तमान स्कीमा प्रक्रिया के लिए उपयोग की जाती है। | |
SQL डेटा पढ़ता है | यह प्रक्रिया को केवल पढ़ने के लिए चिह्नित करता है, इसका मतलब है कि प्रक्रिया डेटाबेस डेटा या इसकी संरचना को संशोधित नहीं करती है और प्रक्रिया में DDL या DML कथन शामिल नहीं हैं। यह प्रक्रिया केवल अन्य केवल पढ़ने के लिए प्रक्रियाओं को कॉल करती है। |
परिणाम दृश्य के साथ | यह केवल-पठन प्रक्रिया के आउटपुट के रूप में उपयोग किए जाने वाले परिणाम दृश्य को परिभाषित करता है। यदि किसी प्रक्रिया के लिए परिणाम दृश्य निर्दिष्ट किया गया है, तो उसे किसी प्रक्रिया द्वारा कॉल किया जा सकता है। एसक्यूएल तालिका या दृश्य के समान प्रक्रिया में कथन। |
अनुक्रमिक निष्पादन | यह कथन प्रक्रिया तर्क के अनुक्रमिक निष्पादन को बाध्य करेगा। कोई समानांतरता नहीं होती है। |
यह चयनित प्रोग्रामिंग भाषा के आधार पर प्रक्रिया के मुख्य भाग को परिभाषित करता है। | |
केवल हेडर | यदि केवल शीर्षलेख का उपयोग किया जाता है, तो केवल OID के साथ प्रक्रिया गुण बनाए जाते हैं। |