Oracle PL/SQL संग्रहित प्रक्रिया और फ़ंक्शन उदाहरणों के साथ

⚡ स्मार्ट सारांश

PL/SQL सबप्रोग्राम डेटाबेस में संग्रहीत नाम वाले ब्लॉक, प्रोसीजर और फ़ंक्शन होते हैं, जिन्हें नाम से कॉल किया जाता है। एक प्रोसीजर एक प्रक्रिया चलाता है और एक फ़ंक्शन एक मान लौटाता है, दोनों IN, OUT और IN-OUT पैरामीटर और RETURN कीवर्ड के माध्यम से डेटा का आदान-प्रदान करते हैं।

  • 🧩 दो उपकार्यक्रम: प्रोसीजर एक प्रक्रिया को निष्पादित करते हैं; फंक्शन गणना करते हैं और एक मान लौटाते हैं।
  • 🔌 पैरामीटर: IN इनपुट पास करता है, OUT आउटपुट लौटाता है, और IN OUT दोनों कार्य करता है।
  • वापसी: यह कॉलर को नियंत्रण लौटाता है; किसी फ़ंक्शन में यह घोषित प्रकार का मान भी लौटाता है।
  • संग्रहित वस्तुएँ: दोनों को डेटाबेस ऑब्जेक्ट के रूप में सहेजा जाता है और अन्य ब्लॉक से इन्हें कॉल किया जा सकता है।
  • 🔎 SELECT उपयोग: बिना डीएमएल वाली फंक्शन को SELECT स्टेटमेंट के अंदर कॉल किया जा सकता है; लेकिन प्रोसीजर को नहीं।
  • मुख्य अंतर: एक फ़ंक्शन को एक मान लौटाना आवश्यक है, जबकि एक प्रक्रिया के लिए यह आवश्यक नहीं है।
  • अंतर्निहित कार्य: Oracle जहाज रूपांतरण, स्ट्रिंग और दिनांक फ़ंक्शन उपयोग के लिए तैयार हैं।

Oracle PL/SQL स्टोर्ड प्रोसीजर और फ़ंक्शन

PL/SQL सबप्रोग्राम क्या होते हैं?

इस ट्यूटोरियल में, आपको नामित ब्लॉक, प्रक्रियाओं और फ़ंक्शन को बनाने और निष्पादित करने का विस्तृत विवरण मिलेगा।

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

हम इन दोनों उप-कार्यक्रमों के बीच प्रमुख अंतरों को भी शामिल करते हैं और उन पर चर्चा करते हैं। Oracle अंतर्निहित कार्य।

PL/SQL सबप्रोग्राम में शब्दावली

PL/SQL सबप्रोग्राम के बारे में जानने से पहले, हम इन सबप्रोग्राम में उपयोग होने वाली विभिन्न शब्दावलियों पर चर्चा करेंगे।

प्राचल

पैरामीटर किसी भी मान्य मान का चर या प्लेसहोल्डर होता है। PL/SQL डेटा प्रकार जिसके माध्यम से PL/SQL सबप्रोग्राम मुख्य कोड के साथ मानों का आदान-प्रदान करता है। यह पैरामीटर सबप्रोग्रामों को इनपुट और आउटपुट की अनुमति देता है।tracउनसे मूल्यों का अधिग्रहण।

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

उनके उद्देश्य के आधार पर, मापदंडों को इस प्रकार वर्गीकृत किया गया है:

  1. IN पैरामीटर
  2. आउट पैरामीटर
  3. इन आउट पैरामीटर

IN पैरामीटर

  • इसका उपयोग सबप्रोग्रामों को इनपुट देने के लिए किया जाता है।
  • यह सबप्रोग्राम के अंदर एक रीड-ओनली वेरिएबल है; सबप्रोग्राम के अंदर इसके मान को बदला नहीं जा सकता है।
  • कॉलिंग स्टेटमेंट में, यह एक वेरिएबल, एक लिटरल वैल्यू या एक एक्सप्रेशन हो सकता है, जैसे '5*8' या 'a/b'।
  • डिफ़ॉल्ट रूप से, पैरामीटर IN प्रकार के होते हैं।

आउट पैरामीटर

  • इसका उपयोग सबप्रोग्राम से आउटपुट प्राप्त करने के लिए किया जाता है।
  • यह सबप्रोग्राम के अंदर एक रीड-राइट वेरिएबल है; इसके मान को इन सबप्रोग्राम के अंदर बदला जा सकता है।
  • कॉलिंग स्टेटमेंट में, सबप्रोग्राम से मान को रखने के लिए हमेशा एक वेरिएबल होना चाहिए।

