Oracle डाटाबेस में, NEXT_DAY()
फ़ंक्शन निर्दिष्ट कार्यदिवस के पहले उदाहरण की तारीख देता है जो निर्दिष्ट तिथि से बाद में होता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
NEXT_DAY(date, char)
जहां date
तारीख है और char
निर्दिष्ट कार्यदिवस है।
char
तर्क वर्तमान सत्र की तिथि भाषा में सप्ताह का एक दिन होना चाहिए, या तो पूरा नाम या संक्षिप्त नाम। आवश्यक अक्षरों की न्यूनतम संख्या संक्षिप्त संस्करण में अक्षरों की संख्या है। मान्य संक्षिप्त नाम के तुरंत बाद किसी भी वर्ण को अनदेखा कर दिया जाता है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT NEXT_DAY('01-OCT-2035', 'FRIDAY') AS "Next Friday"
FROM DUAL;
परिणाम:
Next Friday ______________ 05-OCT-35
सप्ताह के दिन संक्षेप
उपरोक्त उदाहरण पूरे कार्यदिवस के नाम का उपयोग करता है। निम्नलिखित उदाहरण में, मैं इसके बजाय संक्षिप्त नाम का उपयोग करता हूं:
SELECT NEXT_DAY('01-OCT-2035', 'FRI') AS "Next Friday"
FROM DUAL;
परिणाम:
Next Friday ______________ 05-OCT-35
किसी भी तरह से, परिणाम वही है।
वास्तव में, जब तक तर्क के पहले भाग में एक वैध कार्यदिवस का संक्षिप्त नाम होता है, तब तक फ़ंक्शन उस संक्षिप्त नाम से मेल खाने वाले अगले कार्यदिवस की तारीख लौटाएगा। वैध संक्षिप्त नाम के तुरंत बाद किसी भी वर्ण को अनदेखा कर दिया जाता है। इसलिए, भले ही पूरा तर्क वास्तव में एक मान्य कार्यदिवस का नाम नहीं है, जब तक कि पहला भाग एक वैध कार्यदिवस का संक्षिप्त नाम है, यह उस कार्यदिवस के लिए एक परिणाम लौटाएगा।
उदाहरण:
SELECT
NEXT_DAY('01-OCT-2035','Monkey') AS "Next Monkey",
NEXT_DAY('01-OCT-2035','Thumbnail') AS "Next Thumbnail",
NEXT_DAY('01-OCT-2035','Friar Tuck') AS "Next Friar Tuck"
FROM DUAL;
परिणाम:
Next Monkey Next Thumbnail Next Friar Tuck ______________ _________________ __________________ 08-OCT-35 04-OCT-35 05-OCT-35
भाषा सेटिंग
जैसा कि उल्लेख किया गया है, कार्यदिवस या उसका संक्षिप्त नाम वर्तमान सत्र की तिथि भाषा में सप्ताह का एक दिन होना चाहिए।
जब मैं अपने सत्र की भाषा बदलता हूं तो यहां क्या होता है, फिर उसी उदाहरण को फिर से चलाने का प्रयास करें:
ALTER SESSION SET NLS_LANGUAGE = 'Spanish';
SELECT NEXT_DAY('01-OCT-2035', 'FRIDAY') AS "Next Friday"
FROM DUAL;
परिणाम:
Session alterado. Error que empieza en la línea: 1 del comando : SELECT NEXT_DAY('01-OCT-2035','FRIDAY') AS "Next Friday" FROM DUAL Informe de error - ORA-01846: día de la semana no válido
इस मामले में, मेरी भाषा स्पेनिश है, और इसलिए हमें स्पेनिश में कार्यदिवस प्रदान करने की आवश्यकता होगी:
ALTER SESSION SET NLS_LANGUAGE = 'Spanish';
SELECT NEXT_DAY('01-OCT-2035', 'viernes') AS "Next Friday"
FROM DUAL;
परिणाम:
Next Friday ______________ 05-OCT-35
अशक्त तर्क
यदि दोनों में से कोई भी तर्क null
है , परिणाम null
. है :
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
SET NULL 'null';
SELECT
NEXT_DAY(null, 'FRIDAY') AS "1",
NEXT_DAY('01-OCT-2035', null) AS "2"
FROM DUAL;
परिणाम:
1 2 _______ _______ null null
डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null
. खाली स्थान लौटाते हैं SQL SELECT
. के परिणामस्वरूप होता है बयान।
हालांकि, आप SET NULL
. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null
वापस किया जाना चाहिए।
अनुपलब्ध तर्क
कॉलिंग NEXT_DAY()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT NEXT_DAY()
FROM DUAL;
परिणाम:
Error starting at line : 1 in command - SELECT NEXT_DAY() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: