PHP Conference Japan 2024

oci_set_edition

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_edition设置数据库版本

描述

oci_set_edition(字符串 $edition): 布尔值

设置后续连接将使用的对象的数据库“版本”。

Oracle 版本允许应用程序的并发版本使用相同的模式和对象名称运行。这对于升级活动系统很有用。

在调用 oci_connect()oci_pconnect()oci_new_connect() 之前,调用 oci_set_edition()

如果设置的版本在数据库中无效,则即使 oci_set_edition() 返回成功,连接也会失败。

当使用持久连接时,如果具有请求的版本设置的连接已经存在,则会重用它。否则,将创建不同的持久连接

参数

版本

之前使用 SQL "CREATE EDITION" 命令创建的 Oracle 数据库版本名称。

返回值

成功时返回 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 连接池

为避免在使用版本和 DRCP 与 Oracle 11.2.0.1 时出现不一致和意外错误,请在 oci8.connection_class 和应用程序使用的版本名称之间保持一对一对应关系。给定连接类的每个池化服务器都应仅与一个版本一起使用。此限制已在 Oracle 11.2.0.2 中删除。

添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top