oci_server_version
oci_set_client_identifier
OCI8 関数
PHP Manual

# oci_set_action

(PHP 5.3.2, PECL OCI8 >= 1.4.0)

oci_set_action — アクション名を設定します

### 説明

bool oci_set_action ( resource `$connection` , string `$action_name` )

Oracle が追跡するアクション名を設定します

PHP からデータベースへの次の「ラウンドトリップ」が起きると、 アクション名がデータベースに登録されます。これは一般的にSQLステートメントが実行されるときに起こります。

V$SESSION のようなデータベース管理ビューから、 アクション名を後に問い合わせることができます。 それは例えば、 V$SQLAREA 及び DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE と一緒に追跡とモニタリングのために使われることができます。

この関数で設定した値は、持続的接続をまたがって保持される可能性があります。

### パラメータ

`connection`

  oci_connect()、oci_pconnect() あるいは oci_new_connect() が返す Oracle 接続 ID。

`action_name`

  ユーザーが選んだ、長さが最高32バイトの文字列。

### 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

### 例

例1 アクションを設定する

`<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// アクションを登録する
oci_set_action($c, 'Friend Lookup');
// クエリを実行することで、ラウンドトリップを起こすコードの例:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
sleep(30);
?>`

    // スクリプトを実行中、管理者は実行されるアクションを見ることができる

    sqlplus system/welcome
    SQL> select action from v$session;

### 注意

> 注意: Oracle のバージョン
> この関数が使えるのは、PHP をバージョン 10g 以降の Oracle データベースライブラリとリンクさせた場合だけです。

ヒント

# パフォーマンス

古いバージョンの OCI8 や Oracle データベースでは、クライアントの情報を Oracle の DBMS_APPLICATION_INFO パッケージで設定することができました。 それよりも oci_set_client_info() を使うほうが効率的です。

警告

# データベースとのやりとりに関するメモ

OCI8 関数の中には、データベースとのやりとりを伴わないものもあります。 たとえば、結果のキャッシングが有効になっている場合、 クエリを実行してもデータベースとのやりとりを行わない可能性があります。

### 参考

- oci_set_module_name() - モジュール名を設定します
- oci_set_client_info() - クライアント情報を設定します
- oci_set_client_identifier() - クライアント識別子を設定します

oci_server_version
oci_set_client_identifier
OCI8 関数
PHP Manual