Signatur
Beschreibung
ocicolumntype() ist ein veralteter Alias der Funktion oci_field_type() und gibt den Oracle-Datentyp einer bestimmten Spalte eines ausgeführten Statements zurück. Die Spalte wird dabei über ihren 1-basierten Index angegeben.
Die Funktion ist Teil der alten OCI8-API (vor PHP 5), die auf einer prozeduralen Schnittstelle mit nicht-einheitlichen Funktionsnamen basierte. Mit PHP 5 wurde die API vereinheitlicht; seitdem ist oci_field_type() der bevorzugte Name. ocicolumntype() steht als Alias zur Verfügung, sollte aber in neuem Code nicht mehr verwendet werden.
Typische Rückgabewerte sind Oracle-spezifische Typbezeichnungen wie VARCHAR2, NUMBER, DATE, CLOB, BLOB, RAW usw. Das Ergebnis kann beispielsweise genutzt werden, um die Verarbeitung von Spaltenwerten typabhängig zu steuern.
Das Statement muss zuvor mit oci_execute() ausgeführt worden sein, damit Spalteninformationen verfügbar sind.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $statement Pflicht | resource | Ein gültiges OCI8-Statement-Handle, das durch oci_parse() erzeugt und mit oci_execute() ausgeführt wurde. |
|
| $column Pflicht | int | Der 1-basierte Index der Spalte im Ergebnisset (erste Spalte = 1). |
Rückgabewert
VARCHAR2, NUMBER, DATE). Bei einem Fehler oder ungültigem Spaltenindex wird false zurückgegeben.Beispiele
Spaltentypen einer Oracle-Abfrage ausgeben
<?php
$conn = ocilogon('benutzer', 'passwort', 'datenbank');
$stmt = ociparse($conn, 'SELECT mitarbeiter_id, name, einstellungsdatum FROM mitarbeiter');
ociexecute($stmt);
$numCols = ocinumcols($stmt);
for ($i = 1; $i <= $numCols; $i++) {
$colName = ocicolumnname($stmt, $i);
$colType = ocicolumntype($stmt, $i);
echo "Spalte $i: $colName — Typ: $colType\n";
}
ocilogoff($conn);
Moderne Variante mit oci_field_type()
<?php
// Empfohlene moderne Alternative zu ocicolumntype()
$conn = oci_connect('benutzer', 'passwort', 'datenbank');
$stmt = oci_parse($conn, 'SELECT produkt_id, beschreibung, preis FROM produkte');
oci_execute($stmt);
$numCols = oci_num_fields($stmt);
for ($i = 1; $i <= $numCols; $i++) {
$typ = oci_field_type($stmt, $i);
echo oci_field_name($stmt, $i) . ': ' . $typ . "\n";
}
oci_free_statement($stmt);
oci_close($conn);
// Wichtig · Fallstricke
Veraltet: ocicolumntype() ist ein Alias aus der alten OCI8-API und sollte in neuem Code nicht mehr verwendet werden. Nutze stattdessen oci_field_type().
Der Alias ist weiterhin vorhanden, solange die OCI8-Extension mit aktivierten alten Aliasnamen kompiliert wurde (Standard). In manchen Umgebungen können die alten Aliasnamen deaktiviert sein, was zu einem Funktions-nicht-gefunden-Fehler führt.