Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да използвам XML за създаване на OCI-Lob обект?

След като направих много разследване по този въпрос, най-накрая стигнах до точката на разбиране на това. Не можем директно да конвертираме XML в OCI-Lob обект директно. Защото

"Интерфейсът за извикване на Oracle (OCI) е интерфейс за програмиране на приложения (API), който позволява на приложения, написани на C, да взаимодействат с един или повече сървъри на Oracle. OCI дава на вашите програми способността да изпълняват пълния набор от операции с бази данни, които са възможно с база данни Oracle9i, включително обработка на SQL изрази и манипулиране на обекти."

Нека бъде като Ако имаме някаква XMLAGG функция с getClobVal() отстрани на заявката, която съхраняваме като "Val", която връща OCI-Lob обект, както е показано по-долу

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

функцията по-долу ще ни даде XML съдържанието на OCI-Lob обект [CLOB DataType], което споменах във Въпросите.

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

Сега, ако премахна load() от printVar($row['Val']->load()) и направя printVar($row['Val']), той отново ще ми върне OCI-Lob обекта.

За да получим OCI-Lob обект, имаме нужда от Oracle Select Query, освен това можем да предадем XMLAttributes/Elements с getClobVal() или която и да е функция. Но не можем да анализираме XML и да го конвертираме в OCI-Lob обект, тъй като той винаги взаимодейства с базата данни/сървъра на Oracle.

Така че, за да изпълня PHP Unit теста, това, което направих, беше, че взех XML и го преобразувах в OCIMockObject, който ще има всички XML стойности и ще го анализира във функцията.

Проработи!

Тази връзка е полезна, за да научите повече за Oracle Call Interface(OCI )

Благодаря.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Датата на Oracle изглежда равна

  2. Предайте стойности, прочетени от файл като вход към SQL заявка в Oracle

  3. Външни таблици на Oracle:Разширено оформление на плосък файл

  4. Как да анализирам низ, разделен със запетая, в PL/SQL?

  5. Текстът на Oracle се екранира с къдрави скоби и заместващи знаци