SQL सर्वर में, अक्सर इस्तेमाल किया जाने वाला फ़ंक्शन CAST()
है , जो एक डेटा प्रकार के व्यंजक को दूसरे डेटा प्रकार में रूपांतरित करता है। लेकिन अगर कास्ट सफल नहीं होता है, तो यह एक त्रुटि देता है।
TRY_CAST()
दर्ज करें .
TRY_CAST()
कास्ट विफल होने पर फ़ंक्शन कोई त्रुटि नहीं लौटाता है। इसके बजाय, यह NULL
returns लौटाता है ।
हालांकि, कुछ अवसर ऐसे होते हैं, जहां यह एक त्रुटि लौटाएगा।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TRY_CAST ( expression AS data_type [ ( length ) ] )
जहां expression
कन्वर्ट करने के लिए अभिव्यक्ति है, data_type
नया डेटा प्रकार है, और length
नए डेटा प्रकार के लिए एक वैकल्पिक लंबाई है।
उदाहरण 1 - कास्ट सफल हुआ
स्ट्रिंग को decimal
के रूप में कास्ट करने का एक उदाहरण यहां दिया गया है :
SELECT TRY_CAST('007' AS DECIMAL(5,2));
परिणाम:
7.00
इस मामले में, कलाकार सफल रहे।
उदाहरण 2 - कास्ट विफल और रिटर्न NULL
यहां कास्ट फेल होने और NULL
का एक उदाहरण दिया गया है लौटाया जा रहा है:
SELECT TRY_CAST('Double Oh Seven!' AS DECIMAL(5,2));
परिणाम:
NULL
कास्ट विफल रहा, और इसलिए NULL
लौटा दिया गया।
तुलना के रूप में, जब हम CAST()
. का उपयोग करते हैं तो क्या होता है TRY_CAST()
. के बजाय :
SELECT CAST('Double Oh Seven!' AS DECIMAL(5,2));
परिणाम:
Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to numeric.
उदाहरण 3 - कास्ट विफल हो जाता है और एक त्रुटि देता है
कुछ अवसर ऐसे होते हैं जहां TRY_CAST()
एक त्रुटि लौटाएगा।
यदि किसी कलाकार को स्पष्ट रूप से अनुमति नहीं है, तो यह एक त्रुटि देता है:
SELECT TRY_CAST(10 AS xml);
परिणाम:
Msg 529, Level 16, State 2, Line 1 Explicit conversion from data type int to xml is not allowed.
अधिक जानकारी
देखें कैसे CAST()
अधिक रूपांतरण उदाहरणों के लिए SQL सर्वर में काम करता है, और CAST()
बनाम TRY_CAST()
SQL सर्वर में CAST()
. के बीच तुलना के लिए और TRY_CAST()
।
CAST()
. के लिए Microsoft के दस्तावेज़ देखें और CONVERT()
अधिक विस्तृत जानकारी के लिए (इसमें से अधिकांश TRY_CAST()
पर भी लागू होता है )।