इन आउट पैरामीटर

  • इसका उपयोग सबप्रोग्रामों को इनपुट देने और उनसे आउटपुट प्राप्त करने दोनों के लिए किया जाता है।
  • यह सबप्रोग्राम के अंदर एक रीड-राइट वेरिएबल है; इसके मान को इन सबप्रोग्राम के अंदर बदला जा सकता है।
  • कॉलिंग स्टेटमेंट में, सबप्रोग्राम से मान को रखने के लिए हमेशा एक वेरिएबल होना चाहिए।

सबप्रोग्राम बनाते समय पैरामीटर के प्रकार का उल्लेख किया जाना चाहिए।

वापसी

RETURN एक कीवर्ड है जो कंपाइलर को निर्देश देता है कि सबप्रोग्राम से कॉलिंग स्टेटमेंट पर नियंत्रण स्थानांतरित किया जाए। सबप्रोग्राम में, RETURN का सीधा सा मतलब है कि नियंत्रण को सबप्रोग्राम से बाहर निकलना है; कंट्रोलर को RETURN मिलते ही, इसके बाद का कोड छोड़ दिया जाता है।

सामान्यतः, पैरेंट या मुख्य ब्लॉक सबप्रोग्राम को कॉल करता है, और नियंत्रण पैरेंट ब्लॉक से कॉल किए गए सबप्रोग्राम में स्थानांतरित हो जाता है। सबप्रोग्राम में RETURN स्टेटमेंट नियंत्रण को वापस पैरेंट ब्लॉक में लौटा देता है। फ़ंक्शन के मामले में, RETURN स्टेटमेंट एक मान भी लौटाता है, जिसका डेटा प्रकार फ़ंक्शन की घोषणा के समय बताया जाता है।

PL/SQL में प्रोसीजर क्या होता है?

A प्रक्रिया PL/SQL में, प्रक्रिया एक सबप्रोग्राम इकाई है जिसमें PL/SQL कथनों का एक समूह होता है जिसे नाम से कॉल किया जा सकता है। प्रत्येक प्रक्रिया का अपना एक विशिष्ट नाम होता है और इसे संग्रहीत किया जाता है। Oracle डेटाबेस को डेटाबेस ऑब्जेक्ट के रूप में।

नोट: सबप्रोग्राम एक प्रकार की प्रक्रिया ही होती है, और इसे आवश्यकतानुसार मैन्युअल रूप से बनाना पड़ता है। एक बार बन जाने के बाद, इसे डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत किया जाता है।

PL/SQL में प्रोसीजर सबप्रोग्राम यूनिट की विशेषताएं इस प्रकार हैं:

  • प्रक्रियाएँ स्वतंत्र ब्लॉक होते हैं जिन्हें संग्रहीत किया जा सकता है। डेटाबेस.
  • पीएल/एसक्यूएल स्टेटमेंट को निष्पादित करने के लिए उन्हें उनके नाम से बुलाया जा सकता है।
  • इनका उपयोग मुख्य रूप से किसी प्रक्रिया को क्रियान्वित करने के लिए किया जाता है।
  • इनमें नेस्टेड ब्लॉक हो सकते हैं, या ये अन्य ब्लॉक या पैकेज के अंदर नेस्टेड हो सकते हैं।
  • इनमें एक घोषणा भाग (वैकल्पिक), एक निष्पादन भाग और एक अपवाद-हैंडलिंग भाग (वैकल्पिक) शामिल हैं।
  • पैरामीटर के माध्यम से किसी प्रक्रिया में मानों को पास किया जा सकता है या उससे मान प्राप्त किए जा सकते हैं।
  • इन पैरामीटर्स को कॉलिंग स्टेटमेंट में शामिल किया जाना चाहिए।
  • किसी प्रोसीजर में कॉलिंग ब्लॉक को नियंत्रण वापस करने के लिए RETURN स्टेटमेंट हो सकता है, लेकिन यह RETURN के माध्यम से कोई मान वापस नहीं कर सकता है।
  • SELECT स्टेटमेंट से प्रोसीजर को सीधे कॉल नहीं किया जा सकता; इन्हें किसी अन्य ब्लॉक से या EXEC कीवर्ड के माध्यम से कॉल किया जा सकता है।

वाक्य - विन्यास

