Signatur
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
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);
?>
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);
?>
// 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.