array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.oci-set-edition.php', 1 => 'oci_set_edition', ), 'up' => array ( 0 => 'ref.oci8.php', 1 => 'OCI8 Функции', ), 'prev' => array ( 0 => 'function.oci-set-db-operation.php', 1 => 'oci_set_db_operation', ), 'next' => array ( 0 => 'function.oci-set-module-name.php', 1 => 'oci_set_module_name', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/oci8/functions/oci-set-edition.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_edition — Задаёт выпуск (edition) базы данных
Задаёт "серию" объектов для использования на нижестоящих соединениях.
Подобные "выпуски" Oracle позволяют запускать приложения, использующие одинаковые схемы и имена объектов в конкурентном режиме. Это может быть полезным при модернизации работающих систем без их отключения.
Вызывайте oci_set_edition() до вызова oci_connect(), oci_pconnect() или oci_new_connect().
Если заданный выпуск является недопустимым в базе данных, соединение не будет устанавливаться, даже если функция oci_set_edition() успешно выполнится.
При использовании постоянных соединений, если соединение с данным значением серии уже существует, оно будет использовано повторно. В остальных случаях будет создаваться новое соединение.
edition
Имя "выпуска" базы данных Oracle, ранее созданное
SQL командой "CREATE EDITION
".
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Два скрипта могут использовать различные версии функции myfunc() одновременно
<?php
// Файл 1
echo "Версия приложения 1\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 "Результат: $r\n";
?>
<?php
// Файл 2
echo "Версия приложения 2\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 "Результат: $r\n";
?>
Замечание: Требование к версии Oracle
Эта функция доступна, начиная с Oracle 11gR2.
Во избежание несовместимости и случайных ошибок не используйте команду "ALTER SESSION SET EDITION" для изменения "серии" на постоянных соединениях.
Во избежание несовместимости и случайных ошибок при использовании серий и DRCP в Oracle 11.2.0.1 придерживайтесь однозначного соответствия между oci8.connection_class и именем "выпуска", которым пользуются приложения. Каждый сервер, входящий в состав пула с заданным классом соединений, должен использоваться только с одним "выпуском". Это ограничение устранено в версии Oracle 11.2.0.2.