Dopo aver fatto molte indagini su questo, finalmente sono arrivato al punto di capirlo. Non possiamo convertire direttamente un XML in OCI-Lob Object direttamente. Perché
"Oracle Call Interface (OCI) è un'API (Application Programming Interface) che consente alle applicazioni scritte in C di interagire con uno o più server Oracle. OCI offre ai tuoi programmi la capacità di eseguire l'intera gamma di operazioni di database che sono possibile con il database Oracle9i, inclusa l'elaborazione delle istruzioni SQL e la manipolazione degli oggetti."
Lascia che sia come se avessimo una funzione XMLAGG con getClobVal() all'interno della query che stiamo archiviando come "Val" che restituisce OCI-Lob Object come di seguito
$Val = OCI-Lob Object
(
[descriptor] => Resource id #130
)
la funzione seguente ci fornirà il contenuto XML dell'oggetto OCI-Lob [CLOB DataType], che ho menzionato nelle domande.
$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;
}
}
Ora se rimuovo load() da printVar($row['Val']->load()) e faccio printVar($row['Val']) mi restituirà nuovamente l'oggetto OCI-Lob.
Per ottenere l'oggetto OCI-Lob Abbiamo bisogno di Oracle Select Query inoltre possiamo passare XMLAttributes/Elements con getClobVal() o qualsiasi funzione. Ma non possiamo analizzare XML e convertirlo in OCI-Lob Object poiché interagisce sempre con Oracle Database/Server.
Quindi, per eseguire il PHP Unit test, quello che ho fatto è stato, ho preso l'XML e l'ho convertito in un OCIMockObject, che avrà tutti i valori XML e lo analizzerà nella funzione.
Ha funzionato!
Questo link è utile per saperne di più su Oracle Call Interface(OCI )
Grazie.