आपने देखा होगा कि T-SQL में CONVERT()
both दोनों शामिल हैं फ़ंक्शन और एक TRY_CONVERT()
फ़ंक्शन जिसे आप SQL सर्वर में डेटा प्रकारों के बीच रूपांतरण करने के लिए उपयोग कर सकते हैं। लेकिन अगर आप इन दो कार्यों में क्या अंतर है, इस पर अपना सिर खुजला रहे हैं, तो पढ़ें!
CONVERT()
. के बीच का अंतर और TRY_CONVERT()
जिस तरह से वे डेटा प्रकारों को संभालते हैं जिन्हें परिवर्तित नहीं किया जा सकता है। एक त्रुटि फेंकता है, जबकि दूसरा शून्य देता है। निम्नलिखित उदाहरण इसे प्रदर्शित करते हैं।
कन्वर्ट() फ़ंक्शन
सबसे पहले, आइए देखें कि CONVERT()
. क्या है? समारोह करता है। यह एक डेटा टाइप को दूसरे डेटा टाइप में कनवर्ट करता है। यहां एक उदाहरण दिया गया है:
SELECT 'Comments: ' + CONVERT(varchar(12), 9) AS Result;
परिणाम:
Result ----------- Comments: 9
इस उदाहरण में, हम एक int
. को रूपांतरित करते हैं varchar(12)
. का मान . और क्योंकि मान हमारे वांछित डेटा प्रकार और लंबाई में परिवर्तित होने में सक्षम था, इसने पूरी तरह से काम किया।
हालांकि, जब रूपांतरण सफल होता है तो यह पूरी तरह से काम करता है, जब यह विफल हो जाता है तो क्या होता है?
जब रूपांतरण विफल हो जाता है → त्रुटि
आइए कोड में थोड़ा बदलाव करें और देखें कि रूपांतरण विफल होने पर क्या होता है:
SELECT 'Comments: ' + CONVERT(varchar(1), 10.00) AS Result;
परिणाम:
Error: Arithmetic overflow error converting numeric to data type varchar.
हमें एक त्रुटि मिलती है।
TRY_CONVERT() फ़ंक्शन
TRY_CONVERT()
एक विकल्प है जिसका उपयोग हम त्रुटि संदेश को रोकने के लिए कर सकते हैं। यह फ़ंक्शन CONVERT()
. के समान डेटा रूपांतरण कार्य करता है , हालांकि, अगर यह फ़ंक्शन रूपांतरण नहीं कर सकता है, तो यह null
returns लौटाता है :
SELECT 'Comments: ' + TRY_CONVERT(varchar(1), 10.00) AS Result;
परिणाम:
Result ------ null
आप इस परिणाम को ले सकते हैं और सशर्त कोड लागू कर सकते हैं ताकि रूपांतरण सफल होता है या नहीं, इसके आधार पर एक अलग चीज होती है।
उदाहरण:
SELECT CASE WHEN TRY_CONVERT(varchar(1), 10.00) IS NULL THEN 'Conversion failed' ELSE 'Conversion succeeded' END AS Result;
परिणाम:
Result ----------------- Conversion failed
अमान्य डेटा प्रकार
TRY_CONVERT()
. के साथ एक चेतावनी यह है कि वैध डेटा प्रकारों का उपयोग करते समय यह केवल इस तरह से काम करता है। इसलिए यदि आप स्पष्ट रूप से ऐसा डेटा प्रकार प्रदान करते हैं जिसकी अनुमति नहीं है तो आपको एक त्रुटि मिलेगी।
उदाहरण:
SELECT 'Comments: ' + TRY_CONVERT(Homer, 10.00) AS Result;
परिणाम:
Error: Type Homer is not a defined system type.