Start · Sprachen · PHP · Referenz · ocicollmax

ocicollmax

Funktion

Alias für <code>OCICollection::max()</code> — gibt die maximale Anzahl von Elementen zurück, die eine OCI-Collection aufnehmen kann.

seit PHP 5.0.0 Kategorie: db

Signatur

ocicollmax(OCICollection $collection): int|false

Beschreibung

ocicollmax() ist ein Alias der Methode OCICollection::max() und gibt die maximale Kapazität einer Oracle-Collection zurück. Eine Collection (Sammlung) ist ein Oracle-Datenbanktyp, der mehrere Werte eines bestimmten Typs unter einem einzigen Namen zusammenfasst.

Die Funktion ist nützlich, um vor dem Einfügen von Elementen zu prüfen, ob die Collection noch freie Kapazität besitzt. Gibt die Funktion -1 zurück, ist die Collection unbegrenzt (z. B. bei VARRAY-Typen ohne explizites Limit oder bei TABLE-Typen).

Hinweis: Diese Funktion ist ein Alias und existiert nur aus Kompatibilitätsgründen. In neuem Code sollte direkt die objektorientierte Methode OCICollection::max() verwendet werden.

Die OCI8-Extension muss aktiviert sein und eine gültige Oracle-Verbindung muss bestehen, um Collections anlegen und nutzen zu können.

Parameter

Name Typ Default Beschreibung
$collection Pflicht OCICollection Eine gültige OCICollection-Instanz, die zuvor z. B. mit oci_new_collection() erstellt wurde.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die maximale Anzahl von Elementen der Collection als int zurück. Der Wert -1 bedeutet, dass die Collection keine Größenbeschränkung hat. Bei einem Fehler wird false zurückgegeben.

Beispiele

Maximale Kapazität einer Oracle-Collection ermitteln

<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');

if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Eine Collection vom Typ VARRAY mit maximal 10 Elementen erstellen
// Voraussetzung: Typ 'MY_VARRAY_TYPE' ist in der DB definiert
$collection = oci_new_collection($conn, 'MY_VARRAY_TYPE');

if ($collection) {
    $max = ocicollmax($collection);
    if ($max === false) {
        echo "Fehler beim Abrufen der maximalen Größe.\n";
    } elseif ($max === -1) {
        echo "Die Collection hat keine Größenbeschränkung.\n";
    } else {
        echo "Maximale Anzahl von Elementen: " . $max . "\n";
    }
    $collection->free();
}

oci_close($conn);
?>
Maximale Anzahl von Elementen: 10

Objektorientierter Ansatz (bevorzugte Methode)

<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');

if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$collection = oci_new_collection($conn, 'MY_VARRAY_TYPE');

if ($collection) {
    // Bevorzugte OOP-Schreibweise statt des Alias ocicollmax()
    $max = $collection->max();
    echo "Max. Elemente (OOP): " . $max . "\n";
    $collection->free();
}

oci_close($conn);
?>
Max. Elemente (OOP): 10

// Wichtig · Fallstricke

Deprecation: ocicollmax() ist ein veralteter Alias. Ab PHP 8.0 wurden viele alte OCI8-Aliasfunktionen als deprecated markiert. Es wird empfohlen, stattdessen die Methode OCICollection::max() direkt zu verwenden.

Für den Einsatz dieser Funktion muss die PHP-Extension oci8 installiert und aktiviert sein sowie eine gültige Oracle-Datenbankverbindung bestehen. Ohne installierte OCI8-Extension steht die Funktion nicht zur Verfügung.