Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truyền giá trị tham số XMLQuery của Oracle

Vấn đề là nối chuỗi trong XPath. Nó không thích bạn làm ... AR_ITEMS['||lp||']/ITEMS ... .

Bạn có thể chuyển giá trị của lp PL / SQL của mình biến vào thông qua passing mệnh đề cho phép nhiều đối số được phân tách bằng dấu phẩy; cung cấp cho nó một số nhận dạng và sau đó tham chiếu trực tiếp đến nó trong XPath. Tôi đã sử dụng "lp"$lp; chúng không nhất thiết phải khớp với tên biến PL / SQL, nhưng có thể rõ ràng hơn nếu chúng làm như vậy.

      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,

Biến chỉ mục vòng lặp PL / SQL lp là một pls_integer mà mệnh đề đi qua không thích; nếu bạn chuyển trực tiếp, bạn sẽ nhận được ORA-00932, vì vậy bạn cần truyền nó sang kiểu dữ liệu số.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lấy delta cho user_id từ những tháng trước bằng cách sử dụng oracle sql

  2. Hiệu suất chậm đối với bao thanh toán truy vấn con lồng nhau (CTE)

  3. Oracle to_date () đầu ra không chính xác

  4. Tự động chia các hàng thành cột trong Oracle

  5. Lỗi khi sử dụng oracle.dataaccess.dll