(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_error — Liefert den letzten Fehler
Gibt den zuletzt gefundenen Fehler zurück.
Die Funktion sollte unmittelbar nach dem Auftreten eines Fehlers aufgerufen werden. Fehler werden durch eine erfolgreiche Anweisung gelöscht.
connection_or_statement
       Bei den meisten Fehlern ist
       connection_or_statement die Ressourcen-Kennung,
       die an den fehlschlagenden Funktionsaufruf übergeben wurde. Bei
       Verbindungsfehlern mit oci_connect(),
       oci_new_connect() oder
       oci_pconnect() sollte null übergeben werden.
      
   Wenn kein Fehler gefunden wurde, gibt oci_error()
   false zurück. Andernfalls gibt oci_error() die
   Fehlerinformationen als assoziatives Array zurück.
  
| Schlüssel | Typ | Beschreibung | 
|---|---|---|
| code | int | Die Oracle-Fehlernummer. | 
| message | string | Die Oracle-Fehlermeldung. | 
| offset | int | Die Byteposition des Fehlers in einer SQL-Anweisung. Gab es keine
        Anweisung, dann ist dies 0. | 
| sqltext | string | Der Text der SQL-Anweisung. Gab es keine Anweisung, dann ist dies eine leere Zeichenkette. | 
| Version | Beschreibung | 
|---|---|
| 8.0.0, PECL OCI8 3.0.0 | connection_or_statementist jetzt nullable
       (akzeptiert dennull-Wert). | 
Beispiel #1 Zeigt die Oracle-Fehlermeldung nach einem Verbindungsfehler an
<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
    $e = oci_error();   // bei oci_connect-Fehlern keine Kennung übergeben
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Beispiel #2 Zeigt die Oracle-Fehlermeldung nach einem Parser-Fehler an
<?php
$stid = oci_parse($conn, "select ' from dual");  // fehlerhaftes Anführungszeichen
if (!$stid) {
    $e = oci_error($conn);  // bei oci_parse-Fehlern Verbindungskennung übergeben
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Beispiel #3 Anzeigen der Oracle-Fehlermeldung, der problematischen Anweisung und der Position des Problems nach einem Ausführungsfehler
<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid); // bei oci_execute-Fehlern die Anweisungskennung übergeben
    print htmlentities($e['message']);
    print "\n<pre>\n";
    print htmlentities($e['sqltext']);
    printf("\n%".($e['offset']+1)."s", "^");
    print  "\n</pre>\n";
}
?>