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

Bagaimana cara menggunakan XML untuk membuat Objek OCI-Lob?

Setelah melakukan banyak penyelidikan tentang ini, akhirnya saya sampai pada titik memahami ini. Kita tidak bisa langsung mengonversi XML ke OCI-Lob Object secara langsung. Karena

"Oracle Call Interface (OCI) adalah antarmuka pemrograman aplikasi (API) yang memungkinkan aplikasi yang ditulis dalam C untuk berinteraksi dengan satu atau lebih Oracle Server. OCI memberi program Anda kemampuan untuk melakukan berbagai operasi basis data yang dimungkinkan dengan database Oracle9i, termasuk pemrosesan pernyataan SQL dan manipulasi objek."

Biarkan seperti Jika kita memiliki fungsi XMLAGG dengan getClobVal() di samping kueri yang kita simpan sebagai "Val" yang mengembalikan Objek OCI-Lob seperti di bawah ini

$Val = OCI-Lob Object
(
    [descriptor] => Resource id #130
)

fungsi di bawah ini akan memberi kita Isi XML dari Objek OCI-Lob [CLOB DataType], yang telah saya sebutkan di Pertanyaan.

$this->$conn = oci_connect('user', 'password', 'connectionString');
$query = "Some SELECT Query";    
$stmt = oci_parse($this->oraConn, $query);      
    oci_execute($stmt);
            while($row = oci_fetch_assoc($stmt)){
                if($row['Val'] != false){
                    printVar($row['Val']->load());
                    break;
                }
            }

Sekarang Jika saya menghapus load() dari printVar($row['Val']->load()) dan melakukan printVar($row['Val']) itu akan mengembalikan saya Obyek OCI-Lob.

Untuk mendapatkan Object OCI-Lob Kita membutuhkan Oracle Select Query selain itu kita dapat melewatkan XMLAttributes/Elements dengan getClobVal() atau fungsi apapun. Tetapi Kami tidak dapat mengurai XML dan mengonversinya menjadi Objek OCI-Lob karena selalu berinteraksi dengan Database/Server Oracle.

Jadi untuk menjalankan pengujian Unit PHP yang saya lakukan adalah, saya mengambil XML dan mengonversinya menjadi OCIMockObject, Yang Akan memiliki semua Nilai XML dan menguraikannya ke fungsi.

Berhasil!

Tautan ini berguna untuk mempelajari lebih lanjut tentang Oracle Call Interface(OCI )

Terima kasih.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menemukan dan menghapus karakter Non-ASCII dari Oracle Varchar2

  2. Apakah ada cara agar kumpulan koneksi JBoss terhubung kembali ke Oracle ketika koneksi menjadi buruk?

  3. Oracle UNION kolom yang berbeda

  4. TO_DATE saya sepertinya tidak berfungsi dengan baik

  5. Sisipkan Oracle jika baris tidak ada