PHP Conference Nagoya 2025

oci_set_edition

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

oci_set_editionデータベース・エディション を設定します

説明

oci_set_edition(string $edition): bool

後続の接続で使用する、オブジェクトのデータベース・エディション を設定します。

オラクル・エディション により、同じスキーマ名とオブジェクト名を使って、複数のバージョンのアプリケーションが稼動できます。これは、稼動中のシステムをアップグレードするときに便利です。

oci_connect(), oci_pconnect()oci_new_connect() を呼び出す前に、oci_set_edition() をコールして下さい。

データベースで無効なエディションが設定されると、たとえ oci_set_edition() が成功しても接続は失敗します。

持続的接続を使用している場合、リクエストされたエディション設定値による接続がもしすでにあれば、それが再利用されます。それ以外の場合、持続的接続が別途作成されます。

パラメータ

edition

SQLコマンド "CREATE EDITION" であらかじめ作成されたオラクル・データベース・エディション名

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 異なるバージョンの myfunc() が利用できる例

<?php

// File 1

echo "Version 1 of application\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
"The result is $r\n";

?>
<?php

// File 2

echo "Version 2 of application\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
"The result is $r\n";

?>

注意

注意: Oracle バージョン必要条件

この関数は Oracle 11gR2 以降で利用可能です

警告

持続的接続

持続的接続を使用しているときに "ALTER SESSION SET EDITION" を使ってデータベース・エディションを変更してはいけません。これは設定の不整合や予想外のエラーを避けるためです。

警告

DRCP 接続プーリング

Oracle 11.2.0.1 でエディションや DRCP を使用する際の設定の不整合や予想外のエラーを避けるため、oci8.connection_class と アプリケーションで使用されるエディション名との間が1対1の対応になるように保ってください。 与えられた接続クラスのプールされたサーバーはそれぞれ、1つのエディションだけで使われるべきです。 この制約は、Oracle 11.2.0.2 以降ではなくなりました。

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top