Start · Sprachen · PHP · Referenz · ocicolumntype

ocicolumntype

Funktion

Alias von <code>oci_field_type()</code> — gibt den Datentyp einer Oracle-Spalte als Zeichenkette zurück.

seit PHP 4.0.0 Kategorie: db

Signatur

ocicolumntype(resource $statement, int $column): string|false

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

Typ
string|false
Beschreibung
Gibt den Oracle-Datentypnamen der Spalte als Zeichenkette zurück (z. B. 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);
Spalte 1: MITARBEITER_ID — Typ: NUMBER Spalte 2: NAME — Typ: VARCHAR2 Spalte 3: EINSTELLUNGSDATUM — Typ: DATE

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);
PRODUKT_ID: NUMBER BESCHREIBUNG: VARCHAR2 PREIS: NUMBER

// 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.