(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_edition — Establece la edición de la base de datos
Establece la "edición" de la base de datos de objetos que van a se utilizada por conexiones subsiguientes.
Las ediciones de Oracle permiten la ejecución de aplicaciones de versiones concurrentes usando el mismo esquema y nombres de objetos. Esto es útil para actualizar sistemas en vivo.
Se ha de llamar a oci_set_edition() antes de invocar a oci_connect(), oci_pconnect() o oci_new_connect().
Si se establece en la base de datos una edición que no es válida, la conexión fallará incluso si oci_set_edition() tiene éxito.
Cuando se usan conexiones persistentes, si una conexión con la edición establecida solicitada ya existe, será reutilizada. De lo contrario, se creará una conexión persistente diferente.
edition
El nombre de la edición de Oracle Database anteriormente creada con el comando
SQL "CREATE EDITION
".
Nota: Requisitos de la versión de Oracle
Esta función está disponible desde Oracle 11gR2 en adelante.
Para evitar inconsistencias y errores inesperados, no use ALTER SESSION SET EDITION para cambiar la edición en conexiones persistentes.
Para evitar inconsistencias y errores inesperados cuando se utilizan ediciones y DRCP con Oracle 11.2.0.1, mantenga una correspondencia uno-a-uno entre oci8.connection_class y el nombre de la edición usado por las aplicaciones. Cada servidor de la agrupación de una clase de conexión dada debería ser usado únicamente con una edición. Esta restricción se ha eliminado con Oracle 11.2.0.2.
Ejemplo #1 Dos scripts pueden usar diferentes versiones de myfunc() a la vez
<?php
// Fichero 1
echo "Versión 1 de la aplicación\n";
oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');
$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "El resultado es $r\n";
?>
<?php
// Fichero 2
echo "Versión 2 de la aplicación\n";
oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');
$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "El resultado es $r\n";
?>