Signatur
Beschreibung
ocicolumntyperaw ist ein veralteter Alias der Funktion oci_field_type_raw. Er gibt den internen numerischen Oracle-Datentypcode (OCI-Typkonstante) für eine Spalte eines ausgeführten OCI8-Statements zurück. Dieser Rohwert entspricht dem Oracle-internen Typ-Identifier, der sich von den lesbaren PHP-Typnamen unterscheidet, die oci_field_type liefert.
Typische Anwendungsfälle sind Low-Level-Introspektion von Oracle-Ergebnismengen, etwa wenn man das genaue Verhalten der Typumwandlung nachvollziehen oder bestimmte Oracle-Typen (z. B. INTERVAL, ROWID, CLOB) anhand ihrer numerischen Codes unterscheiden möchte.
Die Spalte kann entweder über ihren 1-basierten numerischen Index oder über ihren Namen (Groß-/Kleinschreibung unerheblich) angegeben werden. Das Statement muss zuvor mit oci_execute ausgeführt worden sein.
Hinweis: Diese Funktion ist ein Alias und sollte in modernem Code durch oci_field_type_raw ersetzt werden, da Aliase in zukünftigen PHP-Versionen entfernt werden können.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $statement Pflicht | resource | Ein gültiges, bereits ausgeführtes OCI8-Statement-Handle, wie es von oci_parse und oci_execute erzeugt wird. |
|
| $column Pflicht | int|string | Spaltenindex (1-basiert) oder Spaltenname (Groß-/Kleinschreibung wird ignoriert) der gewünschten Spalte im Ergebnis. |
Rückgabewert
false zurückgegeben.Beispiele
Rohen Oracle-Datentypcode einer Spalte ermitteln
<?php
$conn = oci_connect('user', 'password', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT employee_id, hire_date, salary FROM employees WHERE ROWNUM = 1');
oci_execute($stid);
$numCols = oci_num_fields($stid);
for ($i = 1; $i <= $numCols; $i++) {
$name = oci_field_name($stid, $i);
$rawType = ocicolumntyperaw($stid, $i);
echo "Spalte: $name => Oracle-Rohtyp-Code: $rawType\n";
}
oci_free_statement($stid);
oci_close($conn);
Spalte über Namen ansprechen
<?php
$conn = oci_connect('user', 'password', 'localhost/XE');
$stid = oci_parse($conn, 'SELECT job_title FROM jobs WHERE ROWNUM = 1');
oci_execute($stid);
// Spalte über Namen (case-insensitiv)
$rawType = ocicolumntyperaw($stid, 'JOB_TITLE');
echo "Rohtyp-Code fuer JOB_TITLE: $rawType\n";
// VARCHAR2 in Oracle hat den Code 1
oci_free_statement($stid);
oci_close($conn);
// Wichtig · Fallstricke
Deprecated-Hinweis: ocicolumntyperaw ist ein Prozedural-Alias für oci_field_type_raw. Alle OCI8-Aliasnamen ohne Unterstrich (z. B. ocifetch, ociparse) gelten als veraltet. Für neuen Code sollte ausschließlich oci_field_type_raw verwendet werden.
Die zurückgegebenen numerischen Codes sind Oracle-interne Typ-IDs (z. B. 1 = VARCHAR2, 2 = NUMBER, 12 = DATE, 23 = RAW, 96 = CHAR). Diese Werte sind in der Oracle-OCI-Dokumentation definiert und können sich zwischen Oracle-Versionen unterscheiden.
Diese Funktion setzt eine korrekt installierte OCI8-Erweiterung sowie eine aktive Oracle-Datenbankverbindung voraus.