Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

xquery value() विधि काम नहीं कर रही है और त्रुटि दे रही है

<Location> . से आप कौन सी विशेषता या तत्व निकालना चाहते हैं? नोड्स ?? आप संपूर्ण XML नोड को bigint . में नहीं बदल सकते (जैसा कि आपकी क्वेरी करने का प्रयास करती है....)

क्या आप <Location LaborHours="1.0"> . निकालने का प्रयास करते हैं? मूल्य ??

फिर आपको चाहिए:

;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions')
SELECT 
    XC.value('@LaborHours', 'decimal(18,4)')
FROM
    Production.ProductModel
CROSS APPLY
    Instructions.nodes('/root/Location') AS XT(XC)

सबसे पहले:चूंकि एकाधिक . हैं <Location> अपने एक्सएमएल में नोड्स, आपको CROSS APPLY का उपयोग करना चाहिए और .nodes() सभी <Location> प्राप्त करने के लिए कार्य करें एक्सएमएल नोड्स।

दूसरे, चूंकि आप विशेषता . को पुनः प्राप्त करना चाहते हैं LaborHours (मेरी धारणा), आपको .value('@LaborHours . का उपयोग करने की आवश्यकता है )` दृष्टिकोण।

और अंत में, चूंकि वे मान 1.0 . हैं या 2.5 , आपको decimal . का उपयोग करना चाहिए (उचित सटीकता और पैमाने के साथ) उन मानों को प्राप्त करने के लिए - नहीं bigint ....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. छवि कॉलम से डेटा का पूर्वावलोकन करने का सबसे आसान तरीका क्या है?

  2. SQL क्वेरी उपलब्ध अनुक्रमणिका का उपयोग नहीं करती है (SQL Server 2008)

  3. SQL-सर्वर DB डिज़ाइन समय परिदृश्य (वितरित या केंद्रीकृत)

  4. क्या मैं संग्रहीत प्रक्रिया के भीतर एक डिफ़ॉल्ट स्कीमा सेट कर सकता हूं?

  5. टी-एसक्यूएल में अल्पविराम से अलग सूची आउटपुट करें