(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_error — Возвращает последнюю ошибку
Возвращает последнюю найденную ошибку.
Функция должна вызваться сразу же после появления ошибки. Ошибки очищаются при произведении правильного запроса.
connection_or_statement
       Для большинства ошибок параметром connection_or_statement является
       соответствующий идентификатор соединения или выражения. Для ошибок во время
       выполнения функций oci_connect(),
       oci_new_connect() или oci_pconnect()
       следует передавать null.
      
   Если ошибок не найдено, то oci_error() возвращает
   false. В противном случае, oci_error() возвращает
   информацию об ошибке в виде ассоциативного массива.
  
| Ключ массива | Тип | Описание | 
|---|---|---|
code | 
       int | Номер ошибки Oracle. | 
message | 
       string | Текст ошибки Oracle. | 
offset | 
       int | 
        Позиция ошибки в запросе SQL. Если нет запроса, то равна
        0
        | 
      
sqltext | 
       string | Текст запроса SQL. Если нет запроса, то строка пуста. | 
| Версия | Описание | 
|---|---|
| 8.0.0, PECL OCI8 3.0.0 | 
       connection_or_statement теперь допускает значение null.
       | 
     
Пример #1 Вывод сообщения об ошибке Oracle после ошибки соединения
<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
    $e = oci_error();   // Для обработки ошибок oci_connect
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Пример #2 Вывод сообщения об ошибке Oracle после ошибки разбора
<?php
$stid = oci_parse($conn, "select ' from dual");  // пропущенные кавычки
if (!$stid) {
    $e = oci_error($conn);  // Для обработки ошибок oci_parse
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Пример #3 Вывод сообщения об ошибке Oracle, ошибочного запроса и позиции ошибки запуска запроса
<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);  // Для обработки ошибок oci_execute
    print htmlentities($e['message']);
    print "\n<pre>\n";
    print htmlentities($e['sqltext']);
    printf("\n%".($e['offset']+1)."s", "^");
    print  "\n</pre>\n";
}
?>