Start · Sprachen · PHP · Referenz · ocicolumnsize

ocicolumnsize

Funktion

Veralteter Alias von <code>oci_field_size()</code> – gibt die maximale Feldgröße einer Spalte eines OCI-Statements zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

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

Beschreibung

ocicolumnsize() ist ein veralteter Alias der Funktion oci_field_size() und liefert die maximale Größe (in Bytes) eines Feldes innerhalb eines ausgeführten OCI8-Statements. Die Funktion ist Teil der Oracle-Datenbankschnittstelle (OCI8) für PHP.

Als Alias verhält sich ocicolumnsize() identisch zu oci_field_size(). Die Spalte kann entweder über ihren Namen (als String) oder über ihre 1-basierte Position (als Integer) referenziert werden.

Die Funktion ist nützlich, wenn man Metainformationen zu Abfrageergebnissen benötigt, etwa um dynamisch Ausgaben zu formatieren oder Puffergrößen zu bestimmen. Für neue Projekte sollte jedoch ausschließlich oci_field_size() verwendet werden, da Aliasnamen wie ocicolumnsize() in zukünftigen PHP-Versionen entfernt werden könnten.

Wichtig: Das Statement muss vor dem Aufruf bereits mit oci_execute() ausgeführt worden sein, damit die Spaltenmetadaten verfügbar sind.

Parameter

Name Typ Default Beschreibung
$statement Pflicht resource Ein gültiges OCI8-Statement-Resource, das zuvor mit oci_parse() erstellt und mit oci_execute() ausgeführt wurde.
$column Pflicht string|int Name der Spalte (Groß-/Kleinschreibung wird ignoriert) als String oder die 1-basierte Position der Spalte als Integer.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die maximale Feldgröße in Bytes als int zurück. Bei einem Fehler (z. B. ungültige Spalte oder ungültiges Statement) wird false zurückgegeben.

Beispiele

Feldgröße einer Spalte über den Spaltennamen ermitteln

<?php
$conn = oci_connect('benutzername', 'passwort', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$sql = 'SELECT vorname, nachname, email FROM mitarbeiter';
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);

// Feldgröße über Spaltenname (Alias für oci_field_size)
$groesse = ocicolumnsize($stmt, 'EMAIL');
echo "Maximale Größe der Spalte EMAIL: " . $groesse . " Bytes\n";

oci_free_statement($stmt);
oci_close($conn);
?>
Maximale Größe der Spalte EMAIL: 255 Bytes

Feldgrößen aller Spalten eines Statements ausgeben

<?php
$conn = oci_connect('benutzername', 'passwort', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$sql = 'SELECT id, vorname, nachname FROM mitarbeiter';
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);

$anzahlSpalten = oci_num_fields($stmt);
for ($i = 1; $i <= $anzahlSpalten; $i++) {
    $name   = oci_field_name($stmt, $i);
    $groesse = ocicolumnsize($stmt, $i); // Position als Integer
    echo "Spalte $name: max. $groesse Bytes\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>
Spalte ID: 22 Bytes Spalte VORNAME: 100 Bytes Spalte NACHNAME: 100 Bytes

// Wichtig · Fallstricke

Deprecation-Hinweis: ocicolumnsize() ist ein veralteter Alias und sollte in neuem Code nicht mehr verwendet werden. Verwende stattdessen oci_field_size(), um Kompatibilität mit zukünftigen PHP-Versionen sicherzustellen.

Die Funktion steht nur zur Verfügung, wenn die OCI8-Erweiterung installiert und aktiviert ist. Diese Erweiterung muss separat kompiliert oder als PECL-Paket eingebunden werden.

Bei Spalten vom Typ CLOB, BLOB oder LONG kann die zurückgegebene Größe den tatsächlich gespeicherten Inhalt weit überschreiten, da hier die maximale Kapazität angegeben wird.