sql >> Databasteknik >  >> RDS >> Oracle

Hur använder man XML för att skapa OCI-Lob-objekt?

Efter att ha gjort massor av undersökningar om detta har jag äntligen kommit till en punkt där jag förstår detta. Vi kan inte direkt konvertera en XML till OCI-Lob Object direkt. Eftersom

"Oracle Call Interface (OCI) är ett applikationsprogrammeringsgränssnitt (API) som tillåter applikationer skrivna i C att interagera med en eller flera Oracle-servrar. OCI ger dina program förmågan att utföra alla databasoperationer som är möjligt med Oracle9i-databas, inklusive SQL-satsbearbetning och objektmanipulation."

Låt det vara som om vi har någon XMLAGG-funktion med getClobVal() i frågan som vi lagrar som "Val" som returnerar OCI-Lob Object enligt nedan

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

funktionen nedan ger oss XML-innehållet för OCI-Lob-objektet [CLOB DataType], som jag har nämnt i frågorna.

$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;
                }
            }

Om jag nu tar bort load() från printVar($row['Val']->load()) och gör printVar($row['Val']) kommer det att returnera OCI-Lob-objektet till mig igen.

För att få OCI-Lob-objekt behöver vi Oracle Select Query. Dessutom kan vi skicka XMLAttributes/Elements med getClobVal() eller vilken funktion som helst. Men vi kan inte analysera XML och konvertera det till OCI-Lob Object eftersom det alltid interagerar med Oracle Database/Server.

Så för att köra PHP-enhetstestet var det jag gjorde, jag tog XML och konverterade det till ett OCIMockObject, som kommer att ha alla XML-värden och analysera det till funktionen.

Det fungerade!

Den här länken är användbar för att lära dig mer om Oracle Call Interface(OCI) )

Tack.




  1. Hur man tar bort Not Null Constraint i MySQL

  2. Påskyndar en (långsam) enorm wordpress-databas

  3. ORACLE SQL:Sökord saknas

  4. Hur länkar jag C++ MySQL Connector Libraries till Cmake?