Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle XMLQuery meneruskan nilai parameter

Masalahnya adalah rangkaian string di XPath. Anda tidak suka melakukan ... AR_ITEMS['||lp||']/ITEMS ... .

Anda dapat meneruskan nilai PL/SQL lp . Anda variabel masuk melalui passing klausa, yang memungkinkan beberapa argumen yang dipisahkan koma; berikan pengidentifikasi dan kemudian rujuk itu langsung di XPath. Saya terjebak menggunakan "lp" dan $lp; mereka tidak harus cocok dengan nama variabel PL/SQL, tetapi mungkin lebih jelas jika mereka cocok.

      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,

Variabel indeks loop PL/SQL lp adalah pls_integer yang tidak disukai oleh klausa yang lewat; jika Anda melewatinya secara langsung, Anda mendapatkan ORA-00932, jadi Anda perlu mentransmisikannya ke tipe data angka.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menanyakan hari tertentu dalam sebulan di Oracle

  2. Cobalah untuk mengonversi Waktu ke Sec di Oracle SQL

  3. Bagaimana saya bisa menemukan kotak ukuran yang tepat untuk setiap produk?

  4. Bagaimana cara memilih semua kolom dari tabel, ditambah kolom tambahan seperti ROWNUM?

  5. TO_CHAR dari tipe Oracle PL/SQL TABLE