CREATE OR REPLACE PROCEDURE
<procedure_name>
(
<parameter1 IN/OUT <datatype>
..
.
)
[ IS | AS ]
<declaration_part>
BEGIN
<execution part>
EXCEPTION
<exception handling part>
END;
  • CREATE PROCEDURE कमांड कंपाइलर को एक नई प्रक्रिया बनाने का निर्देश देता है। 'OR REPLACE' कीवर्ड मौजूदा प्रक्रिया (यदि कोई हो) को वर्तमान प्रक्रिया से बदलने का निर्देश देता है।
  • प्रक्रिया का नाम अद्वितीय होना चाहिए।
  • 'IS' कीवर्ड का प्रयोग तब किया जाता है जब स्टोर्ड प्रोसीजर किसी अन्य ब्लॉक के अंदर नेस्टेड हो। यदि प्रोसीजर स्टैंडअलोन है, तो 'AS' का प्रयोग किया जाता है। इस कोडिंग मानक के अलावा, दोनों का अर्थ एक ही है।

उदाहरण 1: एक प्रोसीजर बनाना और उसे EXEC का उपयोग करके कॉल करना। इस उदाहरण में, हम एक बनाते हैं Oracle एक ऐसी प्रक्रिया जो नाम को इनपुट के रूप में लेती है और EXEC कमांड का उपयोग करके एक स्वागत संदेश को आउटपुट के रूप में प्रिंट करती है।

CREATE OR REPLACE PROCEDURE welcome_msg (p_name IN VARCHAR2)
IS
BEGIN
dbms_output.put_line ('Welcome '|| p_name);
END;
/
EXEC welcome_msg ('Guru99');

Code स्पष्टीकरण:

  • Code पंक्ति 1: 'welcome_msg' नाम और 'IN' प्रकार के एक पैरामीटर 'p_name' के साथ एक प्रक्रिया बनाई जा रही है।
  • Code पंक्ति 4: इनपुट नाम को जोड़कर स्वागत संदेश प्रिंट करना।
  • प्रक्रिया सफलतापूर्वक संकलित हो गई है।
  • Code पंक्ति 7: EXEC का उपयोग करके प्रक्रिया को पैरामीटर ' के साथ कॉल करनाGuru99'. प्रक्रिया निष्पादित होती है और "स्वागत है" प्रिंट करती है। Guru99 "।

एक समारोह क्या है?

फंक्शन एक स्वतंत्र PL/SQL सबप्रोग्राम है। प्रोसीजर की तरह, फंक्शन का भी एक अद्वितीय नाम होता है और इसे PL/SQL डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत किया जाता है। इसकी विशेषताएं इस प्रकार हैं:

  • फंक्शन स्वतंत्र ब्लॉक होते हैं जिनका उपयोग मुख्य रूप से गणना के लिए किया जाता है।
  • एक फ़ंक्शन RETURN कीवर्ड का उपयोग करके एक मान लौटाता है, जिसका डेटा प्रकार फ़ंक्शन के निर्माण के समय परिभाषित किया जाता है।
  • एक फ़ंक्शन को या तो कोई मान लौटाना चाहिए या कोई अपवाद उत्पन्न करना चाहिए; फ़ंक्शन में मान लौटाना अनिवार्य है।
  • बिना डीएमएल स्टेटमेंट वाले फंक्शन को सीधे सेलेक्ट क्वेरी में कॉल किया जा सकता है, जबकि डीएमएल वाले फंक्शन को केवल अन्य पीएल/एसक्यूएल ब्लॉक से ही कॉल किया जा सकता है।
  • इसमें नेस्टेड ब्लॉक हो सकते हैं, या यह अन्य ब्लॉक या पैकेज के अंदर नेस्टेड हो सकता है।
  • इसमें एक घोषणा भाग (वैकल्पिक), एक निष्पादन भाग और एक अपवाद-हैंडलिंग भाग (वैकल्पिक) शामिल है।
  • पैरामीटर के माध्यम से फ़ंक्शन में मान पास किए जा सकते हैं या फ़ंक्शन से मान प्राप्त किए जा सकते हैं।
  • इन पैरामीटर्स को कॉलिंग स्टेटमेंट में शामिल किया जाना चाहिए।
  • RETURN पैरामीटर का उपयोग करने के अलावा, एक फ़ंक्शन OUT पैरामीटर के माध्यम से भी एक मान लौटा सकता है।
  • चूंकि यह हमेशा एक मान लौटाता है, इसलिए कॉलिंग स्टेटमेंट हमेशा एक असाइनमेंट ऑपरेटर का उपयोग करके एक वेरिएबल को भरता है।

