Signatur
Beschreibung
ocicollappend() ist ein veralteter Prozedur-Alias für die Methode OCICollection::append(). Die Funktion hängt einen neuen Wert an das Ende einer Oracle-Collection (z. B. eines VARRAY- oder TABLE-Typs) an, die zuvor über oci_new_collection() erzeugt wurde.
Oracle-Collections werden eingesetzt, wenn komplexe, mengenwertige Datentypen an PL/SQL-Prozeduren oder -Funktionen übergeben oder von diesen empfangen werden sollen. Mit ocicollappend() lassen sich solche Collections schrittweise mit Werten befüllen, bevor sie an eine Datenbankoperation übergeben werden.
Hinweis zur Deprecation: Der Alias ocicollappend() gilt seit PHP 8.0 als veraltet (deprecated). Es sollte stattdessen die objektorientierte Schreibweise OCICollection::append() auf einem OCICollection-Objekt verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $collection Pflicht | OCICollection | Ein gültiges OCICollection-Objekt, das zuvor mit oci_new_collection() erstellt wurde. |
|
| $value Pflicht | mixed | Der Wert, der am Ende der Collection eingefügt werden soll. Der Typ muss zum Basistyp der Oracle-Collection passen (z. B. String für VARCHAR2-Collections). |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. wenn die Collection ungültig ist oder der Werttyp nicht passt).Beispiele
Collection befüllen und an PL/SQL übergeben (prozedural, veraltet)
<?php
$conn = oci_connect('benutzername', 'passwort', 'datenbankDSN');
// Collection vom Typ MY_SCHEMA.STRING_TABLE erstellen
$collection = oci_new_collection($conn, 'STRING_TABLE', 'MY_SCHEMA');
// Werte anhängen (veraltete prozedurale Schreibweise)
ocicollappend($collection, 'Erster Eintrag');
ocicollappend($collection, 'Zweiter Eintrag');
ocicollappend($collection, 'Dritter Eintrag');
$stmt = oci_parse($conn, 'BEGIN my_schema.verarbeite_liste(:liste); END;');
oci_bind_by_name($stmt, ':liste', $collection, -1, OCI_B_NTY);
oci_execute($stmt);
$collection->free();
oci_close($conn);
?>
Empfohlene OOP-Schreibweise mit OCICollection::append()
<?php
$conn = oci_connect('benutzername', 'passwort', 'datenbankDSN');
// Collection erstellen
$collection = oci_new_collection($conn, 'STRING_TABLE', 'MY_SCHEMA');
// Empfohlene objektorientierte Schreibweise
$collection->append('Erster Eintrag');
$collection->append('Zweiter Eintrag');
$collection->append('Dritter Eintrag');
$stmt = oci_parse($conn, 'BEGIN my_schema.verarbeite_liste(:liste); END;');
oci_bind_by_name($stmt, ':liste', $collection, -1, OCI_B_NTY);
oci_execute($stmt);
$collection->free();
oci_close($conn);
?>
// Wichtig · Fallstricke
Deprecation: ocicollappend() ist ein veralteter Alias und sollte in neuem Code nicht mehr verwendet werden. Ab PHP 8.0 erzeugt die Verwendung eine Deprecation Notice. Verwende stattdessen die Methode OCICollection::append().
Die Collection muss mit dem korrekten Oracle-Typnamen und optional dem Schema erstellt worden sein. Ein falscher Typname führt zu einem OCI-Fehler beim Erstellen der Collection. Der angehängte Wert muss dem Basisdatentyp der Collection entsprechen, da Oracle andernfalls einen Typfehler wirft.