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

Oracle XMLQuery पासिंग पैरामीटर मान

समस्या XPath में स्ट्रिंग संयोजन है। आपको ... AR_ITEMS['||lp||']/ITEMS ... करना पसंद नहीं है ।

आप अपने PL/SQL का मान पास कर सकते हैं lp passing . के माध्यम से परिवर्तनशील खंड, जो कई अल्पविराम से अलग किए गए तर्कों की अनुमति देता है; इसे एक पहचानकर्ता दें और फिर उसे सीधे XPath में देखें। मैं इस्तेमाल किए गए "lp" . में फंस गया हूं और $lp; उन्हें पीएल/एसक्यूएल चर नाम से मेल खाने की ज़रूरत नहीं है, लेकिन अगर वे ऐसा करते हैं तो यह स्पष्ट हो सकता है।

      XMLQuery('for $i in distinct-values(/invoice/AR_ITEMS[$lp]/ITEMS/EVENTS/BAL_IMPACTS/DISCOUNT_INFO)
                where $i = "Plan499 Corp Disc" 
                or $i = "Plan899 Corp Disc" 
                or $i = "Plan1099 Corp Disc" 
                or $i = "Plan1599 Corp Disc"
                return $i' passing original_xmldoc, cast(lp as number) as "lp" returning content ).getStringVal() sys_descr,

PL/SQL लूप इंडेक्स वैरिएबल lp एक pls_integer है जो पासिंग क्लॉज पसंद नहीं करता है; यदि आप इसे सीधे पास करते हैं तो आपको ORA-00932 मिलता है, इसलिए आपको इसे नंबर डेटा प्रकार में डालना होगा।




  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. tnsnames.ora फ़ाइल के बिना Oracle कनेक्शन स्ट्रिंग

  3. मुझे PLS-00302 क्यों मिलता है:घटक मौजूद होने पर घोषित किया जाना चाहिए?

  4. डेटटाइम जहां क्लॉज ओरेकल

  5. क्या Oracle पूर्ण पाठ खोज का समर्थन करता है?