PL/SQL फ़ंक्शन संरचना

वाक्य - विन्यास

CREATE OR REPLACE FUNCTION
<function_name>
(
<parameter1 IN/OUT <datatype>
)
RETURN <datatype>
[ IS | AS ]
<declaration_part>
BEGIN
<execution part>
EXCEPTION
<exception handling part>
END;
  • 'CREATE FUNCTION' कमांड कंपाइलर को एक नया फ़ंक्शन बनाने का निर्देश देता है। 'OR REPLACE' कमांड मौजूदा फ़ंक्शन (यदि कोई हो) को नए फ़ंक्शन से बदलने का निर्देश देता है।
  • फ़ंक्शन का नाम अद्वितीय होना चाहिए।
  • RETURN डेटा प्रकार का उल्लेख किया जाना चाहिए।
  • 'IS' कीवर्ड का उपयोग तब किया जाता है जब फ़ंक्शन किसी अन्य ब्लॉक के अंदर नेस्टेड होता है। यदि फ़ंक्शन स्टैंडअलोन है, तो 'AS' का उपयोग किया जाता है।

उदाहरण 1: एक फ़ंक्शन बनाना और उसे अनाम ब्लॉक का उपयोग करके कॉल करना। इस प्रोग्राम में, हम एक ऐसा फ़ंक्शन बनाते हैं जो एक नाम को इनपुट के रूप में लेता है और एक स्वागत संदेश लौटाता है, इसे कॉल करने के लिए एक अनाम ब्लॉक और एक SELECT स्टेटमेंट का उपयोग करते हैं।

एक PL/SQL फ़ंक्शन बनाना और उसे कॉल करना

CREATE OR REPLACE FUNCTION welcome_msg_func ( p_name IN VARCHAR2) RETURN VARCHAR2
IS
BEGIN
RETURN ('Welcome '|| p_name);
END;
/
DECLARE
lv_msg VARCHAR2(250);
BEGIN
lv_msg := welcome_msg_func ('Guru99');
dbms_output.put_line(lv_msg);
END;
/
SELECT welcome_msg_func('Guru99') FROM DUAL;

Code स्पष्टीकरण:

  • Code पंक्ति 1: 'welcome_msg_func' नाम और 'IN' प्रकार के एक पैरामीटर 'p_name' के साथ फंक्शन बनाना।
  • Code पंक्ति 2: रिटर्न टाइप को VARCHAR2 के रूप में घोषित करना।
  • Code पंक्ति 5: 'वेलकम' और पैरामीटर मान को संयोजित करके लौटाया जा रहा है।
  • Code पंक्ति 8: उपरोक्त फ़ंक्शन को कॉल करने के लिए अनाम ब्लॉक।
  • Code पंक्ति 9: फ़ंक्शन के रिटर्न टाइप के समान डेटा टाइप के साथ वेरिएबल घोषित करना।
  • Code पंक्ति 11: फंक्शन को कॉल करना और रिटर्न वैल्यू को 'lv_msg' वेरिएबल में डालना।
  • Code पंक्ति 12: वेरिएबल का मान प्रिंट किया जा रहा है। आउटपुट है “स्वागत है” Guru99 "।
  • Code पंक्ति 14: SELECT स्टेटमेंट के माध्यम से उसी फ़ंक्शन को कॉल करना। रिटर्न वैल्यू को स्टैंडर्ड आउटपुट पर भेजा जाता है।

एक प्रक्रिया और एक फ़ंक्शन के बीच समानताएँ

  • दोनों को अन्य PL/SQL ब्लॉकों से बुलाया जा सकता है।
  • यदि सबप्रोग्राम में उत्पन्न अपवाद को उसके एक्सेप्शन हेंडलिंग यह सेक्शन, कॉलिंग ब्लॉक तक फैलता है।
  • दोनों में आवश्यकतानुसार कई पैरामीटर हो सकते हैं।
  • दोनों को PL/SQL में डेटाबेस ऑब्जेक्ट के रूप में माना जाता है।

प्रक्रिया बनाम कार्य: प्रमुख अंतर

