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.