Start · Sprachen · PHP · Referenz · ocicollappend

ocicollappend

Funktion

Veralteter Alias von <code>OCICollection::append()</code> — fügt einem OCI-Collection-Objekt einen Wert am Ende an.

seit PHP 5.0.0 Kategorie: db

Signatur

ocicollappend(OCICollection $collection, mixed $value): bool

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

Typ
bool
Beschreibung
Gibt 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.