प्रक्रिया समारोह
इसका उपयोग मुख्य रूप से किसी विशिष्ट प्रक्रिया को निष्पादित करने के लिए किया जाता है। इसका उपयोग मुख्य रूप से कुछ गणना करने के लिए किया जाता है।
इसे SELECT स्टेटमेंट में कॉल नहीं किया जा सकता है। एक ऐसा फंक्शन जिसमें कोई डीएमएल स्टेटमेंट नहीं है, उसे SELECT स्टेटमेंट में कॉल किया जा सकता है।
यह मान लौटाने के लिए OUT पैरामीटर का उपयोग करता है। मान लौटाने के लिए RETURN फ़ंक्शन का उपयोग करता है।
मान लौटाना अनिवार्य नहीं है। मान लौटाना अनिवार्य है।
RETURN कमांड सबप्रोग्राम से नियंत्रण समाप्त कर देता है। RETURN कमांड सबप्रोग्राम से नियंत्रण समाप्त करता है और साथ ही मान भी लौटाता है।
निर्माण के समय रिटर्न डेटा प्रकार निर्दिष्ट नहीं किया गया है। निर्माण के समय रिटर्न डेटा प्रकार अनिवार्य है।

PL/SQL में अंतर्निहित फ़ंक्शन

PL / SQL इसमें स्ट्रिंग और दिनांक डेटा प्रकारों के साथ काम करने के लिए विभिन्न अंतर्निहित फ़ंक्शन शामिल हैं। यहां हम आमतौर पर उपयोग किए जाने वाले फ़ंक्शन और उनके उपयोग को देखते हैं।

रूपांतरण फ़ंक्शन

ये अंतर्निर्मित फ़ंक्शन एक डेटा प्रकार को दूसरे में परिवर्तित करते हैं।

