Oracle में, LOG() फ़ंक्शन लॉगरिदम देता है, आधार n2 , n1 . का , जहां n2 पहला तर्क है और n1 दूसरा है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
LOG(n2, n1)
जहां n2 0 . के अलावा कोई भी सकारात्मक मान हो सकता है या 1 , और n1 कोई सकारात्मक मूल्य है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT LOG(16, 73)
FROM DUAL; परिणाम:
लॉग(16,73)नकारात्मक मान
नकारात्मक मानों के परिणामस्वरूप "सीमा से बाहर" त्रुटि होती है:
SELECT LOG(-16, 73) FROM DUAL;परिणाम:
पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - DUALError रिपोर्ट से लॉग (-16, 73) चुनें -ORA-01428:तर्क '-16' सीमा से बाहर हैदूसरे तर्क के लिए वही:
SELECT LOG(16, -73) FROM DUAL;परिणाम:
त्रुटि से शुरू होने में त्रुटि:कमांड में 1 - DUALError रिपोर्ट से लॉग (16, -73) चुनें -ORA-01428:तर्क '-73' सीमा से बाहर हैशून्य
पासिंग
0इसके परिणामस्वरूप "सीमा से बाहर" त्रुटि भी होती है:SELECT LOG(0, 73) FROM DUAL;परिणाम:
पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - DUALError रिपोर्ट से लॉग (0, 73) चुनें -ORA-01428:तर्क '0' सीमा से बाहर हैऔर फिर, यही बात दूसरे तर्क पर भी लागू होती है:
SELECT LOG(16, 0) FROM DUAL;परिणाम:
पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - DUALError रिपोर्ट से लॉग (16, 0) चुनें -ORA-01428:तर्क '0' सीमा से बाहर है1 उत्तीर्ण
पासिंग
1दूसरे तर्क के लिए0. में परिणाम मिलता है :SELECT LOG(16, 1) FROM DUAL;परिणाम:
लॉग (16,1) ____________ 0पासिंग
1पहले तर्क के परिणामस्वरूप "सीमा से बाहर" त्रुटि होती है:SELECT LOG(1, 2) FROM DUAL;परिणाम:
पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - DUALError रिपोर्ट से लॉग (1, 2) का चयन करें -ORA-01428:तर्क '1' सीमा से बाहर हैअभिव्यक्ति
तर्कों में इस तरह के भाव शामिल हो सकते हैं:
SELECT LOG(10 + 6, 12 * 30) FROM DUAL;परिणाम:
लॉग(10+6,12*30) _______________________________________________ 2.1229632740824186776944932934625579835गैर-संख्यात्मक तर्क
तर्क कोई भी संख्यात्मक डेटा प्रकार या कोई गैर-संख्यात्मक डेटा प्रकार हो सकता है जिसे परोक्ष रूप से एक संख्यात्मक डेटा प्रकार में परिवर्तित किया जा सकता है।
जब तर्क उस मानदंड को पूरा नहीं करते हैं तो क्या होता है इसका एक उदाहरण यहां दिया गया है:
SELECT LOG('Homer', 'Symptom') FROM DUAL;परिणाम:
पंक्ति से शुरू होने में त्रुटि:कमांड में 1 - DUALError रिपोर्ट से लॉग ('होमर', 'लक्षण') चुनें -ORA-01722:अमान्य संख्याअशक्त तर्क
LOG()रिटर्नnullयदि कोई तर्कnullहै :SET NULL 'null'; SELECT LOG(null, 1024), LOG(16, null), LOG(null, null) FROM DUAL;परिणाम:
लॉग (नल, 1024) लॉग (16, नल) लॉग (नल, नल) _________डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी SQL
SELECTके परिणामस्वरूप एक रिक्त मान उत्पन्न होता है तो एक रिक्त स्थान लौटाता है बयान।हालांकि, आप
SET NULL. का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंगnullवापस किया जाना चाहिए।अनुपलब्ध तर्क
कॉलिंग
LOG()तर्कों की गलत संख्या के साथ, या बिना किसी तर्क के त्रुटि उत्पन्न होती है:SELECT LOG() FROM DUAL;परिणाम:
लाइन से शुरू होने में त्रुटि:कमांड में 1 - कमांड लाइन पर DUALError से लॉग () का चयन करें:1 कॉलम:8 त्रुटि रिपोर्ट -एसक्यूएल त्रुटि:ORA-00909:तर्कों की अमान्य संख्या00909। 00000 - "तर्कों की अमान्य संख्या"*कारण:*कार्रवाई:और:
SELECT LOG(10, 2, 3) FROM DUAL;परिणाम:
लाइन से शुरू होने में त्रुटि:कमांड में 1 - कमांड लाइन पर DUALError से लॉग (10, 2, 3) चुनें:1 कॉलम:8 त्रुटि रिपोर्ट - SQL त्रुटि:ORA-00909:तर्कों की अमान्य संख्या00909। 00000 - "तर्कों की अमान्य संख्या"*कारण:*कार्रवाई: