Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak używać XML do tworzenia obiektu OCI-Lob?

Po przeprowadzeniu wielu badań na ten temat, w końcu doszedłem do punktu, w którym to zrozumiałem. Nie możemy bezpośrednio przekonwertować XML na obiekt OCI-Lob. Ponieważ

"Oracle Call Interface (OCI) to interfejs programowania aplikacji (API), który umożliwia aplikacjom napisanym w C interakcję z jednym lub większą liczbą serwerów Oracle. OCI daje Twoim programom możliwość wykonywania pełnego zakresu operacji bazodanowych, które są możliwe z bazą danych Oracle9i, w tym przetwarzaniem instrukcji SQL i manipulacją obiektami."

Niech będzie tak, że jeśli mamy jakąkolwiek funkcję XMLAGG z getClobVal() po stronie zapytania, które przechowujemy jako "Val", co zwraca obiekt OCI-Lob jak poniżej

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

poniższa funkcja da nam zawartość XML obiektu OCI-Lob [CLOB DataType], o którym wspomniałem w pytaniach.

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

Teraz, jeśli usunę load() z printVar($row['Val']->load()) i zrobię printVar($row['Val']), to ponownie zwróci mi obiekt OCI-Lob.

Aby uzyskać obiekt OCI-Lob Potrzebujemy Oracle Select Query, dodatkowo możemy przekazać XMLAttributes/Elements za pomocą getClobVal() lub dowolnej funkcji. Ale nie możemy przeanalizować XML i przekonwertować go na obiekt OCI-Lob, ponieważ zawsze współdziała z bazą danych/serwerem Oracle.

Aby uruchomić test jednostki PHP, wziąłem XML i przekonwertowałem go na OCIMockObject, który będzie miał wszystkie wartości XML i przeanalizowałem go do funkcji.

Udało się!

Ten link jest przydatny, aby dowiedzieć się więcej o Oracle Call Interface (OCI )

Dzięki.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Które kody mają korespondencję w db

  2. Jak wyświetlić plik wyjściowy sys_refcursor pl sql za pomocą narzędzia Toad?

  3. Konwertuj uniksowy znacznik czasu na wartość daty w Oracle

  4. PROCEDURA ORACLE — AUTHID dozwolone tylko na poziomie schematu

  5. Zapytanie SQL w celu zwinięcia zduplikowanych wartości według zakresu dat