फ़ंक्शन का नाम प्रयोग उदाहरण
TO_चर किसी अन्य डेटा प्रकार को वर्ण डेटा प्रकार में परिवर्तित करता है। TO_CHAR(123);
TO_DATE (स्ट्रिंग, प्रारूप) दी गई स्ट्रिंग को दिनांक में परिवर्तित करता है। स्ट्रिंग का प्रारूप निर्धारित प्रारूप के अनुरूप होना चाहिए। TO_DATE('2015-JAN-15', 'YYYY-MON-DD'); उत्पादन: 1 / / 15 2015
TO_NUMBER (पाठ, प्रारूप) यह टेक्स्ट को दिए गए फॉर्मेट की संख्या में परिवर्तित करता है। इस फॉर्मेट में, '9' अंकों की संख्या को दर्शाता है। डुअल से TO_NUMBER('1234′,'9999') चुनें; उत्पादन: 1234. दोहरी संख्या से TO_NUMBER('1,234.45','9,999.99') चुनें; उत्पादन: 1234.45

स्ट्रिंग फ़ंक्शंस

इन फंक्शनों का उपयोग कैरेक्टर डेटा टाइप पर किया जाता है।

फ़ंक्शन का नाम प्रयोग उदाहरण
INSTR(पाठ, स्ट्रिंग, प्रारंभ, घटना) यह फ़ंक्शन दी गई स्ट्रिंग में किसी विशिष्ट टेक्स्ट की स्थिति बताता है। यहाँ text मुख्य स्ट्रिंग है, string वह टेक्स्ट है जिसे खोजना है, start प्रारंभिक स्थिति है (वैकल्पिक), और occurrence खोजी गई स्ट्रिंग की उपस्थिति की संख्या है (वैकल्पिक)। डुअल से INSTR('AEROPLANE','E',2,1) चुनें; उत्पादन: 2. Select INSTR('AEROPLANE','E',2,2) from dual; उत्पादन: 9 (E का दूसरा प्रयोग)
SUBSTR (पाठ, प्रारंभ, लंबाई) यह मुख्य स्ट्रिंग का सबस्ट्रिंग मान देता है। टेक्स्ट मुख्य स्ट्रिंग है, स्टार्ट शुरुआती स्थिति है, और लेंथ वह लंबाई है जिसका सबस्ट्रिंग निकालना है। select substr('aeroplane',1,7) from dual; उत्पादन: एरोप्ला
ऊपरी (पाठ) दिए गए टेक्स्ट का अपरकेस संस्करण लौटाता है। दोहरे से ऊपरी ('guru99') का चयन करें; उत्पादन: गुरु99
निचला (पाठ) दिए गए टेक्स्ट का लोअरकेस संस्करण लौटाता है। Select lower('AerOpLane') from dual; उत्पादन: हवाई जहाज
INITCAP (पाठ) यह फ़ंक्शन दिए गए टेक्स्ट को लौटाता है जिसमें प्रत्येक शब्द का पहला अक्षर बड़े अक्षरों में होता है। डुअल से INITCAP('guru99') चुनें; उत्पादन: Guru99. Select INITCAP('my story') from dual; उत्पादन: मेरी कहानी
लंबाई (पाठ) यह दी गई स्ट्रिंग की लंबाई लौटाता है। Dual से LENGTH('guru99') चुनें; उत्पादन: 6
LPAD (पाठ, लंबाई, पैड_अक्षर) यह स्ट्रिंग के बाईं ओर दिए गए अक्षर को दी गई कुल लंबाई तक बढ़ा देता है। डुअल से LPAD('guru99', 10, '$') चुनें; उत्पादन: $$$$गुरु99
RPAD (पाठ, लंबाई, पैड_चरित्र) यह स्ट्रिंग के दाईं ओर दिए गए अक्षर को दी गई कुल लंबाई तक बढ़ा देता है। Select RPAD('guru99',10,'-') from dual; उत्पादन: गुरु99—-
एलटीआरआईएम (पाठ) टेक्स्ट के शुरुआती खाली स्थान को हटा देता है। LTRIM(' का चयन करें Guru99') द्वैत से; उत्पादन: Guru99
आरटीआरआईएम (पाठ) टेक्स्ट के अंत में मौजूद अतिरिक्त खाली स्थान को हटा देता है। RTRIM(' का चयन करेंGuru99') द्वैत से; उत्पादन: Guru99

दिनांक फ़ंक्शन

इन फंक्शन्स का उपयोग तिथियों में हेरफेर करने के लिए किया जाता है।

फ़ंक्शन का नाम प्रयोग उदाहरण
ADD_MONTHS (दिनांक, महीनों की संख्या) दी गई तिथि में महीने जोड़ देता है। ADD_MONTHS('2015-01-01',5); उत्पादन: 05 / / 01 2015
SYSDATE यह सर्वर की वर्तमान तिथि और समय लौटाता है। दोहरे से SYSDATE का चयन करें; उत्पादन: 10/4/2015 2:11:43 अपराह्न
TRUNC दिनांक चर को न्यूनतम संभव मान तक पूर्णांकित करता है। डुअल से sysdate, TRUNC(sysdate) का चयन करें; उत्पादन: 10/4/2015 2:12:39 PM, 10/4/2015
दौर तिथि को निकटतम सीमा तक, चाहे वह ऊपर हो या नीचे, पूर्णांकित करता है। Select sysdate, ROUND(sysdate) from dual; उत्पादन: 10/4/2015 2:14:34 PM, 10/5/2015
महीनों_के बीच दो तिथियों के बीच महीनों की संख्या लौटाता है। Select MONTHS_BETWEEN (sysdate+60, sysdate) from dual; उत्पादन: 2

अक्सर पूछे जाने वाले प्रश्न

एक फ़ंक्शन को एक मान लौटाना आवश्यक है और यदि उसमें कोई DML (डेटाबेस) नहीं है तो उसे SELECT स्टेटमेंट के अंदर उपयोग किया जा सकता है। एक प्रोसीजर एक प्रक्रिया को चलाता है, उसे मान लौटाने की आवश्यकता नहीं होती है, और उसे SELECT स्टेटमेंट से कॉल नहीं किया जा सकता है।

IN एक रीड-ओनली वैल्यू को सबप्रोग्राम में पास करता है। OUT कॉलर को एक वैल्यू लौटाता है। IN और OUT दोनों काम करते हैं, एक वैल्यू प्राप्त करते हैं और उसी पैरामीटर के माध्यम से संभवतः परिवर्तित वैल्यू लौटाते हैं।

हां, अगर उसमें INSERT, UPDATE या DELETE जैसे कोई DML फ़ंक्शन शामिल नहीं है। DML फ़ंक्शन को केवल किसी अन्य PL/SQL ब्लॉक से ही कॉल किया जा सकता है, सीधे किसी क्वेरी के अंदर नहीं।

जी हां। एआई एक साधारण विवरण से सही पैरामीटर मोड और रिटर्न प्रकार के साथ एक क्रिएट प्रोसीजर या क्रिएट फंक्शन तैयार कर सकता है। Revतैनाती से पहले पैरामीटर और अपवाद प्रबंधन की समीक्षा करें।

OR REPLACE एक ही नाम की मौजूदा प्रक्रिया या फ़ंक्शन को ड्रॉप किए बिना ओवरराइट कर देता है।ping इसे पहले करें। इससे अनुदान बरकरार रहते हैं और किसी बदले हुए उपकार्यक्रम को पुनः तैनात करने का यह सामान्य तरीका है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: