« oci_set_db_operation
oci_set_module_name »

oci_set_edition

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

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

説明

function 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 以降ではなくなりました。

関連キーワード:
エディション   edition   接続   データベース   connect   持続的   Oracle   myfunc   オラクル   アプリケーション   稼動   成功   application   welcome   localhost   parse   begin   bind   execute   不整合   予想外   operation   module   後続   スキーマ
関連する関数・ページ:
function.db2-close   function.oci-set-module-name   function.oci-pconnect   oci8.connection   function.db2-pclose   ref.pdo-oci.connection