Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle डेटाबेस में PL/SQL संग्रहीत कार्यविधियाँ क्या हैं?

पीएल/एसक्यूएल फंक्शंस के समान एक संग्रहित प्रक्रिया एक स्व-निहित है उपप्रोग्राम जो कुछ विशिष्ट कार्यों को करने के लिए होता है। कार्यों के समान, प्रक्रियाओं को पीएल/एसक्यूएल ब्लॉक नाम दिया गया है, इस प्रकार उनका पुन:उपयोग किया जा सकता है क्योंकि वे डेटाबेस में डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत होते हैं। लेकिन पीएल/एसक्यूएल कार्यों के विपरीत एक संग्रहित प्रक्रिया कोई मूल्य नहीं लौटाती है .

PL/SQL संग्रहीत कार्यविधियों का सिंटैक्स

CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List)
IS [AUTHID 	DEFINER | CURRENT_USER]
	Declare statements
BEGIN
	Executable statements 
END procedure name;
/ 

पीएल/एसक्यूएल संग्रहीत प्रक्रिया का उपरोक्त सिंटैक्स पीएल/एसक्यूएल फ़ंक्शंस के सिंटैक्स के समान ही है जिसे हमने पिछले पीएल/एसक्यूएल ट्यूटोरियल में देखा था। दो चीजों को छोड़कर:

  1. कोई रिटर्न क्लॉज नहीं है।

PL/SQL फ़ंक्शन और संग्रहीत कार्यविधि के बीच एक मुख्य अंतर यह है कि फ़ंक्शंस के विपरीत एक संग्रहीत कार्यविधि कोई मान नहीं लौटाती है।

  1. ऑथिड क्लॉज।

AUTHID क्लॉज का उपयोग PL/SQL प्रक्रियाओं के लिए प्राधिकरण मॉडल सेट करने के लिए किया जाता है। इस खंड में दो झंडे हैं।

  1. परिभाषित और
  2. CURRENT_USER

चूंकि यह खंड वैकल्पिक है इसलिए यदि आप AUTHID खंड का उपयोग नहीं करते हैं तो Oracle इंजन आपके लिए डिफ़ॉल्ट रूप से प्राधिकरण (AUTHID) को DEFINER पर सेट कर देगा। अब, आप सोच रहे होंगे कि ये DEFINER और CURRENT_USER अधिकार क्या हैं?

दाएं परिभाषित करें: ऑरैकल इंजन द्वारा प्रक्रिया के लिए नियत किया गया डिफ़ाइनर राइट डिफ़ॉल्ट अधिकार है। इस अधिकार का अर्थ है कि प्रक्रिया पर निष्पादन विशेषाधिकार वाला कोई भी व्यक्ति इस तरह कार्य करता है जैसे कि वे उस स्कीमा के स्वामी हैं जिसमें विशेषाधिकार बनाया गया है।

CURRENT_USER दाएं: किसी संग्रहीत कार्यविधि के अधिकार स्तर को current_user दाएँ पर सेट करना डिफ़ॉल्ट अधिकार को ओवरराइड करता है जो कि निश्चित है और इसे लागूकर्ता अधिकारों में बदल देता है।

इन्वोकर राइट अथॉरिटी का मतलब है कि आप अपने स्थानीय डेटा पर कार्रवाई करने के लिए प्रक्रिया को कॉल करते हैं और इसके लिए यह आवश्यक है कि आप किसी भी भाग लेने वाले स्कीमा में डेटा ऑब्जेक्ट को दोहराएं।

संग्रहीत प्रक्रिया के बारे में कुछ अतिरिक्त बिंदु

  • आप औपचारिक मापदंडों के साथ या बिना किसी प्रक्रिया को परिभाषित कर सकते हैं।
  • पैरामीटर या तो पास-दर-मान हो सकता है या पास-दर-संदर्भ
  • एक प्रक्रिया पास-दर-मान प्रक्रिया होगी जब आप पैरामीटर मोड निर्दिष्ट नहीं करते क्योंकि यह डिफ़ॉल्ट IN मोड का उपयोग करता है।

पीएल/एसक्यूएल संग्रहित प्रक्रियाओं के परिचय पर यही है। मुझे लगता है कि आपको भी नीचे बताए गए इन ब्लॉगों को पढ़ने में मज़ा आएगा। सभी ब्लॉग जॉब इंटरव्यू और Oracle डेटाबेस सर्टिफिकेशन को ध्यान में रखकर लिखे गए हैं, उन्हें अवश्य देखें।

  • पीएल/एसक्यूएल फ़ंक्शन और पीएल/एसक्यूएल संग्रहीत प्रक्रियाओं के बीच अंतर?
  • पीएल/एसक्यूएल कार्यों और प्रक्रियाओं में पैरामीटर मोड क्या हैं?
  • औपचारिक और वास्तविक पैरामीटर क्या हैं?

हमेशा याद रखें:आप मुझे और मेरे चैनल के साथ-साथ इस ब्लॉग को अपने सोशल मीडिया पर अपने दोस्तों के साथ साझा करके सीखने और मुझे और मेरे चैनल का समर्थन करने में दूसरों की मदद कर सकते हैं।

यही तो है दोस्तों। पढ़ने के लिए धन्यवाद। ध्यान रखें और आपका दिन मंगलमय हो!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप Oracle डेटाबेस में एक अस्थायी तालिका कैसे बनाते हैं?

  2. SQL डेवलपर में एक चर के मान को प्रिंट करना

  3. सबस्ट्र () Oracle में फंक्शन

  4. SQL*Plus . में Oracle क्रिएट टेबल स्टेटमेंट कैसे प्राप्त करें?

  5. SQL कथनों में स्थानीय संग्रह प्रकारों की अनुमति नहीं है