ヘッダーをスキップ
Oracle® Call Interfaceプログラマーズ・ガイド
11g リリース2 (11.2)
E50264-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

A ハンドルおよび記述子の属性

この付録では、OCIのハンドルおよび記述子の属性について説明します。この属性はOCIAttrGet()関数で読み取り、OCIAttrSet()関数で変更することができます。

この付録では、次の項目について説明します。

表記規則

それぞれのハンドル・タイプで読取りまたは変更が可能な属性をリストします。各属性リストには、次の情報が含まれています。

モード

有効なモードは次のとおりです。

READ - OCIAttrGet()を使用して属性を読み取ります。

WRITE - OCIAttrSet()を使用して属性を変更します。

READ/WRITE - OCIAttrGet()を使用して属性を読み取り、OCIAttrSet()を使用して属性を変更します。

説明

これは、属性の用途の説明です。

属性のデータ型

これは、属性のデータ型です。必要に応じて、READモードとWRITEモードのデータ型が区別されます。

有効な値

一定の値のみが許可される場合には、その値を記載します。

一部の属性については例が記載されています。

環境ハンドル属性

環境ハンドルには、次の属性を使用します。

OCI_ATTR_ALLOC_DURATION

モード

READ/WRITE

説明

この属性は、環境ハンドルに対応付けられたアプリケーションの割当て時間にOCI_DURATION_DEFAULTの値を設定します。

属性のデータ型

OCIDuration */OCIDuration

OCI_ATTR_BIND_DN

モード

READ/WRITE

説明

LDAPサーバーへの接続時に使用するログイン名(DN)です。

属性のデータ型

oratext **/oratext *

OCI_ATTR_CACHE_ARRAYFLUSH

モード

READ/WRITE

説明

この属性がTRUEに設定されている場合は、OCICacheFlush()のコールによって、共通の表に属するオブジェクトがフラッシュされるため、パフォーマンスを大幅に向上することができます。TRUEの属性値は、オブジェクトのフラッシュの順序が重要でない場合にのみ使用します。属性値がTRUEに設定されているときは、オブジェクトが使用済としてマークされる順序の維持は保証されません。

属性のデータ型

boolean */boolean

OCI_ATTR_CACHE_MAX_SIZE

モード

READ/WRITE

説明

最適サイズのパーセンテージとして、クライアント側オブジェクト・キャッシュの最大サイズ(最高水位標)を設定します。通常、この値を最適サイズOCI_ATTR_CACHE_OPT_SIZEの10% (デフォルト)に設定できます。この属性を0に設定すると、値10が使用されます。オブジェクト・キャッシュは最大の最適値を使用して、オブジェクト・キャッシュ内の未使用メモリーを解放します。

属性のデータ型

ub4 */ub4

OCI_ATTR_CACHE_OPT_SIZE

モード

READ/WRITE

説明

クライアント側オブジェクト・キャッシュの最適サイズをバイト数で設定します。デフォルト値は8MBです。この属性を0に設定すると、8MBの値が使用されます。

属性のデータ型

ub4 */ub4

OCI_ATTR_ENV_CHARSET_ID

モード

READ

説明

ローカル(クライアント側)キャラクタ・セットIDです。ユーザーは、環境ハンドルの作成後にこの設定を更新できますが、他のOCI関数をコールする前に行う必要があります。この制限によって、同じ環境ハンドル内のデータおよびメタデータ間の整合性が保証されます。キャラクタ・セットIDがUTF-16の場合、この属性を取得できません。

属性のデータ型

ub2 *

OCI_ATTR_ENV_NCHARSET_ID

モード

READ

説明

ローカル(クライアント側)各国語キャラクタ・セットIDです。ユーザーは、環境ハンドルの作成後にこの設定を更新できますが、他のOCI関数をコールする前に行う必要があります。この制限によって、同じ環境ハンドル内のデータおよびメタデータ間の整合性が保証されます。キャラクタ・セットIDがUTF-16の場合、この属性を取得できません。

属性のデータ型

ub2 *

OCI_ATTR_ENV_UTF16

モード

READ

説明

エンコーディング方法はUTF-16です。値1は、エンコーディング方法がUTF-16のときに環境ハンドルが作成されたことを示し、値0はそれ以外であることを示します。この属性値はOCIEnvCreate()のコールでのみ設定でき、後で変更することはできません。

属性のデータ型

ub1 *

OCI_ATTR_EVTCBK

モード

WRITE

説明

この属性は、イベント・コールバック関数を登録します。

属性のデータ型

OCIEventCallback

OCI_ATTR_EVTCTX

モード

WRITE

説明

この属性は、イベント・コールバックに渡されるコンテキストを登録します。

属性のデータ型

void *

OCI_ATTR_HEAPALLOC

モード

READ

説明

環境ハンドルから割り当てられたメモリーのカレント・サイズです。これは、アプリケーション内でメモリーが最も使用されている部分を追跡するのに役立ちます。

属性のデータ型

ub4 *

OCI_ATTR_LDAP_AUTH

モード

READ/WRITE

説明

認証モードです。次に示す値が有効です。

0x0: 認証なし。匿名のバインドです。

0x1: 簡易認証。ユーザー名およびパスワードによる認証です。

0x5: 認証なしのSSL接続。

0x6: SSL: サーバー認証のみ必要です。

0x7: SSL: サーバー認証とクライアント認証の両方が必要です。

0x8: 認証方式は実行時に判断されます。

属性のデータ型

ub2 */ub2

OCI_ATTR_LDAP_CRED

モード

READ/WRITE

説明

認証方式が簡易認証(ユーザー名およびパスワードによる認証)の場合、この属性には、LDAPサーバーへの接続時に使用するパスワードが保持されます。

属性のデータ型

oratext **/oratext *

OCI_ATTR_LDAP_CTX

モード

READ/WRITE

説明

クライアントの管理コンテキストです。通常は、LDAPサーバー内のOracle Database LDAPスキーマのルートです。

属性のデータ型

oratext **/oratext *

OCI_ATTR_LDAP_HOST

モード

READ/WRITE

説明

LDAPサーバーが実行されているホスト名です。

属性のデータ型

oratext **/oratext *

OCI_ATTR_LDAP_PORT

モード

READ/WRITE

説明

LDAPサーバーがリスニングするポートです。

属性のデータ型

ub2 */ub2

OCI_ATTR_OBJECT

モード

READ

説明

環境がオブジェクト・モードで初期化されている場合は、TRUEを戻します。

属性のデータ型

boolean *

OCI_ATTR_PINOPTION

モード

READ/WRITE

説明

この属性は、環境ハンドルに対応付けられたアプリケーションにOCI_PIN_DEFAULTの値を設定します。

たとえば、OCI_ATTR_PINOPTIONOCI_PIN_RECENTに設定されている場合に、pin_optionパラメータがOCI_PIN_DEFAULTに設定されているOCIObjectPin()をコールすると、オブジェクトはOCI_PIN_RECENTモードで確保されます。

属性のデータ型

OCIPinOpt */OCIPinOpt

OCI_ATTR_OBJECT_NEWNOTNULL

モード

READ/WRITE

説明

この属性がTRUEに設定されている場合は、新規に作成されるオブジェクトにNULL以外の属性が設定されます。

属性のデータ型

boolean */boolean

OCI_ATTR_OBJECT_DETECTCHANGE

モード

READ/WRITE

説明

この属性がTRUEに設定されている場合は、コミットされた別のトランザクションによってサーバー内で変更されたオブジェクトのフラッシュを試行すると、アプリケーションがORA-08179エラーを受け取ります。

属性のデータ型

boolean */boolean

OCI_ATTR_PIN_DURATION

モード

READ/WRITE

説明

この属性は、環境ハンドルに対応付けられたアプリケーションの確保継続時間にOCI_DURATION_DEFAULTの値を設定します。

属性のデータ型

OCIDuration */OCIDuration

OCI_ATTR_SHARED_HEAPALLOC

モード

READ

説明

共有プールから現在割り当てられているメモリーのサイズを戻します。この属性はどの環境ハンドルでも使用できますが、有効な値を戻すには、プロセスを共有モードで初期化する必要があります。この属性は次のように読み取られます。

ub4 heapsz = 0;
OCIAttrGet((void *)envhp, (ub4)OCI_HTYPE_ENV,
           (void *) &heapsz, (ub4 *) 0,
           (ub4)OCI_ATTR_SHARED_HEAPALLOC, errhp);
属性のデータ型

ub4 *

OCI_ATTR_WALL_LOC

モード

READ/WRITE

説明

認証方式がSSL認証の場合、この属性にはクライアントWalletの位置が格納されます。

属性のデータ型

oratext **/oratext *

エラー・ハンドル属性

エラー・ハンドルには、次の属性を使用します。

OCI_ATTR_DML_ROW_OFFSET

モード

READ

説明

エラーが発生した(DML配列の)オフセットを戻します。

属性のデータ型

ub4 *

サービス・コンテキスト・ハンドル属性

サービス・コンテキスト・ハンドルには、次の属性を使用します。

OCI_ATTR_ENV

モード

READ

説明

サービス・コンテキストに対応付けられた環境コンテキストを戻します。

属性のデータ型

OCIEnv **

OCI_ATTR_IN_V8_MODE

モード

READ

説明

アプリケーションが(OCISvcCtxToLda()コールなどによって)Oracleバージョン7モードに切り替えられているかどうかを判断できます。戻り値が0 (ゼロ)以外(TRUE)の場合、アプリケーションは現在Oracleバージョン8モードで実行されており、戻り値が0 (ゼロ) (FALSE)の場合、アプリケーションは現在Oracleバージョン7モードで実行されています。

属性のデータ型

ub1 *

次のコード例で、この属性の使用方法を示します。

in_v8_mode = 0; 
OCIAttrGet ((void *)svchp, (ub4)OCI_HTYPE_SVCCTX, (ub1 *)&in_v8_mode,  
                    (ub4) 0, OCI_ATTR_IN_V8_MODE, errhp); 
if (in_v8_mode) 
     fprintf (stdout, "In V8 mode\n"); 
else 
     fprintf (stdout, "In V7 mode\n");

OCI_ATTR_SERVER

モード

READ/WRITE

説明

読取りモードでは、サービス・コンテキストのサーバー・コンテキスト属性へのポインタを戻します。

書込みモードでは、サービス・コンテキストのサーバー・コンテキスト属性を設定します。

属性のデータ型

OCIServer ** / OCIServer *

OCI_ATTR_SESSION

モード

READ/WRITE

説明

読取りモードでは、サービス・コンテキストの認証コンテキスト属性へのポインタを戻します。

書込みモードでは、サービス・コンテキストの認証コンテキスト属性を設定します。

属性のデータ型

OCISession **/ OCISession *

OCI_ATTR_STMTCACHE_CBK

モード

READ/WRITE

説明

OCISvcCtxハンドルでアプリケーションのコールバック関数を取得および設定するために使用します。OCISvcCtxで登録すると、この関数は、このサービス・コンテキストに属する文キャッシュ内の文が削除されたとき、またはセッションの終了時にコールされます。

コールバック関数は、次のプロトタイプのものであることが必要です。

sword (*OCICallbackStmtCache)(void *ctx, OCIStmt *stmt, ub4 mode)

ctx: IN引数。これは、アプリケーションが現行の文ハンドルで設定したコンテキストと同じです。

stmt: IN引数。これは、キャッシュから削除された文ハンドルです。

mode: IN引数。これは、コールバック関数がコールされているモードです。現在は、OCI_CBK_STMTCACHE_STMTPURGEという1つの値のみがサポートされており、これは、コールバックが、現行の文の削除中にコールされていることを意味します。

属性のデータ型
sword (*OCICallbackStmtCache)(void *ctx, OCIStmt *stmt, ub4 mode)

OCI_ATTR_STMTCACHESIZE

モード

READ/WRITE

説明

文キャッシュ対応セッションの場合、文キャッシュ・サイズのデフォルトの文数は20です。ユーザーがこの値を増加または減少させるには、サービス・コンテキスト・ハンドルでこの属性を設定します。また、この属性を使用して、プールされている、またはプールされていないセッションの文キャッシュを使用可能または使用不可にできます。文のキャッシュを有効にするには属性のサイズをゼロ以外に設定し、無効にするにはゼロに設定します。

属性のデータ型

ub4 */ ub4

OCI_ATTR_TRANS

モード

READ/WRITE

説明

読取りモードでは、サービス・コンテキストのトランザクション・コンテキスト属性へのポインタを戻します。

書込みモードでは、サービス・コンテキストのトランザクション・コンテキスト属性を設定します。

属性のデータ型

OCITrans ** / OCITrans *

サーバー・ハンドル属性

サーバー・ハンドルには、次の属性を使用します。


関連項目:

次のイベント・ハンドル属性もサーバー・ハンドルで使用できます。

OCI_ATTR_ACCESS_BANNER

モード

READ

説明

ファイルからの不正アクセス・バナーを表示します。

属性のデータ型

oratext **

OCI_ATTR_BREAK_ON_NET_TIMEOUT

モード

READ/WRITE

説明

この属性は、ネットワーク・タイムアウト後に、OCIがブレークを送信するかどうかを判断します。

属性のデータ型

ub1 *

OCI_ATTR_ENV

モード

READ

説明

サーバー・コンテキストに対応付けられた環境コンテキストを戻します。

属性のデータ型

OCIEnv **

OCI_ATTR_EXTERNAL_NAME

モード

READ/WRITE

説明

外部名は、sys.props$.value$に格納されているわかりやすいグローバル名です(ここで、name = 'GLOBAL_DB_NAME')。この名前は、すべてのデータベースがネットワーク・ディレクトリ・サービスで名前を登録していないかぎり、一意であることは保証されません。

分散トランザクションを調整する場合に、データベース名をサーバーと交換できます。サーバー・データベース名には、OCISessionBegin()コールの発行時、データベースがオープンされていた場合のみ、アクセスすることができます。

属性のデータ型

oratext **/ oratext *

OCI_ATTR_FOCBK

モード

READ/WRITE

説明

サーバー・コンテキスト・ハンドルでのフェイルオーバー・コールバックの登録および登録解除の一部として、型OCIFocbkStructのコールバック定義構造体へのフェイルオーバー・コールバックを設定します。

属性のデータ型

OCIFocbkStruct *

OCI_ATTR_INTERNAL_NAME

モード

READ/WRITE

説明

グローバル・トランザクションの実行時に記録されるクライアント・データベース名を設定します。この名前は、障害のために準備状態で保留になっている可能性があるトランザクションを追跡するために、DBAで使用できます。

属性のデータ型

oratext **/ oratext *

OCI_ATTR_IN_V8_MODE

モード

READ

説明

アプリケーションが(OCISvcCtxToLda()コールなどによって)Oracleバージョン7モードに切り替えられているかどうかを判断できます。戻り値が0 (ゼロ)以外(TRUE)の場合、アプリケーションは現在Oracleバージョン8モードで実行されており、戻り値が0 (ゼロ) (FALSE)の場合、アプリケーションは現在Oracleバージョン7モードで実行されています。

属性のデータ型

ub1 *

OCI_ATTR_NONBLOCKING_MODE

モード

READ/WRITE

説明

この属性は、ブロック化モードを判断します。サーバー・コンテキストが非ブロック化モードの場合、読取り時にこの属性値はTRUEを戻します。設定すると、非ブロック化モード属性が切り替えられます。この属性を設定できるのは、OCISessionBegin()またはOCILogon2()がコールされた後でのみです。それ以外の場合はエラーが戻されます。

属性のデータ型

ub1 */ub1

OCI_ATTR_SERVER_GROUP

モード

READ/WRITE

説明

サーバー・グループを指定する、30文字以内の英数字文字列です。この属性は、OCIServerAttach()のコールにのみ設定できます。

属性のデータ型

oratext **/oratext *

OCI_ATTR_SERVER_STATUS

モード

READ

説明

サーバー・ハンドルの現行の状態を戻します。値は次のとおりです。

  • OCI_SERVER_NORMAL- サーバーへのアクティブな接続があります。接続の最後のコールが終了しました。次のコールが終了する保証はありません。

  • OCI_SERVER_NOT_CONNECTED- サーバーへの接続はありません。

属性のデータ型

ub4 *

次のコード例で、このパラメータの使用方法を示します。

ub4 serverStatus = 0
OCIAttrGet((void *)srvhp, OCI_HTYPE_SERVER,
        (void *)&serverStatus, (ub4 *)0, OCI_ATTR_SERVER_STATUS, errhp);
if (serverStatus == OCI_SERVER_NORMAL)
        printf("Connection is up.\n");
else if (serverStatus == OCI_SERVER_NOT_CONNECTED)
        printf("Connection is down.\n");

OCI_ATTR_TAF_ENABLED

モード

READ

説明

サーバー・ハンドルがTAF対応の場合TRUEに、非対応の場合はFALSEに設定します。

属性のデータ型

boolean *

OCI_ATTR_USER_MEMORY

モード

READ

説明

ハンドルに追加メモリーが割り当てられている場合、ユーザー・メモリーへのポインタが戻されます。追加メモリーが割り当てられていないハンドルに関しては、NULLポインタが戻されます。

属性のデータ型

void *

認証情報ハンドル

これらの属性は、ユーザー・セッション・ハンドルにも適用されます。

ユーザー・セッション・ハンドル属性

これらの属性は、認証情報ハンドルにも適用されます。

OCI_ATTR_ACTION

モード

WRITE

説明

現行のモジュール内の現行アクション名です。NULLに設定できます。現行のアクションの終了後、次のアクション名、または次のアクションが存在しない場合はNULLをこの属性に設定します。32バイト以下で指定できます。

属性のデータ型

oratext *

OCIAttrSet(session, OCI_HTYPE_SESSION,(void *)"insert into employees",
           (ub4)strlen("insert into employees"), OCI_ATTR_ACTION, error_handle);

OCI_ATTR_APPCTX_ATTR


注意:

この属性は、データベース常駐接続プーリングではサポートされません。

モード

WRITE

説明

外部で初期化されたコンテキストの属性名を指定します。

属性のデータ型

oratext *

OCI_ATTR_APPCTX_LIST


注意:

この属性は、データベース常駐接続プーリングではサポートされません。

モード

READ

説明

セッションに対するアプリケーション・コンテキスト・リスト記述子を取得します。

属性のデータ型

OCIParam* *

OCI_ATTR_APPCTX_NAME


注意:

この属性は、データベース常駐接続プーリングではサポートされません。

モード

WRITE

説明

外部で初期化されたコンテキストのネームスペースを指定します。

属性のデータ型

oratext *

OCI_ATTR_APPCTX_SIZE


注意:

この属性は、データベース常駐接続プーリングではサポートされません。

モード

WRITE

説明

外部で初期化されたコンテキストの配列サイズを、属性数を使用して初期化します。

属性のデータ型

ub4

OCI_ATTR_APPCTX_VALUE


注意:

この属性は、データベース常駐接続プーリングではサポートされません。

モード

WRITE

説明

外部で初期化されたコンテキストの値を指定します。

属性のデータ型

oratext *

OCI_ATTR_AUDIT_BANNER

モード

READ

説明

ファイルからのユーザー・アクション監査バナーを表示します。

属性のデータ型

oratext **

OCI_ATTR_CALL_TIME

モード

READ

説明

前述のコールのサーバー側の時間をマイクロ秒単位で戻します。

属性のデータ型

ub8 *

OCI_ATTR_CERTIFICATE

モード

WRITE

説明

プロキシ認証で使用するクライアントの証明書を指定します。OCI_ATTR_CERTIFICATEを使用した証明書ベースのプロキシ認証は、Oracle Databaseの今後のリリースではサポートされません。かわりに、OCI_ATTR_DISTINGUISHED_NAME属性またはOCI_ATTR_USERNAME属性を使用してください。

属性のデータ型

ub1 *

OCI_ATTR_CLIENT_IDENTIFIER

モード

WRITE

説明

セッション・ハンドルにユーザー識別子を指定します。64バイト以下で指定できます。ユーザー名を含めることはできますが、セキュリティ上の理由から、パスワードを含めることはできません。識別子の最初の文字に':'は使用できません。この文字を使用すると、予期しない動作が発生する場合があります。

属性のデータ型

oratext *

OCIAttrSet(session, OCI_HTYPE_SESSION,(void *)"janedoe",
            (ub4)strlen("janedoe"), OCI_ATTR_CLIENT_IDENTIFIER,
            error_handle);

OCI_ATTR_CLIENT_INFO

モード

WRITE

説明

クライアント・アプリケーションの追加情報です。DBMS_APPLICATION_INFOパッケージによっても設定できます。V$SESSIONビューに格納されています。64バイト以下で指定できます。

属性のデータ型

oratext *

OCI_ATTR_COLLECT_CALL_TIME

モード

READ/WRITE

説明

TRUEに設定すると、サーバーは、後続の各OCIコールのコール時間をミリ秒単位で測定します。

属性のデータ型

boolean */boolean

OCI_ATTR_CONNECTION_CLASS

モード

READ/WRITE

説明

OCIAuthInfoハンドルのこの属性では、データベース常駐接続プール用の接続クラス名(128文字以内の文字列)を明示的に指定します。

属性のデータ型

oratext **/oratext *

OCI_ATTR_CURRENT_SCHEMA

モード

READ/WRITE

説明

スキーマ名とセッションが存在する場合、この属性を使用してOCIAttrSet()をコールすることで、SQLコマンドALTER SESSION SET CURRENT_SCHEMAと同じ結果が得られます。スキーマはサーバーへのラウンドトリップを行う次のOCIコールで変更され、余分なラウンドトリップが回避されます。新しいスキーマ名が存在しない場合、ALTER SESSION SET CURRENT_SCHEMAから戻されるエラーと同じエラーが戻されます。その後入力するDMLまたはDDLコマンド内で、データベース・オブジェクトの前にこの新しいスキーマ名が入ります。

この属性を使用しているクライアントがOracle Database 10gリリース2よりも前のソフトウェア・リリースのサーバーと通信を行うと、OCIAttrSet()コールは無視されます。この属性はOCIAttrGet()でも読み取ることができます。

属性のデータ型

oratext */oratext *

text schema[] = "hr";
err = OCIAttrSet( (void ) mysessp, OCI_HTYPE_SESSION, (void *)schema,
      (ub4)strlen( (char *)schema), OCI_ATTR_CURRENT_SCHEMA, (OCIError *)myerrhp);

OCI_ATTR_DEFAULT_LOBPREFETCH_SIZE

モード

READ/WRITE

説明

セッション中にフェッチされる全LOBロケータをユーザーがプリフェッチできるようにします。各LOBロケータのデフォルトのプリフェッチ・バッファ・サイズを指定します。

属性のデータ型

ub4 */ub4

OCI_ATTR_DISTINGUISHED_NAME

モード

WRITE

説明

プロキシ認証で使用するクライアントの識別名を指定します。

属性のデータ型

oratext *

OCI_ATTR_DRIVER_NAME

モード

READ/WRITE

説明

JDBC、ODBC、PHP、SQL*PlusなどのOCIを使用するドライバ・レイヤーの名称を指定します。ORA$で始まる名称も予約済です。今後のアプリケーションでは、固有の名称を選択し、障害診断に役立つように設定できます。この属性は、OCISessionBegin()を実行する前に設定してください。NULL終端文字を含めて最大9個のシングルバイト文字による配列を渡します。このデータは検証されず、サーバーに直接渡されてV$SESSION_CONNECT_INFOまたはGV$SESSION_CONNECT_INFOビューに表示されます。OCIにより確認されるのは、ドライバ名の配列が30文字以内であることのみです。9文字以上が渡されると、最初の8文字のみが表示されます。

属性のデータ型

oratext **/oratext *

...
oratext client_driver[9];
...
checkerr(errhp, OCIAttrSet(authp, OCI_HTYPE_SESSION,
                client_driver, (ub4)(strlen(client_driver)),
                OCI_ATTR_DRIVER_NAME, errhp));

checkerr(errhp, OCISessionBegin(svchp, errhp, authp, OCI_CRED_RDBMS, OCI_DEFAULT);
... 

OCI_ATTR_EDITION

モード

READ/WRITE

説明

このセッションで使用されるEditionを指定します。この属性の値が明示的に設定されていない場合は、環境変数ORA_EDITIONの値が戻されます。

属性のデータ型

oratext *

OCI_ATTR_INITIAL_CLIENT_ROLES

モード

WRITE

説明

アプリケーション・サーバーがクライアントにかわってOracle Databaseに接続する場合にクライアントが最初に所有する1つまたは複数のロールを指定します。

属性のデータ型

oratext **

OCI_ATTR_MIGSESSION

モード

READ/WRITE

説明

セッション・ハンドル用に識別されたセッションを指定します。同じプロセス内または複数プロセス間で、セッションをある環境から別の環境へ複製することができます。これは、同じシステム上のプロセスでも異なるシステム上のプロセスでも可能です。複製するセッションは、移行可能と認証されている必要があります。

属性のデータ型

ub1 *

次のコード例で、この属性の使用方法を示します。

OCIAttrSet ((void *) authp, (ub4)OCI_HTYPE_SESSION, (void *) mig_session,
            (ub4) sz, (ub4)OCI_ATTR_MIGSESSION, errhp);

OCI_ATTR_MODULE

モード

WRITE

説明

クライアント・アプリケーションで実行中の現行モジュール名です。現行のモジュールの終了後、新しいモジュール名でコールしするか、または新しいモジュールが存在しない場合はNULLを使用します。48バイト以下で指定できます。

属性のデータ型

oratext *

OCIAttrSet(session, OCI_HTYPE_SESSION,(void *)"add_employee",
           (ub4)strlen("add_employee"), OCI_ATTR_MODULE, error_handle); 

OCI_ATTR_PASSWORD

モード

WRITE

説明

認証に使用するパスワードを指定します。

属性のデータ型

oratext *

OCI_ATTR_PROXY_CLIENT

モード

WRITE

説明

プロキシ経由でアクセスするターゲット・ユーザー名を指定します。

属性のデータ型

oratext *

OCI_ATTR_PROXY_CREDENTIALS

モード

WRITE

説明

アプリケーション・サーバーの資格証明をプロキシ認証で使用するように指定します。

属性のデータ型

OCISession

OCI_ATTR_PURITY

モード

READ/WRITE

説明

データベース常駐接続プーリング用のOCIAuthInfoハンドルの属性です。値は、OCI_ATTR_PURITY_NEW (アプリケーションでは前のセッション状態で保持されていないセッションが必要)またはOCI_ATTR_PURITY_SELF (セッションが前に使用済でも可)です。OCISessionGet()のコール時にアプリケーションで純正値が指定されていない場合、純正値OCI_ATTR_PURITY_DEFAULTが使用されます。この値は、後でアプリケーションのタイプに応じてOCI_ATTR_PURITY_NEWまたはOCI_ATTR_PURITY_SELFに変換されます。

属性のデータ型

ub4 */ub4

OCI_ATTR_SESSION_STATE

モード

READ/WRITE

説明

データベース・セッションの現在の状態を指定します。セッションがデータベース・タスクを実行する必要がある場合は、OCI_SESSION_STATEFULに設定します。後続のデータベース・アクティビティに対して、アプリケーションが現行のセッションに依存していない場合は、OCI_SESSION_STATELESSに設定します。


関連項目:

OCI_ATTR_SESSION_STATEの使用方法の詳細および例は、「ステートフルまたはステートレスとしてのセッションの明示的作成」を参照してください。

属性のデータ型

ub1 *

OCI_ATTR_TRANSACTION_IN_PROGRESS

モード

READ

説明

TRUEの場合、参照対象のセッションには、現在アクティブなトランザクションが存在します。

FALSEの場合、参照対象のセッションには、現在アクティブなトランザクションが存在しません。

属性のデータ型

boolean *

{  boolean txnInProgress; 

  OCIAttrGet(usrhp, OCI_HTYPE_SESSION,
             &txnInProgress, (ub4 *)0,
             OCI_ATTR_TRANSACTION_IN_PROGRESS,
             errhp);
}

OCI_ATTR_USERNAME

モード

READ/WRITE

説明

認証に使用するユーザー名を指定します。

属性のデータ型

oratext **/oratext *

管理ハンドル属性

管理ハンドルには、次の属性を使用します。

OCI_ATTR_ADMIN_PFILE

モード

READ/WRITE

説明

OCIDBStartup()をコールする前にこの属性を設定し、データベースの起動に使用するクライアント側のパラメータ・ファイルの場所を指定します。この属性が設定されていない場合、サーバー側のパラメータ・ファイルが使用されます。サーバー側のパラメータ・ファイルが存在しない場合、エラーが戻されます。

属性のデータ型

oratext */oratext *

接続プール・ハンドル属性

接続プール・ハンドルには、次の属性を使用します。

OCI_ATTR_CONN_TIMEOUT


注意:

プールの縮小は、ネットワーク・ラウンドトリップがある場合にのみ発生します。操作がない場合、接続はアクティブなままになります。

モード

READ/WRITE

説明

この時間値(秒数)を超えてアイドル状態の接続は終了し、オープン接続が最適な数に維持されます。この属性は動的に設定できます。この属性を設定していない場合、接続がタイムアウトになることはありません。

属性のデータ型

ub4 */ub4

OCI_ATTR_CONN_NOWAIT

モード

READ/WRITE

説明

この属性は、プール内のすべての接続がビジーで、接続数が最大数に達しているとき、接続の再試行を行う必要があるかどうかを判断します。

この属性が設定されている場合は、すべての接続がビジーで、それ以上接続をオープンできないときにエラーが発生します。設定されていない場合、コールは接続が確立するまで待機します。

この属性が設定されている場合、読取り時には、属性値がTRUEで戻されます。

属性のデータ型

ub1 */ub1

OCI_ATTR_CONN_BUSY_COUNT

モード

READ

説明

ビジーの接続の数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_CONN_OPEN_COUNT

モード

READ

説明

オープンしている接続の数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_CONN_MIN

モード

READ

説明

最小接続数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_CONN_MAX

モード

READ

説明

最大接続数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_CONN_INCR

モード

READ

説明

接続の増分パラメータを戻します。

属性のデータ型

ub4 *

セッション・プール・ハンドル属性

セッション・プール・ハンドルには、次の属性を使用します。

OCI_ATTR_SPOOL_BUSY_COUNT

モード

READ

説明

ビジーのセッションの数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_SPOOL_GETMODE

モード

READ/WRITE

説明

この属性は、プール内のすベてのセッションがビジーで、いくつかのセッションが最大に達していることが判明したときに、セッション・プールの動作を判断します。値は次のとおりです。

  • OCI_SPOOL_ATTRVAL_WAIT - スレッドはセッションが解放されるまでブロックされて待機します。これがデフォルト値です。

  • OCI_SPOOL_ATTRVAL_NOWAIT - エラーが戻ります。

  • OCI_SPOOL_ATTRVAL_FORCEGET - すべてのセッションがビジーで、セッション数が最大に達している場合でも、新しいセッションを作成します。OCISessionGet()によって警告が戻されます。この場合、OCISessionGet()が警告を戻すのは、新規作成のセッションがセッションの最大数を超えた場合です。

    この値を設定した場合は、Oracle Databaseのインスタンスでサポートできるセッション数よりも多いセッションが作成される可能性があります。この場合は、次のエラーがサーバーから戻されます。

    ORA 00018 - Maximum number of sessions exceeded
    

    このエラーは、セッション・プールのユーザーに伝播されます。

    読取りの場合は、適切な属性値が戻されます。

属性のデータ型

ub1 */ub1

OCI_ATTR_SPOOL_INCR

モード

READ

説明

セッションの増分パラメータを戻します。

属性のデータ型

ub4 *

OCI_ATTR_SPOOL_MAX

モード

READ

説明

最大セッション数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_SPOOL_MIN

モード

READ

説明

最小セッション数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_SPOOL_OPEN_COUNT

モード

READ

説明

オープンしているセッションの数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_SPOOL_AUTH

モード

WRITE

説明

セッション・プールから取得されているセッションでセッション作成前属性を有効にする場合、この属性は、セッション・プール・ハンドルで設定できます。現在、このOCIAuthInfoハンドルで設定できるのは、次の属性のみです。

OCI_ATTR_DRIVER_NAME

OCI_ATTR_EDITION

OCIAuthInfoハンドルに他の属性が設定されている場合、およびセッション・プール・ハンドルにOCIAuthInfoハンドルが設定されている場合、エラーになります。さらに、セッション・プール・ハンドルを使用したOCISessionPoolCreate()のコール前のみ、セッション・プール・ハンドルにOCIAuthInfoハンドルを設定する必要があります。OCISessionPoolCreate()の後にこれを設定すると、エラーになります。

属性のデータ型

OCIAuthInfo *

OCI_ATTR_SPOOL_STMTCACHESIZE

モード

READ/WRITE

説明

セッション・プールの各セッションのデフォルトの文キャッシュ・サイズを、この値に設定します。プールの特定のセッションの文キャッシュ・サイズは、そのセッションでOCI_ATTR_STMTCACHESIZEを使用することでいつでも上書きできます。

属性のデータ型

ub4 */ ub4

OCI_ATTR_SPOOL_TIMEOUT

モード

READ/WRITE

説明

この時間(秒)を超えてアイドル状態のセッションは定期的に終了し、オープンしているセッション数が最適に維持されます。この属性は動的に設定できます。この属性が設定されておらず、プール内に領域が必要な場合は、最低使用頻度のセッションがタイムアウトとなります。OCIでは、プールに解放するときにのみ、タイムアウトしたセッションがチェックされます。

属性のデータ型

ub4 */ub4

トランザクション・ハンドル属性

トランザクション・ハンドルには、次の属性を使用します。

OCI_ATTR_TRANS_NAME

モード

READ/WRITE

説明

この属性を使用して、トランザクションを識別するテキスト文字列の構築または読取りができます。これは、XIDを使用してトランザクションを識別するかわりに使用される方法です。oratext文字列は、64バイトまで指定できます。

属性のデータ型

oratext ** (READ) / oratext * (WRITE)

OCI_ATTR_TRANS_TIMEOUT

モード

READ/WRITE

説明

準備時間に使用するタイムアウト時間値の設定または読取りができます。

属性のデータ型

ub4 * (READ)/ub4 (WRITE)

OCI_ATTR_XID

モード

READ/WRITE

説明

トランザクションを識別するXIDの設定または読取りができます。

属性のデータ型

XID ** (READ)/XID * (WRITE)

文ハンドル属性

文ハンドルには、次の属性を使用します。

OCI_ATTR_BIND_COUNT

モード

READ

説明

文ハンドルのバインド位置の数を戻します。

属性のデータ型

ub4 *

OCIHandleAlloc(env,(void **) &pStatement, OCI_HTYPE_STMT, (size_t)0, (void **)0);
OCIStmtPrepare (pStatement, err, pszQuery, (ub4)strlen(pszQuery),
                (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT); 
OCIAttrGet(pStatement, OCI_HTYPE_STMT, &iNbParameters, NULL, OCI_ATTR_BIND_COUNT,
           err); 

OCI_ATTR_CHNF_REGHANDLE

モード

WRITE

説明

この属性を該当するサブスクリプション・ハンドルに設定すると、問合せの実行時に連続問合せ通知用の問合せの登録も作成されます。

属性のデータ型

OCISubscription *

/* Associate the statement with the subscription handle */
OCIAttrSet (stmthp, OCI_HTYPE_STMT, subscrhp, 0,
            OCI_ATTR_CHNF_REGHANDLE, errhp); 

OCI_ATTR_CQ_QUERYID

モード

READ

説明

OCIStmtExecute()のコールによる登録後に、登録済問合せの問合せIDを取得します。

属性のデータ型

ub8 *

OCI_ATTR_CURRENT_POSITION

モード

READ

説明

結果セット内の現行の位置を示します。この属性は読取りのみ可能です。設定はできません。

属性のデータ型

ub4 *

OCI_ATTR_ENV

モード

READ

説明

結果セット内の現行の位置を示します。この属性は読取りのみ可能です。設定はできません。

属性のデータ型

ub4 *

OCI_ATTR_FETCH_ROWID

モード

READ/WRITE

説明

position 0での定義とSELECT...FOR UPDATE文の実行後に、ROWIDがフェッチされるように指定します。

属性のデータ型

boolean */boolean

OCI_ATTR_NUM_DML_ERRORS

モード

READ

説明

DML操作でのエラーの数を戻します。

属性のデータ型

ub4 *

OCI_ATTR_PARAM_COUNT

モード

READ

説明

文ハンドルに対応付けられた文の選択リストにある列数を取得します。

属性のデータ型

ub4 *

...
int i = 0;
ub4 parmcnt = 0;
ub2 type = 0;
OCIParam *colhd = (OCIParam *) 0;   /* column handle */

/* Describe of a select-list */ 
OraText *sqlstmt = (OraText *)"SELECT * FROM employees WHERE employee_id = 100";

checkerr(errhp, OCIStmtPrepare(stmthp, errhp, (OraText *)sqlstmt,
                    (ub4)strlen((char *)sqlstmt),
                    (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));

checkerr(errhp, OCIStmtExecute(svchp, stmthp, errhp, 1, 0,
        (OCISnapshot *)0, (OCISnapshot *)0, OCI_DESCRIBE_ONLY));

/* Get the number of columns in the select list */
checkerr(errhp, OCIAttrGet((void *)stmthp, OCI_HTYPE_STMT, (void *)&parmcnt,
                      (ub4 *)0, OCI_ATTR_PARAM_COUNT, errhp));

/* Go through the column list and retrieve the data type of each column. You
   start from pos = 1 */
for (i = 1; i <= parmcnt; i++)
{
  /* Get parameter for column i */
  checkerr(errhp, OCIParamGet((void *)stmthp, OCI_HTYPE_STMT, errhp, 
           (void **)&colhd, i));

  /* Get data-type of column i */
  type = 0;
  checkerr(errhp, OCIAttrGet((void *)colhd, OCI_DTYPE_PARAM,
          (void *)&type, (ub4 *)0, OCI_ATTR_DATA_TYPE, errhp));

}
...

OCI_ATTR_PARSE_ERROR_OFFSET

モード

READ

説明

文の解析エラー・オフセットを戻します。

属性のデータ型

ub2 *

OCI_ATTR_PREFETCH_MEMORY

モード

WRITE

説明

プリフェッチされるトップレベル行のメモリー・レベルを設定します。メモリー・レベルが指定したメモリー使用率制限を超えない量を占有している場合、指定したトップレベル行カウントまでの行がフェッチされます。デフォルト値は0 (ゼロ)です。これは、プリフェッチする行数の計算にメモリー・サイズが含まれていないことを示します。

属性のデータ型

ub4 *

OCI_ATTR_PREFETCH_ROWS

モード

WRITE

説明

プリフェッチされるトップレベル行の数を設定します。デフォルト値は1行です。

属性のデータ型

ub4 *

OCI_ATTR_ROW_COUNT

モード

READ

説明

SELECT文の後、これまでに処理した行の数を戻します。INSERTUPDATEおよびDELETE文の場合、最後の文によって処理された行の数を戻します。デフォルト値は1です。

スクロール不可カーソルの場合、OCI_ATTR_ROW_COUNTは、この文ハンドルの実行後にOCIStmtFetch2()コールでユーザー・バッファにフェッチされた行の合計数です。スクロール不可カーソルは前方への順次アクセスのみであるため、この属性は、アプリケーションで参照する最後の行番号を表します。

スクロール・カーソルの場合、OCI_ATTR_ROW_COUNTは、ユーザー・バッファにフェッチされた行の最大(絶対)数を表します。アプリケーションでは、任意の位置でフェッチを行うことができるため、この属性は、(スクロール可能な)文の実行後にユーザーのバッファにフェッチされた行の合計数である必要はありません。

属性のデータ型

ub4 *

OCI_ATTR_ROWID

モード

READ

説明

OCIDescriptorAlloc()によって割り当てられるROWID記述子を戻します。

属性のデータ型

OCIRowid *

OCI_ATTR_ROWS_FETCHED

モード

READ

説明

前回のフェッチまたは1回以上の反復処理でユーザーのバッファに正常にフェッチされた行の数を示します。スクロール可能およびスクロール不可の文ハンドルの両方で使用できます。

属性のデータ型

ub4 *

ub4 rows;
ub4 sizep = sizeof(ub4);
OCIAttrGet((void *) stmhp, (ub4) OCI_HTYPE_STMT,
           (void *)& rows, (ub4 *) &sizep, (ub4)OCI_ATTR_ROWS_FETCHED,
           errhp);

OCI_ATTR_SQLFNCODE

モード

READ

説明

文に対応付けられたSQLコマンドの関数コードを戻します。

属性のデータ型

ub2 *

注意

表A-1は、SQLコマンド・コードのリストを示しています。

表A-1 SQLコマンド・コード

コード SQL関数 コード SQL関数 コード SQL関数

01

CREATE TABLE

43

DROP EXTERNAL DATABASE

85

TRUNCATE TABLE

02

SET ROLE

44

CREATE DATABASE

86

TRUNCATE CLUSTER

03

INSERT

45

ALTER DATABASE

87

CREATE BITMAPFILE

04

SELECT

46

CREATE ROLLBACK SEGMENT

88

ALTER VIEW

05

UPDATE

47

ALTER ROLLBACK SEGMENT

89

DROP BITMAPFILE

06

DROP ROLE

48

DROP ROLLBACK SEGMENT

90

SET CONSTRAINTS

07

DROP VIEW

49

CREATE TABLESPACE

91

CREATE FUNCTION

08

DROP TABLE

50

ALTER TABLESPACE

92

ALTER FUNCTION

09

DELETE

51

DROP TABLESPACE

93

DROP FUNCTION

10

CREATE VIEW

52

ALTER SESSION

94

CREATE PACKAGE

11

DROP USER

53

ALTER USER

95

ALTER PACKAGE

12

CREATE ROLE

54

COMMIT (WORK)

96

DROP PACKAGE

13

CREATE SEQUENCE

55

ROLLBACK

97

CREATE PACKAGE BODY

14

ALTER SEQUENCE

56

SAVEPOINT

98

ALTER PACKAGE BODY

15

(使用されていません)

57

CREATE CONTROL FILE

99

DROP PACKAGE BODY

16

DROP SEQUENCE

58

ALTER TRACING

157

CREATE DIRECTORY

17

CREATE SCHEMA

59

CREATE TRIGGER

158

DROP DIRECTORY

18

CREATE CLUSTER

60

ALTER TRIGGER

159

CREATE LIBRARY

19

CREATE USER

61

DROP TRIGGER

160

CREATE JAVA

20

CREATE INDEX

62

ANALYZE TABLE

161

ALTER JAVA

21

DROP INDEX

63

ANALYZE INDEX

162

DROP JAVA

22

DROP CLUSTER

64

ANALYZE CLUSTER

163

CREATE OPERATOR

23

VALIDATE INDEX

65

CREATE PROFILE

164

CREATE INDEXTYPE

24

CREATE PROCEDURE

66

DROP PROFILE

165

DROP INDEXTYPE

25

ALTER PROCEDURE

67

ALTER PROFILE

166

ALTER INDEXTYPE

26

ALTER TABLE

68

DROP PROCEDURE

167

DROP OPERATOR

27

EXPLAIN

69

(使用されていません)

168

ASSOCIATE STATISTICS

28

GRANT

70

ALTER RESOURCE COST

169

DISASSOCIATE STATISTICS

29

REVOKE

71

CREATE SNAPSHOT LOG

170

CALL METHOD

30

CREATE SYNONYM

72

ALTER SNAPSHOT LOG

171

CREATE SUMMARY

31

DROP SYNONYM

73

DROP SNAPSHOT LOG

172

ALTER SUMMARY

32

ALTER SYSTEM SWITCH LOG

74

CREATE SNAPSHOT

173

DROP SUMMARY

33

SET TRANSACTION

75

ALTER SNAPSHOT

174

CREATE DIMENSION

34

PL/SQL EXECUTE

76

DROP SNAPSHOT

175

ALTER DIMENSION

35

LOCK

77

CREATE TYPE

176

DROP DIMENSION

36

NOOP

78

DROP TYPE

177

CREATE CONTEXT

37

RENAME

79

ALTER ROLE

178

DROP CONTEXT

38

COMMENT

80

ALTER TYPE

179

ALTER OUTLINE

39

AUDIT

81

CREATE TYPE BODY

180

CREATE OUTLINE

40

NO AUDIT

82

ALTER TYPE BODY

181

DROP OUTLINE

41

ALTER INDEX

83

DROP TYPE BODY

182

UPDATE INDEXES

42

CREATE EXTERNAL DATABASE

84

DROP LIBRARY

183

ALTER OPERATOR


OCI_ATTR_STATEMENT

モード

READ

説明

プリコンパイルされたSQL文のテキストを文ハンドルに戻します。UTF-16モードでは、戻された文はUTF-16エンコーディングになります。長さは、常にバイト単位です。

属性のデータ型

oratext *

OCI_ATTR_STMTCACHE_CBKCTX

モード

READ/WRITE

説明

文ハンドルでアプリケーションの不透明なコンテキストの取得および設定を行います。このコンテキストは、アプリケーションが定義する型のいずれかです。また、主にバインドを取り扱い、バッファ・アドレスを定義するのに使用します。

属性のデータ型

void *

OCI_ATTR_STMT_STATE

モード

READ

説明

文のフェッチ状態を戻します。コール元はこの属性を使用して、このセッションが別のサービス・コンテキストで使用できるかどうか、現行のデータ・アクセス・コール・セットでまだ必要かどうかを判断できます。基本的に、フェッチ実行サイクルの途中では、別の文を実行するためにセッション・ハンドルを解放することはありません。次の値が有効です。

  • OCI_STMT_STATE_INITIALIZED

  • OCI_STMT_STATE_EXECUTED

  • OCI_STMT_STATE_END_OF_FETCH

属性のデータ型

ub4 *

OCI_ATTR_STMT_TYPE

モード

READ

説明

ハンドルに対応付けられた文のタイプです。次の値が有効です。

  • OCI_STMT_SELECT

  • OCI_STMT_UPDATE

  • OCI_STMT_DELETE

  • OCI_STMT_INSERT

  • OCI_STMT_CREATE

  • OCI_STMT_DROP

  • OCI_STMT_ALTER

  • OCI_STMT_BEGIN (PL/SQL文)

  • OCI_STMT_DECLARE (PL/SQL文)

属性のデータ型

ub2 *

バインド・ハンドル属性

バインド・ハンドルには、次の属性を使用します。

OCI_ATTR_CHAR_COUNT

モード

WRITE

説明

キャラクタ・タイプ・データの文字数を設定します。

属性のデータ型

ub4 *

OCI_ATTR_CHARSET_FORM

モード

READ/WRITE

説明

バインド・ハンドルのキャラクタ・セット・フォームです。デフォルトのフォームはSQLCS_IMPLICITです。この属性を設定すると、バインド・ハンドルでクライアント側のデータベースまたは各国語キャラクタ・セットを使用できます。この属性は、各国語キャラクタ・セットの場合はSQLCS_NCHARに設定し、データベース・キャラクタ・セットの場合はSQLCS_IMPLICITに設定します。

属性のデータ型

ub1 *

OCI_ATTR_CHARSET_ID

モード

READ/WRITE

説明

バインド・ハンドルのキャラクタ・セットIDです。入力データのキャラクタ・セットがUTF-16 (下位互換性のために保持されている、非推奨になったOCI_UC2SIDの置換え)の場合、ユーザーはキャラクタ・セットIDをOCI_UTF16IDに設定する必要があります。バインド値バッファはutextバッファであるとみなされ、入力長ポインタおよび戻り値の長さセマンティクスは、キャラクタ・セマンティクス(utextの数)に変更されます。ただし、先行するOCIBindコールでは、バインド値バッファのサイズをバイト単位で指定する必要があります。

OCI_ATTR_CHARSET_IDは、OCI_ATTR_CHARSET_FORM (設定する場合)の後に設定する必要があります。OCI_ATTR_CHARSET_FORMを設定する前にOCI_ATTR_CHARSET_IDを設定すると、予想しない結果になります。

属性のデータ型

ub2 *

OCI_ATTR_MAXCHAR_SIZE

モード

WRITE

説明

バインドするデータを格納するためにアプリケーションがサーバー上に予約する文字数を設定します。

属性のデータ型

sb4 *

OCI_ATTR_MAXDATA_SIZE

モード

READ/WRITE

説明

キャラクタ・セットの変換後、クライアント側バインド・データを格納するためにサーバー側のバッファで許可される最大バイト数を設定します。

属性のデータ型

sb4 *

OCI_ATTR_PDPRC

モード

WRITE

説明

パック10進数の精度を指定します。SQLT_PDN値の場合、精度は2*(value_sz-1)に等しくしてください。SQLT_SLS値の場合、精度は(value_sz-1)に等しくしてください。

バインドまたは定義後に、この値は0 (ゼロ)に初期化されます。最初にOCI_ATTR_PDPRC属性を設定して、次にOCI_ATTR_PDSCLを設定します。これらの値のどちらかを変更する必要がある場合は、最初に再バインドまたは再定義の操作を実行して、次にこれらの属性を適切に再設定する必要があります。

属性のデータ型

ub2 *

OCI_ATTR_PDSCL

モード

WRITE

説明

パック10進値のスケールを指定します。

バインドまたは定義後に、この値は0 (ゼロ)に初期化されます。最初にOCI_ATTR_PDPRC属性を設定して、次にOCI_ATTR_PDSCLを設定します。これらの値のどちらかを変更する必要がある場合は、最初に再バインドまたは再定義の操作を実行して、次にこれらの属性を適切に再設定する必要があります。

属性のデータ型

sb2 *

OCI_ATTR_ROWS_RETURNED

モード

READ

説明

この属性は、RETURNING句でDML文をバインドするOUTのコールバック関数を実行しているとき、現行の反復で戻される行数を戻します。

属性のデータ型

ub4 *

定義ハンドル属性

定義ハンドルには、次の属性を使用します。

OCI_ATTR_CHAR_COUNT

モード

WRITE

説明

この属性は非推奨です。

キャラクタ・タイプ・データの文字数を設定します。この属性は、定義バッファに必要な文字数を指定します。定義コールで指定した定義バッファ長は、文字数より大きくする必要があります。

属性のデータ型

ub4 *

OCI_ATTR_CHARSET_FORM

モード

READ/WRITE

説明

定義ハンドルのキャラクタ・セット・フォームです。デフォルトのフォームはSQLCS_IMPLICITです。この属性を設定すると、定義ハンドルでクライアント側のデータベースまたは各国語キャラクタ・セットを使用できます。この属性は、各国語キャラクタ・セットの場合はSQLCS_NCHARに設定し、データベース・キャラクタ・セットの場合はSQLCS_IMPLICITに設定します。

属性のデータ型

ub1 *

OCI_ATTR_CHARSET_ID

モード

READ/WRITE

説明

定義ハンドルのキャラクタ・セットIDです。出力データのキャラクタ・セットがUTF-16である場合、ユーザーはキャラクタ・セットIDOTTをOCI_UTF16IDに設定する必要があります。定義値バッファはutextバッファであるとみなされ、インジケータおよび戻り値の長さセマンティクスは、キャラクタ・セマンティクス(utextの数)に変更されます。ただし、先行するOCIDefineコールでは、定義値バッファのサイズをバイト単位で指定する必要があります。

OCI_ATTR_CHARSET_IDは、OCI_ATTR_CHARSET_FORM (設定する場合)の後に設定する必要があります。OCI_ATTR_CHARSET_FORMを設定する前にOCI_ATTR_CHARSET_IDを設定すると、予想しない結果になります。

属性のデータ型

ub2 *

OCI_ATTR_LOBPREFETCH_LENGTH

モード

READ/WRITE

説明

特定の列からフェッチするLOBのプリフェッチ長とチャンク・サイズを指定します。

属性のデータ型

boolean */boolean

OCI_ATTR_LOBPREFETCH_SIZE

モード

READ/WRITE

説明

特定の列からフェッチするLOBロケータのデフォルト・キャッシュ・バッファ・サイズを上書きします。

属性のデータ型

ub4 */ub4

OCI_ATTR_MAXCHAR_SIZE

モード

WRITE

説明

クライアント・アプリケーションが定義バッファに格納できる最大文字数を指定します。

属性のデータ型

sb4 *

OCI_ATTR_PDPRC

モード

WRITE

説明

パック10進数の精度を指定します。SQLT_PDN値の場合、精度は2*(value_sz-1)に等しくしてください。SQLT_SLS値の場合、精度は(value_sz-1)に等しくしてください。

バインドまたは定義後に、この値は0 (ゼロ)に初期化されます。最初にOCI_ATTR_PDPRC属性を設定して、次にOCI_ATTR_PDSCLを設定します。これらの値のどちらかを変更する必要がある場合は、最初に再バインドまたは再定義の操作を実行して、次にこれらの属性を適切に再設定する必要があります。

属性のデータ型

ub2 *

OCI_ATTR_PDSCL

モード

WRITE

説明

パック10進値のスケールを指定します。

バインドまたは定義後に、この値は0 (ゼロ)に初期化されます。最初にOCI_ATTR_PDPRC属性を設定して、次にOCI_ATTR_PDSCLを設定します。これらの値のどちらかを変更する必要がある場合は、最初に再バインドまたは再定義の操作を実行して、次にこれらの属性を適切に再設定する必要があります。

属性のデータ型

sb2 *

記述ハンドル属性

記述ハンドルには、次の属性を使用します。

OCI_ATTR_PARAM

モード

READ

説明

記述のルートを指し示します。後続のOCIAttrGet()およびOCIParamGet()コールのために使用します。

属性のデータ型

ub4 *

OCI_ATTR_PARAM_COUNT

モード

READ

説明

記述ハンドル内のパラメータ数を戻します。記述ハンドルが選択リストの記述である場合は、選択リスト内の列数を示します。

属性のデータ型

ub4 *

パラメータ記述子属性

パラメータ記述子には、次の属性を使用します。

パラメータ記述子の属性の詳細なリストは、第6章を参照してください。

LOBロケータ属性

パラメータ記述子には、次の属性を使用します。

OCI_ATTR_LOBEMPTY

モード

WRITE

説明

内部LOBロケータをEmpty値に設定します。これによって、そのロケータはINSERT文またはUPDATE文のバインド変数として使用でき、LOBをEmpty値に初期化できます。LOBがEmpty値になると、OCILobWrite2()またはOCILobWrite() (非推奨)をコールして、データをLOBに移入できます。この属性は内部LOB (BLOBCLOBNCLOB)に対してのみ有効です。

アプリケーションから、次の宣言などの0 (ゼロ)の値を持つub4のアドレスを渡します。

ub4 lobEmpty = 0

その後にアドレス&lobEmptyを渡します。

属性のデータ型

ub4 *

複合オブジェクト属性

複合オブジェクトには、次の属性を使用します。

複合オブジェクト検索ハンドル属性

複合オブジェクト検索ハンドルには、次の属性を使用します。

OCI_ATTR_COMPLEXOBJECT_LEVEL

モード

WRITE

説明

複合オブジェクト検索のネスト・レベルです。

属性のデータ型

ub4 *

OCI_ATTR_COMPLEXOBJECT_COLL_OUTOFLINE

モード

WRITE

説明

オブジェクト型アウト・ラインにあるコレクション属性をフェッチするかどうかを示します。

属性のデータ型

ub1 *

複合オブジェクト検索記述子の属性

複合オブジェクト検索記述子には、次の属性を使用します。

OCI_ATTR_COMPLEXOBJECTCOMP_TYPE

モード

WRITE

説明

複合オブジェクト検索に続くREFのタイプです。

属性のデータ型

void *

OCI_ATTR_COMPLEXOBJECTCOMP_TYPE_LEVEL

モード

WRITE

説明

後に続くOCI_ATTR_COMPLEXOBJECTCOMP_TYPE型のREFのネスト・レベルです。

属性のデータ型

ub4 *

Streamsアドバンスト・キューイング記述子の属性

Streamsアドバンスト・キューイング記述子には、次の属性を使用します。


関連項目:

『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイドおよびリファレンス』

OCIAQEnqOptions記述子の属性

次に示す属性は、OCIAQEnqOptions記述子のプロパティです。

OCI_ATTR_MSG_DELIVERY_MODE

モード

WRITE

説明

エンキュー・コールがキュー内に永続メッセージまたはバッファ・メッセージをエンキューできるようにするには、OCIAQEnqOptions記述子のOCI_ATTR_MSG_DELIVERY_MODE属性をそれぞれOCI_MSG_PERSISTENTまたはOCI_MSG_BUFFEREDに設定します。この属性のデフォルト値はOCI_MSG_PERSISTENTです。

属性のデータ型

ub2

OCI_ATTR_RELATIVE_MSGID

モード

READ/WRITE

説明

この機能は非推奨です。今後のリリースでは削除される可能性があります。

順序逸脱操作で参照されるメッセージのメッセージ識別子を指定します。この値は、OCI_ATTR_SEQUENCE_DIVISIONOCI_ENQ_BEFOREが指定されている場合にのみ有効です。順序逸脱が未指定の場合には、この値は無視されます。

属性のデータ型

OCIRaw *

OCI_ATTR_SEQUENCE_DEVIATION

モード

READ/WRITE

説明

この機能は新しいアプリケーションでは非推奨ですが、互換性のため保持されています。

現在エンキューされているメッセージを、キューにあるその他のメッセージより先にデキューするかどうかを指定します。

属性のデータ型

ub4

有効な値

次に示す値のみ有効です。

  • OCI_ENQ_BEFORE - メッセージは、OCI_ATTR_RELATIVE_MSGIDで指定したメッセージより先にエンキューされます。

  • OCI_ENQ_TOP - メッセージは、その他のあらゆるメッセージより先にエンキューされます。

OCI_ATTR_TRANSFORMATION

モード

READ/WRITE

説明

メッセージがデータベースにエンキューされる前に適用する必要がある変換の名前です。変換はDBMS_TRANSFORMを使用して作成する必要があります。

属性のデータ型

oratext *

OCI_ATTR_VISIBILITY

モード

READ/WRITE

説明

エンキュー要求のトランザクション動作を指定します。

属性のデータ型

ub4

有効な値

次に示す値のみ有効です。

  • OCI_ENQ_ON_COMMIT - エンキューはカレント・トランザクションの一部です。操作は、トランザクションがコミットするときに完了します。これは、デフォルトです。

  • OCI_ENQ_IMMEDIATE - エンキューはカレント・トランザクションの一部ではありません。固有のトランザクションで操作が行われます。

OCIAQDeqOptions記述子の属性

次に示す属性は、OCIAQDeqOptions記述子のプロパティです。

OCI_ATTR_CONSUMER_NAME

モード

READ/WRITE

説明

コンシューマ名です。コンシューマ名に一致するメッセージのみがアクセスされます。キューが複数のコンシューマに対して設定されていない場合、このフィールドはNULLに設定します。

属性のデータ型

oratext *

OCI_ATTR_CORRELATION

モード

READ/WRITE

説明

デキューするメッセージの相関識別子を指定します。パーセント符号(%)やアンダースコア(_)などの特殊なパターン・マッチング文字を使用できます。複数のメッセージがパターンに一致する場合、デキューの順序は確定されません。

属性のデータ型

oratext *

OCI_ATTR_DEQ_MODE

モード

READ/WRITE

説明

デキューに対応付けられたロック動作を指定します。

属性のデータ型

ub4

有効な値

次に示す値のみ有効です。

  • OCI_DEQ_BROWSE - ロックを取得することなくメッセージを読み取ります。これは、SELECT文と同じです。

  • OCI_DEQ_LOCKED - メッセージを読み取り、書込みロックを取得します。ロックは、トランザクションの継続時間中は有効です。これは、SELECT FOR UPDATE文と同じです。

  • OCI_DEQ_REMOVE - メッセージを読み取り、それを更新または削除します。これは、デフォルトです。メッセージは、保存プロパティに基づいてキュー・テーブルに保存されます。

  • OCI_DEQ_REMOVE_NODATA - メッセージの受取りを確認しますが、実際のメッセージ内容は送付しません。

OCI_ATTR_DEQ_MSGID

モード

READ/WRITE

説明

デキューするメッセージのメッセージ識別子を指定します。

属性のデータ型

OCIRaw *

OCI_ATTR_DEQCOND

モード

READ/WRITE

説明

この属性は、SQL問合せのWHERE句に類似したブール式です。このブール式には、メッセージ・プロパティの条件、ユーザー・データ・プロパティ(オブジェクト・ペイロードのみ)およびPL/SQLまたはSQL関数を含めることができます。

メッセージ・ペイロード(オブジェクト・ペイロード)のデキュー条件を指定するには、句にオブジェクト型の属性を使用します。ペイロードが格納されたキュー・テーブルの特定の列を指定するには、各属性の前に修飾子としてtab.user_dataを追加する必要があります。

属性は4000文字を超えないようにします。複数のメッセージがデキュー条件を満たす場合、デキューの順序は不確定であり、キューのソート順序は適用されません。

属性のデータ型

oratext *

checkerr(errhp, OCIAttrSet(deqopt, OCI_DTYPE_AQDEQ_OPTIONS,
         (dvoid *)"tab.priority between 2 and 4" ,
         strlen("tab.priority between 2 and 4"),
         OCI_ATTR_DEQCOND, errhp));

OCI_ATTR_MSG_DELIVERY_MODE

モード

WRITE

説明

キューから永続メッセージ、バッファ・メッセージまたはこの両方のメッセージをデキューするためのデキュー・コールを指定するには、OCIAQDeqOptions記述子のOCI_ATTR_MSG_DELIVERY_MODE属性を、それぞれOCI_MSG_PERSISTENTOCI_MSG_BUFFEREDまたはOCI_MSG_PERSISTENT_OR_BUFFEREDに設定します。この属性のデフォルト値はOCI_MSG_PERSISTENTです。

属性のデータ型

ub2

OCI_ATTR_NAVIGATION

モード

READ/WRITE

説明

取り出すメッセージの位置を指定します。最初に位置が判断されます。次に検索基準が適用されます。最後にメッセージが取り出されます。

属性のデータ型

ub4

有効な値

次に示す値のみ有効です。

  • OCI_DEQ_FIRST_MSG - 検索基準に一致する最初の使用可能なメッセージを取り出します。これにより、位置はキューの先頭にリセットされます。

  • OCI_DEQ_NEXT_MSG - 検索基準に一致する次の使用可能なメッセージを取り出します。前のメッセージがメッセージ・グループに属していた場合は、検索基準に一致し、なおかつメッセージ・グループに属する、次に使用可能なメッセージがAQにより取り出されます。これは、デフォルトです。

  • OCI_DEQ_NEXT_TRANSACTION - 残りのカレント・トランザクション・グループ(ある場合)をスキップし、次のトランザクション・グループから最初のメッセージを取り出します。このオプションは、現行のキューに対してメッセージをグループ化できる場合のみ使用できます。

  • OCI_DEQ_FIRST_MSG_MULTI_GROUP - OCIAQDeqArray()のコールによって位置がキューの先頭にリセットされ、選択可能でかつ検索条件に一致するメッセージが(場合により複数のトランザクション・グループから) itersに達するまでデキューされます。トランザクション・グループを識別するために、新しいメッセージ・プロパティOCI_ATTR_TRANSACTION_NOが定義されます。同じトランザクション・グループに属するメッセージはすべて、このメッセージ・プロパティに対し同一の値を持ちます。

  • OCI_DEQ_NEXT_MSG_MULTI_GROUP - OCIAQDeqArray()のコールによって、選択可能でかつ検索条件に一致する次のセットのメッセージが(場合により複数のトランザクション・グループから) itersに達するまでデキューされます。トランザクション・グループを識別するために、新しいメッセージ・プロパティOCI_ATTR_TRANSACTION_NOが定義されます。同じトランザクション・グループに属するメッセージはすべて、このメッセージ・プロパティに対し同一の値を持ちます。

OCI_ATTR_TRANSFORMATION

モード

READ/WRITE

説明

メッセージのデキュー後、ただしデキューするアプリケーションにメッセージを戻す前に適用することが必要な、変換の名前です。変換はDBMS_TRANSFORMを使用して作成する必要があります。

属性のデータ型

oratext *

OCI_ATTR_VISIBILITY

モード

READ/WRITE

説明

新しいメッセージをカレント・トランザクションの一部としてデキューするかどうかを指定します。BROWSEモードを使用しているときは、この可視性(visibility)パラメータは無視されます。

属性のデータ型

ub4

有効な値

次に示す値のみ有効です。

  • OCI_DEQ_ON_COMMIT - デキューはカレント・トランザクションの一部になります。これは、デフォルトです。

  • OCI_DEQ_IMMEDIATE - デキューされたメッセージはカレント・トランザクションの一部にはなりません。固有のトランザクションが構成されます。

OCI_ATTR_WAIT

モード

READ/WRITE

説明

検索基準に一致するメッセージがないときの待機時間を指定します。同じグループのメッセージがデキューされている場合、このパラメータは無視されます。

属性のデータ型

ub4

有効な値

ub4値はいずれも有効ですが、さらに次のような定数が事前定義されています。

  • OCI_DEQ_WAIT_FOREVER - いつまでも待機します。これは、デフォルトです。

  • OCI_DEQ_NO_WAIT - 待機しません。


注意:

OCI_DEQ_NO_WAITオプションを使用してキューのポーリングを行う場合、空のキューをポーリングするとメッセージはデキューされません。OCI_ATTR_NAVIGATIONのデフォルト設定OCI_DEQ_NEXT_MSGのかわりに、OCI_DEQ_FIRST_MSGオプションを使用します。また、デキューにはOCI_ATTR_WAITの0 (ゼロ)以外の待機設定(1を推奨)も使用できます。

OCIAQMsgProperties記述子の属性

次に示す属性は、OCIAQMsgProperties記述子のプロパティです。

OCI_ATTR_ATTEMPTS

モード

READ

説明

あるメッセージに対して今までに何回デキューが試みられたかを指定します。このパラメータを、エンキュー時刻に設定することはできません。

属性のデータ型

sb4

有効な値

sb4値はいずれも有効です。

OCI_ATTR_CORRELATION

モード

READ/WRITE

説明

エンキュー時にプロデューサがメッセージに付けたIDを指定します。

属性のデータ型

oratext *

有効な値

文字列は128バイトまで有効です。

OCI_ATTR_DELAY

モード

READ/WRITE

説明

エンキューしたメッセージを遅延させる秒数を指定します。遅延はメッセージがデキュー可能になった後の秒数を示します。メッセージID (msgid)によりデキューすると、遅延指定は上書きされます。遅延を設定すると、エンキューされたメッセージはWAITING状態となり、遅延時間が終了するとともにREADY状態となります。DELAY処理にはキュー・モニターを起動させる必要があります。遅延は、メッセージをエンキューするプロデューサが設定することに注意してください。

属性のデータ型

sb4

有効な値

すべてのsb4値が有効ですが、さらに次のような定数が事前定義されています。


OCI_MSG_NO_DELAY - メッセージが即時にデキューできることを示します。

OCI_ATTR_ENQ_TIME

モード

READ

説明

メッセージがエンキューされた時間を指定します。この値はシステムにより判断されるため、ユーザーは設定できません。

属性のデータ型

OCIDate

OCI_ATTR_EXCEPTION_QUEUE

モード

READ/WRITE

説明

正常に処理できないメッセージの移動先となるキューの名前を指定します。メッセージが移動されるのは、デキューがmax_retries以内の回数で成功しなかった場合とメッセージの有効期限が切れた場合です。例外キューのメッセージはすべてEXPIRED状態です。

デフォルトは、キュー・テーブルと対応付けられた例外キューです。移動時に指定の例外キューが存在しない場合、メッセージはキュー・テーブルと対応付けられたデフォルトの例外キューに移動し、警告がアラート・ファイルにログ記録されます。デフォルトの例外キューが使用されている場合は、デキュー時にNULL値が戻されます。

この属性は有効なキュー名を参照する必要があります。

属性のデータ型

oratext *

OCI_ATTR_EXPIRATION

モード

READ/WRITE

説明

メッセージの期限切れを指定します。デキューにおいてメッセージを使用可能にする時間(秒)を決定します。このパラメータは、遅延からのオフセットです。期限切れ処理にはキュー・モニターを起動させる必要があります。

期限切れ前のメッセージはREADY状態です。期限切れ前にデキューされないメッセージは、EXPIRED状態となって例外デキューに移動します。

属性のデータ型

sb4

有効な値

すべてのsb4値が有効ですが、さらに次のような定数が事前定義されています。


OCI_MSG_NO_EXPIRATION - メッセージは期限切れになりません。

OCI_ATTR_MSG_DELIVERY_MODE

モード

READ

説明

デキュー・コールの後、OCIクライアントはOCIAQMsgProperties記述子のOCI_ATTR_MSG_DELIVERY_MODE属性を読み取り、永続メッセージまたはバッファ・メッセージがデキューされたかどうかを判断できます。属性の値は、永続メッセージの場合はOCI_MSG_PERSISTENT、バッファ・メッセージの場合はOCI_MSG_BUFFEREDです。

属性のデータ型

ub2

OCI_ATTR_MSG_STATE

モード

READ

説明

デキュー時のメッセージの状態を指定します。このパラメータを、エンキュー時刻に設定することはできません。

属性のデータ型

ub4

有効な値

次の値のみが戻されます。

  • OCI_MSG_WAITING - メッセージの遅延時間がまだ経過していません。

  • OCI_MSG_READY - メッセージは処理できる状態にあります。

  • OCI_MSG_PROCESSED - メッセージは処理され、保存されています。

  • OCI_MSG_EXPIRED - メッセージは例外キューに移動しました。

OCI_ATTR_ORIGINAL_MSGID

モード

READ/WRITE

説明

そのメッセージを生成した最後のキューのメッセージのIDです。メッセージがあるキューから別のキューに伝播される際に、この属性はメッセージの最後の伝播元であるキューのIDを識別します。メッセージが複数のキューを経由して伝播されている場合、この属性は、このメッセージを生成した最初のキューではなく最後のキューのメッセージのIDを識別します。

属性のデータ型

OCIRaw *

OCI_ATTR_PRIORITY

モード

READ/WRITE

説明

メッセージの優先度を指定します。数値が小さいほど高い優先度を示します。優先度は、負数も含めたあらゆる数値で指定できます。

デフォルト値は0 (ゼロ)です。

属性のデータ型

sb4

OCI_ATTR_RECIPIENT_LIST

モード

WRITE

説明

このパラメータは、複数のコンシューマが可能なキューに対してのみ有効です。デフォルトの受信者はキューのサブスクライバです。このパラメータはデキュー時にコンシューマに戻されません。

属性のデータ型

OCIAQAgent **

OCI_ATTR_SENDER_ID

モード

READ/WRITE

説明

メッセージの最初の送信者を識別します。

属性のデータ型

OCIAgent *

OCI_ATTR_TRANSACTION_NO

モード

READ

説明

トランザクションごとにグループ化されたキューの場合、メッセージのトランザクション・グループを識別します。この属性は、OCIAQDeqArray()コールが成功した後に移入されます。1つのグループ内のすべてのメッセージがこの属性に同一の値を持ちます。この属性は、エンキューされたメッセージのトランザクション・グループを設定するためにOCIAQEnqArray()コールによって使用することはできません。

属性のデータ型

oratext *

OCIAQAgent記述子の属性

次に示す属性は、OCIAQAgent記述子のプロパティです。

OCI_ATTR_AGENT_ADDRESS

モード

READ/WRITE

説明

プロトコル特定の受信者アドレスです。プロトコルが0 (デフォルト)の場合、アドレスのフォームは[schema.]queue[@dblink]です。

属性のデータ型

oratext *

有効な値

128バイト以下の任意の文字列を指定できます。

OCI_ATTR_AGENT_NAME

モード

READ/WRITE

説明

メッセージのプロデューサ名またはコンシューマ名です。

属性のデータ型

oratext *

有効な値

30バイト以下の任意のOracle Database識別子を指定できます。

OCI_ATTR_AGENT_PROTOCOL

モード

READ/WRITE

説明

アドレスを解釈しメッセージを伝播させるプロトコルです。デフォルト値(現在はこの値のみサポートされています)は0 (ゼロ)です。

属性のデータ型

ub1

有効な値

有効な値は0 (ゼロ)のみです。これはデフォルトでもあります。

OCIServerDNs記述子の属性

次に示す属性は、OCIServerDNs記述子のプロパティです。

OCI_ATTR_DN_COUNT

モード

READ

説明

記述子に挿入されたデータベース・サーバーの数です。

属性のデータ型

ub2

OCI_ATTR_SERVER_DN

モード

READ/WRITE

説明

読取りモードの場合、この属性は、記述子にすでに挿入されているOracle Databaseの識別名のリストを戻します。

書込みモードの場合、この属性は、Oracle Databaseの識別名を取得します。

属性のデータ型

oratext **/oratext *

サブスクリプション・ハンドル属性

サブスクリプション・ハンドルには、次の属性を使用します。

OCI_ATTR_SERVER_DNS

モード

READ/WRITE

説明

クライアントが登録用に使用するOracle Databaseの識別名です。

属性のデータ型

OCIServerDNs *

OCI_ATTR_SUBSCR_CALLBACK

モード

READ/WRITE

説明

サブスクリプション・コールバックです。属性OCI_ATTR_SUBSCR_RECPTPROTOOCI_SUBSCR_PROTO_OCIに設定されているか、または値が設定されていない場合、この属性は、サブスクリプション・ハンドルが登録コールOCISubscriptionRegister()に渡される前に設定する必要があります。

属性のデータ型

ub4 (void *, OCISubscription *, void *, ub4, void *, ub4)

OCI_ATTR_SUBSCR_CQ_QOSFLAGS

モード

WRITE

説明

連続問合せ(CQ)通知に固有のQOS(サービス品質フラグ)を設定します。渡すことができる可能な値については、「連続問合せ通知のサブスクリプション・ハンドル属性」を参照してください。

属性のデータ型

ub4 *

OCI_ATTR_SUBSCR_CTX

モード

READ/WRITE

説明

システムによって呼び出された際に、クライアントからOCI_ATTR_SUBSCR_CALLBACKが示すユーザー・コールバックに渡されるコンテキストです。属性OCI_ATTR_SUBSCR_RECPTPROTOOCI_SUBSCR_PROTO_OCIに設定されているか、または値が設定されていない場合、この属性は、サブスクリプション・ハンドルが登録コールOCI Subscription Register()に渡される前に設定する必要があります。

属性のデータ型

void *

OCI_ATTR_SUBSCR_HOSTADDR

モード

READ/WRITE

説明

OCISubscriptionRegister()を使用して通知を登録する前に、通知の送信先であるOCI通知クライアントのリスニング・エンドポイントのクライアントIP (IPv4またはIPv6書式)を指定します。IPv4アドレスをドット付き10進数書式(192.0.2.34など)で入力するか、IPv6アドレスを16進数書式(2001:0db8:0000:0000:0217:f2ff:fe4b:4cedなど)で入力します。


関連項目:

IPアドレス用のIPv6書式の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

属性のデータ型

text *

/* Set notification client address*/
text ipaddr[16] = "192.0.2.34";
(void) OCIAttrSet((dvoid *) envhp, (ub4) OCI_HTYPE_ENV,
                  (dvoid *) ipaddr, (ub4) strlen(ipaddr),
                  (ub4) OCI_ATTR_SUBSCR_HOSTADDR, errhp);

OCI_ATTR_SUBSCR_IPADDR

モード

READ/WRITE

説明

通知を受信するために、OCIクライアントが通知のリスニング用に登録したクライアントのIPアドレス(IPv4またはIPv6)です。たとえば、ドット付き10進数書式(192.1.2.34など)でのIPv4アドレスや、16進数書式(2001:0db8:0000:0000:0217:f2ff:fe4b:4cedなど)でのIPv6アドレスなどです。


関連項目:

IPアドレス用のIPv6書式の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

属性のデータ型

oratext *

OCI_ATTR_SUBSCR_NAME

モード

READ/WRITE

説明

サブスクリプション名です。すべてのサブスクリプションは、サブスクリプション名によって識別されます。サブスクリプション名は、指定された長さの一連のバイト数から構成されます。サブスクリプション名のバイト長は、この名前がNULLで終了しないことを前提として指定する必要があります。名前にマルチバイト・キャラクタが含まれる可能性があるため、この前提は重要です。

クライアントでは、OCIAttrSet()コールを使用して、OCI_HTYPE_SUBSCRのハンドル・タイプとOCI_ATTR_SUBSCR_NAMEの属性タイプを指定することによりサブスクリプション・ハンドルのサブスクリプション名属性を設定できます。

すべてのサブスクリプション・コールバックには、OCI_ATTR_SUBSCR_NAME属性およびOCI_ATTR_SUBSCR_NAMESPACE属性が設定されたサブスクリプション・ハンドルが必要です。これらの属性が設定されていない場合は、エラーが戻されます。サブスクリプション・ハンドルに設定されるサブスクリプション名は、そのネームスペースと一貫性を持たせる必要があります。

属性のデータ型

oratext *

OCI_ATTR_SUBSCR_NAMESPACE

モード

READ/WRITE

説明

サブスクリプション・ハンドルが使用されるネームスペースです。この属性の有効な値は、OCI_SUBSCR_NAMESPACE_AQOCI_SUBSCR_NAMESPACE_DBCHANGEおよびOCI_SUBSCR_NAMESPACE_ANONYMOUSです。

サブスクリプション・ハンドルに設定されるサブスクリプション名は、そのネームスペースと一貫性を持たせる必要があります。

属性のデータ型

ub4 *


注意:

OCI_OBJECTモードは通知のグループ化を使用する際に必須です。

OCI_ATTR_SUBSCR_NTFN_GROUPING_CLASS

モード

READ/WRITE

説明

通知グループ化クラスです。デフォルトの0(ゼロ)に設定した場合、他の通知グループ化属性はすべて0(ゼロ)である必要があります。最新のリリースで時間について実装されており、現行の唯一のグループ化基準です。OCI_SUBSCR_NTFN_GROUPING_CLASS_TIMEに設定できます。

属性のデータ型

ub1 *

OCI_ATTR_SUBSCR_NTFN_GROUPING_REPEAT_COUNT

モード

READ/WRITE

説明

グループ化を実行する回数です。通知の繰返し回数です。正の整数で指定します。グループ化通知を永続的に送信するには、OCI_NTFN_GROUPING_FOREVERに設定します。

属性のデータ型

sb4 *

OCI_ATTR_SUBSCR_NTFN_GROUPING_START_TIME

モード

READ/WRITE

説明

グループ化の開始時間です。有効なTIMESTAMP WITH TIME ZONEに設定します。デフォルトは現行のTIMESTAMP WITH TIME ZONEです。

属性のデータ型

OCIDateTime */OCIDateTime **

OCI_ATTR_SUBSCR_NTFN_GROUPING_TYPE

モード

READ/WRITE

説明

通知グループ化のフォーマットです。グループ内のすべてのイベントのサマリーまたはグループ内の最後のイベントのみのいずれかです。OCIAttrSet()を使用して、通知グループ化型OCI_SUBSCR_NTFN_TYPE_SUMMARYまたはOCI_SUBSCR_NTFN_TYPE_LASTのいずれかに設定します。デフォルトは通知のサマリーです。もう1つは最後の通知です。

属性のデータ型

ub1 *

OCI_ATTR_SUBSCR_NTFN_GROUPING_VALUE

モード

READ/WRITE

説明

グループ化クラスの値を指定します。時間については、この値は秒単位で指定したグループ化通知の期間です。つまり、この期間の後、OCI_ATTR_SUBSCR_NTFN_GROUPING_REPEAT_COUNTに到達するまでグループ化通知が定期的に送信されます。

属性のデータ型

ub4 *

OCI_ATTR_SUBSCR_PAYLOAD

モード

READ/WRITE

説明

通知とともに送信する必要があるペイロードに対応するバッファです。バッファ長も同じ属性設定コールに指定できます。サブスクリプションで転送を実行するには、この属性を設定する必要があります。現行リリースでは、タイプ化されていない(ub1 *)ペイロードのみをサポートします。

属性のデータ型

ub1 *

OCI_ATTR_SUBSCR_PORTNO

モード

READ/WRITE

説明

通知を受信するためのクライアント・ポートです。クライアントの環境ハンドルで設定されます。

属性のデータ型

ub4 *

OCI_ATTR_SUBSCR_QOSFLAGS

モード

READ/WRITE

説明

サーバーのサービス・レベル品質です。可能な設定は、次のとおりです。

  • OCI_SUBSCR_QOS_RELIABLE- 信頼性。データベースに障害が発生しても、通知は行われます。非永続キューやバッファ・メッセージに対してはサポートされません。

  • OCI_SUBSCR_QOS_PURGE_ON_NTFN- 受信後、通知を削除し、サブスクリプションも削除します。

  • OCI_SUBSCR_QOS_PAYLOAD- ペイロード通知。

属性のデータ型

ub4 *

OCI_ATTR_SUBSCR_RECPT

モード

READ/WRITE

説明

属性OCI_ATTR_SUBSCR_RECPTPROTOOCI_SUBSCR_PROTO_MAILOCI_SUBSCR_PROTO_HTTPまたはOCI_SUBSCR_PROTO_SERVERに設定されているときの通知の受信者名です。

OCI_SUBSCR_PROTO_HTTPの場合は、OCI_ATTR_SUBSCR_RECPTによって、通知の送信先HTTP URL (http://www.oracle.com:80など)が示されます。データベースでHTTP URLの妥当性がチェックされることはありません。

OCI_SUBSCR_PROTO_MAILの場合は、OCI_ATTR_SUBSCR_RECPTによって、通知の送信先の電子メール・アドレス(xyz@oracle.comなど)が示されます。データベース・システムで電子メール・アドレスの妥当性がチェックされることはありません。

OCI_SUBSCR_PROTO_SERVERの場合、OCI_ATTR_SUBSCR_RECPTは、通知がある場合に呼び出されるデータベース・プロシージャ(schema.procedureなど)を示します。サブスクライバには、実行するプロシージャに対する適切な権限が必要です。


関連項目:

プロシージャ定義については、「通知プロシージャ」を参照してください。

属性のデータ型

oratext *

OCI_ATTR_SUBSCR_RECPTPRES

モード

READ/WRITE

説明

クライアントが通知を受信するための表現です。有効な値は、OCI_SUBSCR_PRES_DEFAULTおよびOCI_SUBSCR_PRES_XMLです。

設定しない場合、この属性は、OCI_SUBSCR_PRES_DEFAULTにデフォルト設定されます。

XML表示のイベント通知の場合、この属性をOCI_SUBSCR_PRES_XMLに設定します。それ以外の場合は、属性を設定しないままにするか、OCI_SUBSCR_PRES_DEFAULTに設定します。

属性のデータ型

ub4

OCI_ATTR_SUBSCR_RECPTPROTO

モード

READ/WRITE

説明

クライアントが通知を受信するためのプロトコルです。有効な値は次のとおりです。

  • OCI_SUBSCR_PROTO_OCI

  • OCI_SUBSCR_PROTO_MAIL

  • OCI_SUBSCR_PROTO_SERVER

  • OCI_SUBSCR_PROTO_HTTP

OCIクライアントでイベント通知を受信する場合は、OCI_SUBSCR_PROTO_OCIに設定します。

電子メールをイベント通知で送信する場合は、OCI_SUBSCR_PROTO_MAILに設定します。イベント通知によってPL/SQLプロシージャをデータベースで呼び出す場合は、OCI_SUBSCR_PROTO_SERVERに設定します。HTTP URLをイベント通知に送信する場合は、OCI_SUBSCR_PROTO_HTTPに設定します。

設定しない場合、この属性は、OCI_SUBSCR_PROTO_OCIにデフォルト設定されます。

OCI_SUBSCR_PROTO_OCIの場合は、サブスクリプション・ハンドルを登録コールOCISubscriptionRegister()に渡す前に、OCI_ATTR_SUBSCR_CALLBACK属性とOCI_ATTR_SUBSCR_CTX属性を設定しておく必要があります。

OCI_SUBSCR_PROTO_MAILOCI_SUBSCR_PROTO_SERVERおよびOCI_SUBSCR_PROTO_HTTPの場合は、サブスクリプション・ハンドルを登録コールOCISubscriptionRegister()に渡す前に、OCI_ATTR_SUBSCR_RECPT属性を設定しておく必要があります。

属性のデータ型

ub4 *

OCI_ATTR_SUBSCR_TIMEOUT

モード

READ/WRITE

説明

登録タイムアウトの時間隔(秒)です。0 (ゼロ)または未指定の場合、登録はサブスクリプションが明示的に登録解除されるまで有効です。

属性のデータ型

ub4 *

連続問合せ通知属性

次の属性は、連続問合せ通知に使用されます。

OCI_ATTR_CHNF_CHANGELAG

モード

WRITE

説明

このトランザクション数ごとに連続問合せ通知がクライアントから行われます。

属性のデータ型

ub4 *

OCI_ATTR_CHNF_OPERATIONS

モード

WRITE

説明

操作タイプに基づいて通知をフィルタするために使用します。

属性のデータ型

ub4 *


関連項目:

フラグ値の詳細は、「連続問合せ通知」を参照してください。

OCI_ATTR_CHNF_ROWIDS

モード

WRITE

説明

TRUEの場合、連続問合せ通知メッセージには、操作タイプやROWIDなどの行レベルの詳細が含まれます。デフォルトはFALSEです。

属性のデータ型

boolean *

OCI_ATTR_CHNF_TABLENAMES

モード

READ

説明

登録された表名のリストを取り出すための属性です。これらの属性は、問合せの実行後にサブスクリプション・ハンドルから使用できます。

属性のデータ型

OCIColl **

連続問合せ通知の記述子の属性

次の属性は、連続問合せ通知の記述子に使用されます。

OCI_ATTR_CHDES_DBNAME

モード

READ

説明

データベース名です。

属性のデータ型

oratext **

OCI_ATTR_CHDES_NFTYPE

モード

READ

説明

通知タイプを記述するフラグです。

属性のデータ型

ub4 *


関連項目:

フラグ値の詳細は、「連続問合せ通知」を参照してください。

OCI_ATTR_CHDES_ROW_OPFLAGS

モード

READ

説明

操作タイプ(INSERTUPDATEDELETEまたはOTHER)です。

属性のデータ型

ub4 *

OCI_ATTR_CHDES_ROW_ROWID

モード

READ

説明

ROWIDの文字列表現です。

属性のデータ型

oratext **

OCI_ATTR_CHDES_TABLE_CHANGES

モード

READ

説明

表の操作を記述するコレクション型です。コレクションの各要素は、OCI_ATTR_CHDES_TABLEから始まる属性を持つOCI_DTYPE_TABLE_CHDES型の表連続問合せ記述子(OCITableChangeDesc *)です。次のエントリを参照してください。

属性のデータ型

OCIColl **

OCI_ATTR_CHDES_TABLE_NAME

モード

READ

説明

スキーマおよび表名です。たとえば、HR.EMPLOYEESです。

属性のデータ型

oratext **

OCI_ATTR_CHDES_TABLE_OPFLAGS

モード

READ

説明

表の操作を記述するフラグです。

属性のデータ型

ub4 *


関連項目:

フラグ値は、「OCI_DTYPE_TABLE_CHDES」を参照してください。

OCI_ATTR_CHDES_TABLE_ROW_CHANGES

モード

READ

説明

表の行への変更を記述する埋込みコレクションです。コレクションの各要素は、OCI_ATTR_CHDES_ROW_OPFLAGSおよびOCI_ATTR_CHDES_ROW_ROWID属性を持つOCI_DTYPE_ROW_CHDES型の行連続問合せ記述子(OCIRowChangeDesc *)です。

属性のデータ型

OCIColl **

通知の記述子の属性

次に、記述子OCI_DTYPE_AQNFYの属性を示します。

OCI_ATTR_AQ_NTFN_GROUPING_COUNT

モード

READ

説明

AQネームスペース用です。グループ内の受信した通知数です。

属性のデータ型

ub4 *

OCI_ATTR_AQ_NTFN_GROUPING_ MSGID_ARRAY

モード

READ

説明

AQネームスペース用です。この場合のグループは、メッセージIDのOCIコレクションです。

属性のデータ型

OCIColl **

OCI_ATTR_CONSUMER_NAME

モード

READ

説明

通知のコンシューマ名です。

属性のデータ型

oratext *

OCI_ATTR_MSG_PROP

モード

READ

説明

メッセージ・プロパティです。

属性のデータ型

OCIAQMsgProperties **

OCI_ATTR_NFY_FLAGS

モード

READ

説明

0=通常、1=タイムアウト通知、2=グループ化通知となります。

属性のデータ型

ub4 *

OCI_ATTR_NFY_MSGID

モード

READ

説明

メッセージIDです。

属性のデータ型

OCIRaw *

OCI_ATTR_QUEUE_NAME

モード

READ

説明

通知のキュー名です。

属性のデータ型

oratext *

無効化された問合せの属性

この項では、OCI_DTYPE_CQDESの属性について説明します。詳細は、「OCI_DTYPE_CQDES」を参照してください。

OCI_ATTR_CQDES_OPERATION

モード

READ

説明

問合せ時に発生した操作です。値OCI_EVENT_QUERYCHANGE(問合せ結果セットの変更)またはOCI_EVENT_DEREG(問合せ登録解除)のいずれかを使用できます。

属性のデータ型

ub4 *

OCI_ATTR_CQDES_QUERYID

モード

READ

説明

無効化された問合せの問合せIDです。

属性のデータ型

ub8 *

OCI_ATTR_CQDES_TABLE_CHANGES

モード

READ

説明

問合せ結果セットの変更原因となった表に対するDMLまたはDDL操作を記述する、表連続問合せ記述子のコレクションです。コレクションの各要素はOCI_DTYPE_TABLE_CHDES型です。

属性のデータ型

OCIColl *

ダイレクト・パス・ロード・ハンドル属性

次の属性は、ダイレクト・パス・ロード・ハンドルに使用されます。


関連項目:

ダイレクト・パス・ロードおよびダイレクト・パス・ハンドルの割当ての詳細は、「ダイレクト・パス・ロードの概要」および「オブジェクト型のダイレクト・パス・ロード」を参照してください。

ダイレクト・パス・コンテキスト・ハンドル(OCIDirPathCtx)の属性

次の属性は、ダイレクト・パス・コンテキスト・ハンドルに使用されます。

OCI_ATTR_BUF_SIZE

モード

READ/WRITE

説明

ストリーム転送バッファのサイズを設定します。デフォルト値は64KBです。

属性のデータ型

ub4 */ub4 *

OCI_ATTR_CHARSET_ID

モード

READ/WRITE

説明

文字データのデフォルトのキャラクタ・セットIDです。このキャラクタ・セットIDは、列レベルで上書きできることに注意してください。キャラクタ・セットIDが列レベルまたは表レベルで指定されていない場合は、グローバル・サポート環境設定が使用されます。

属性のデータ型

ub2 */ub2 *

OCI_ATTR_DATEFORMAT

モード

READ/WRITE

説明

SQLT_CHRからDTYDATに変換する際の、デフォルトの日付書式文字列です。この日付書式文字列は、列レベルで上書きできることに注意してください。日付書式文字列が列レベルまたは表レベルで指定されていない場合は、グローバル・サポート環境設定が使用されます。

属性のデータ型

oratext **/oratext *

OCI_ATTR_DIRPATH_DCACHE_DISABLE

モード

READ/WRITE

説明

この属性を1に設定すると、サイズを超えた場合に日付キャッシュが使用禁止になります。デフォルト値は0 (ゼロ)です。これは、キャッシュ・オーバーフロー時にキャッシュ内の検索が続行されることを示します。


関連項目:

この属性および次の4つの属性については、「OCIのダイレクト・パス・ロードでの日付キャッシュの使用」を参照してください。

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_DCACHE_HITS

モード

READ

説明

日付キャッシュのヒット数を問い合せます。

属性のデータ型

ub4 *

OCI_ATTR_DIRPATH_DCACHE_MISSES

モード

READ

説明

日付キャッシュに関する現在のミスの数を問い合せます。

属性のデータ型

ub4 *

OCI_ATTR_DIRPATH_DCACHE_NUM

モード

READ

説明

日付キャッシュ内の現在のエントリ数を問い合せます。

属性のデータ型

ub4 *

OCI_ATTR_DIRPATH_DCACHE_SIZE

モード

READ/WRITE

説明

表に日付キャッシュのサイズ(要素数単位)を設定します。日付キャッシュを使用禁止にするには、デフォルト値の0を設定します。

属性のデータ型

ub4 */ub4 *

OCI_ATTR_DIRPATH_INDEX_MAINT_METHOD

モード

READ/WRITE

説明

行単位で索引行の挿入を実行します。

次の値が有効です。

OCI_DIRPATH_INDEX_MAINT_SINGLE_ROW

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_MODE

モード

READ/WRITE

説明

ダイレクト・パス・コンテキストのモードです。

  • OCI_DIRPATH_LOAD - ロード操作(デフォルト)

  • OCI_DIRPATH_CONVERT - 変換専用操作

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_NO_INDEX_ERRORS

モード

READ/WRITE

説明

OCI_ATTR_DIRPATH_NO_INDEX_ERRORSが1である場合、索引はロード中のどの時点でも使用不可に設定されません。索引エラーが検出された場合、ロードは異常終了します。つまり、行はロードされず、索引はそのままとなります。デフォルトは0 (ゼロ)です。

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_NOLOG

モード

READ/WRITE

説明

各セグメントのNOLOG属性は、イメージREDOと無効化REDOのどちらが生成されるかを次のように判断します。

  • 0- ロードされるセグメントの属性を使用します。

  • 1- ログ記録を行いません。必要に応じてDDL文を上書きします。

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_OBJ_CONSTR

モード

READ/WRITE

説明

次のように、置換可能なオブジェクト表のオブジェクト型を示します。

OraText *obj_type; /* stores an object type name */
OCIAttrSet((void *)dpctx,
                           (ub4)OCI_HTYPE_DIRPATH_CTX,
                           (void *) obj_type,
                           (ub4)strlen((const char *) obj_type),
                           (ub4)OCI_ATTR_DIRPATH_OBJ_CONSTR, errhp);
属性のデータ型

oratext **/oratext *

OCI_ATTR_DIRPATH_PARALLEL

モード

READ/WRITE

説明

この値を1に設定すると、複数ロード・セッションで、共通のセグメントを同時にロードできます。デフォルトは0 (ゼロ)です(非パラレル)。

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_SKIPINDEX_METHOD

モード

READ/WRITE

説明

使用できない索引の処理方法を示します。

次の値が有効です。

  • OCI_DIRPATH_INDEX_MAINT_SKIP_UNUSABLE (使用できない索引をスキップする)

  • OCI_DIRPATH_INDEX_MAINT_DONT_SKIP_UNUSABLE (使用できない索引をスキップしない)

  • OCI_DIRPATH_INDEX_MAINT_SKIP_ALL (すべての索引メンテナンスをスキップする)

属性のデータ型

ub1 */ub1 *

OCI_ATTR_LIST_COLUMNS

モード

READ

説明

ダイレクト・パス・コンテキストに対応付けられた列リストのパラメータ記述子に、ハンドルを戻します。OCI_ATTR_NUM_COLS属性で列数を設定した後で、列リスト・パラメータ記述子を取り出すことができます。

属性のデータ型

OCIParam* *

OCI_ATTR_NAME

モード

READ/WRITE

説明

ロードされる表の名前です。

属性のデータ型

oratext **/oratext *

OCI_ATTR_NUM_COLS

モード

READ/WRITE

説明

表にロードされる列の数です。

属性のデータ型

ub2 */ub2 *

OCI_ATTR_NUM_ROWS

モード

READ/WRITE

説明

読取り時: これまでにロードした行の数です。

書込み時: ダイレクト・パスおよびダイレクト・パス関数の列配列に対して割り当てられた行の数です。

属性のデータ型

ub2 */ub2 *

OCI_ATTR_SCHEMA_NAME

モード

READ/WRITE

説明

ロードされる表が存在するスキーマの名前です。指定しない場合は、デフォルトで、接続ユーザーのスキーマが使用されます。

属性のデータ型

oratext **/oratext *

OCI_ATTR_SUB_NAME

モード

READ/WRITE

説明

ロードされるパーティションまたはサブパーティションの名前です。指定しない場合は、表全体がロードされます。名前は、その表に属する有効なパーティションまたはサブパーティションの名前にする必要があります。

属性のデータ型

oratext **/oratext *

ダイレクト・パス関数のコンテキスト・ハンドル(OCIDirPathFuncCtx)属性

これらの属性の詳細な説明は、「ダイレクト・パス関数コンテキストと属性」を参照してください。

OCI_ATTR_DIRPATH_EXPR_TYPE

モード

READ/WRITE

説明

スカラー列以外の関数コンテキストのOCI_ATTR_NAMEで指定された式の型を示します。

次の値が有効です。

  • OCI_DIRPATH_EXPR_OBJ_CONSTR (列オブジェクトのオブジェクト型名)

  • OCI_DIRPATH_EXPR_REF_TBLNAME (参照オブジェクトの表名)

  • OCI_DIRPATH_EXPR_SQL (列値を導出するためのSQL文字列)

属性のデータ型

ub1 */ub1 *

OCI_ATTR_LIST_COLUMNS

モード

READ

説明

ダイレクト・パス関数コンテキストに対応付けられた列リストのパラメータ記述子に、ハンドルを戻します。列リストのパラメータ記述子は、列数(スカラー列以外の列に対応付けられた属性または引数の数)を設定した後に、OCI_ATTR_NUM_COLS属性を使用して取り出すことができます。

属性のデータ型

OCIParam* *

OCI_ATTR_NAME

モード

READ/WRITE

説明

関数コンテキストが列オブジェクトを記述している場合はオブジェクト型名、SQL文字列を記述している場合はSQL関数、REF列を記述している場合は参照表名です。

属性のデータ型

oratext **/oratext *

OCI_ATTR_NUM_COLS

モード

READ/WRITE

説明

列が列オブジェクトの場合は、ロードするオブジェクト属性の数です。列がSQL文字列またはREF列の場合は、処理する引数の数です。このパラメータは、列リストが取り出される前に設定する必要があります。

属性のデータ型

ub2 */ub2 *

OCI_ATTR_NUM_ROWS

モード

READ

説明

これまでにロードした行の数です。

属性のデータ型

ub4 *

ダイレクト・パス関数の列配列ハンドル(OCIDirPathColArray)属性

次の属性は、ダイレクト・パス関数の列配列ハンドルに使用されます。

OCI_ATTR_COL_COUNT

モード

READ

説明

最後に処理された行の最終列です。

属性のデータ型

ub2 *

OCI_ATTR_NUM_COLS

モード

READ

説明

列配列の列ディメンションです。

属性のデータ型

ub2 *

OCI_ATTR_NUM_ROWS

モード

READ

説明

列配列の行ディメンションです。

属性のデータ型

ub4 *

OCI_ATTR_ROW_COUNT

モード

READ

説明

OCIDirPathColArrayToStream()の最後のコールで正しく変換された行数です。

属性のデータ型

ub4 *

ダイレクト・パス・ストリーム・ハンドル(OCIDirPathStream)属性

次の属性は、ダイレクト・パス・ストリーム・ハンドルに使用されます。

OCI_ATTR_BUF_ADDR

モード

READ

説明

ストリーム・データの先頭のバッファ・アドレスです。

属性のデータ型

ub1 **

OCI_ATTR_BUF_SIZE

モード

READ

説明

ストリーム・データのバイト単位のサイズです。

属性のデータ型

ub4 *

OCI_ATTR_ROW_COUNT

モード

READ

説明

最後のOCIDirPathLoadStream()コールで正しくロードされた行数です。

属性のデータ型

ub4 *

OCI_ATTR_STREAM_OFFSET

モード

READ

説明

最後に処理された行の、ストリーム・バッファへのオフセットです。

属性のデータ型

ub4 *

ダイレクト・パス列パラメータ属性

アプリケーションでは、各列パラメータ記述子に対して属性を設定することにより、ロードする列、およびデータの外部書式を指定します。列パラメータ記述子は、OCIParamGet()によって、列パラメータ・リストのパラメータとして取得されます。表の列パラメータ・リストは、ダイレクト・パス・コンテキストのOCI_ATTR_LIST_COLUMNS属性から取得されます。非スカラー列の場合、列パラメータ・リストは、そのダイレクト・パス関数コンテキストのOCI_ATTR_LIST_COLUMNS属性から取得されます。

すべてのパラメータは1を基準としていることに注意してください。

列パラメータ属性へのアクセス

次のコード例は、スカラー列のダイレクト・パス列パラメータ属性の使用方法を示しています。この属性にアクセスするには、最初に、ロードする列の数を設定して、OCI_ATTR_LIST_COLUMNS属性から列パラメータ・リストを取得する必要があります。


関連項目:

リストで定義されているデータ構造は、「スカラー列に対するダイレクト・パス・ロードの例」を参照してください。

...
  /* set number of columns to be loaded */
  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
            OCIAttrSet((void *)dpctx, (ub4)OCI_HTYPE_DIRPATH_CTX,
                       (void *)&tblp->ncol_tbl,
                       (ub4)0, (ub4)OCI_ATTR_NUM_COLS, ctlp->errhp_ctl));

  /* get the column parameter list */
  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
            OCIAttrGet((void *)dpctx, OCI_HTYPE_DIRPATH_CTX,
                       (void *)&ctlp->colLstDesc_ctl, (ub4 *)0,
                       OCI_ATTR_LIST_COLUMNS, ctlp->errhp_ctl));

これで、パラメータ属性を設定できます。

  /* set the attributes of each column by getting a parameter handle on each
   * column, then setting attributes on the parameter handle for the column.
   * Note that positions within a column list descriptor are 1-based. */

   for (i = 0, pos = 1, colp = tblp->col_tbl, fldp = tblp->fld_tbl;
       i < tblp->ncol_tbl;
       i++, pos++, colp++, fldp++)
  {
    /* get parameter handle on the column */
    OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
              OCIParamGet((const void  *)ctlp->colLstDesc_ctl,
                          (ub4)OCI_DTYPE_PARAM, ctlp->errhp_ctl,
                          (void  **)&colDesc, pos));

    colp->id_col = i;                  /* position in column array */

    /* set external attributes on the column */
    /* column name */
    OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
              OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)colp->name_col,
                         (ub4)strlen((const char *)colp->name_col),
                         (ub4)OCI_ATTR_NAME, ctlp->errhp_ctl));

    /* column type */
    OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
              OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)&colp->exttyp_col, (ub4)0,
                         (ub4)OCI_ATTR_DATA_TYPE, ctlp->errhp_ctl));

    /* max data size */
OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
              OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)&fldp->maxlen_fld, (ub4)0,
                         (ub4)OCI_ATTR_DATA_SIZE, ctlp->errhp_ctl));

    if (colp->datemask_col)    /* set column (input field) date mask */
    {
      OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
                OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)colp->datemask_col,
                         (ub4)strlen((const char *)colp->datemask_col),
                         (ub4)OCI_ATTR_DATEFORMAT, ctlp->errhp_ctl));
    }
    if (colp->prec_col)
    {
      OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
                OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)&colp->prec_col, (ub4)0,
                         (ub4)OCI_ATTR_PRECISION, ctlp->errhp_ctl));
    }
    if (colp->scale_col)
    {
      OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
                OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)&colp->scale_col, (ub4)0,
                         (ub4)OCI_ATTR_SCALE, ctlp->errhp_ctl));
    }
    if (colp->csid_col)
    {
      OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,
                OCIAttrSet((void  *)colDesc, (ub4)OCI_DTYPE_PARAM,
                         (void  *)&colp->csid_col, (ub4)0,
                         (ub4)OCI_ATTR_CHARSET_ID, ctlp->errhp_ctl));
    }
    /* free the parameter handle to the column descriptor */
    OCI_CHECK((void  *)0, 0, ociret, ctlp,
              OCIDescriptorFree((void  *)colDesc, OCI_DTYPE_PARAM));
  }
...

OCI_ATTR_CHARSET_ID

モード

READ/WRITE

説明

キャラクタ列のキャラクタ・セットIDです。設定しない場合は、ダイレクト・パス・コンテキスト内に設定されたキャラクタ・セットIDがデフォルトとして使用されます。

属性のデータ型

ub2 */ub2 *

OCI_ATTR_DATA_SIZE

モード

READ/WRITE

説明

列の外部データのバイト単位の最大サイズです。これは、変換バッファ・サイズに影響する可能性があります。

属性のデータ型

ub4 */ub4 *

OCI_ATTR_DATA_TYPE

モード

READ/WRITE

説明

列の外部データ型を戻すか、または設定します。次のデータ型が有効です。

  • SQLT_CHR

  • SQLT_DATE

  • SQLT_TIMESTAMP

  • SQLT_TIMESTAMP_TZ

  • SQLT_TIMESTAMP_LTZ

  • SQLT_INTERVAL_YM

  • SQLT_INTERVAL_DS

  • SQLT_CLOB

  • SQLT_BLOB

  • SQLT_INT

  • SQLT_UIN

  • SQLT_FLT

  • SQLT_PDN

  • SQLT_BIN

  • SQLT_NUM

  • SQLT_NTY

  • SQLT_REF

  • SQLT_VST

  • SQLT_VNU

属性のデータ型

ub2 */ub2 *

OCI_ATTR_DATEFORMAT

モード

READ/WRITE

説明

列の日付変換マスクです。設定しない場合、日付書式は、デフォルトでダイレクト・パス・コンテキスト内に設定された日付変換マスクになります。

属性のデータ型

oratext **/oratext *

OCI_ATTR_DIRPATH_OID

モード

READ/WRITE

説明

ロードする列は、オブジェクト表のオブジェクトID列であることを示します。

属性のデータ型

ub1 */ub1 *

OCI_ATTR_DIRPATH_SID

モード

READ/WRITE

説明

ロードする列は、ネストした表のsetid列であることを示します。

属性のデータ型

ub1 */ub1 *

OCI_ATTR_NAME

モード

READ/WRITE

説明

ロードされる列の名前を戻すか、または設定します。OCIAttrGet()をコールする前に、列名と列名の長さの両方を0に初期化します。

属性のデータ型

oratext **/oratext *

OCI_ATTR_PRECISION

モード

READ/WRITE

説明

精度を戻すか、または設定します。

属性のデータ型

明示的な記述の場合は、ub1 */ub1 *

暗黙的な記述の場合は、sb2 */sb2 *

OCI_ATTR_SCALE

モード

READ/WRITE

説明

パック10進数およびゾーン10進数の入力データ型からの変換のスケール(小数点以下の桁数)を戻すか、または設定します。

属性のデータ型

sb1 */sb1 *

プロセス・ハンドル属性

共有システムのパラメータは、OCIAttrSet()コールおよびOCIAttrGet()コールを使用して設定および読取りができます。使用するハンドル・タイプはプロセス・ハンドルOCI_HTYPE_PROCです。

属性OCI_ATTR_MEMPOOL_APPNAMEOCI_ATTR_MEMPOOL_HOMENAMEおよびOCI_ATTR_MEMPOOL_INSTNAMEは、それぞれアプリケーション、ホームおよびインスタンスの名前を指定し、プロセスを正しい共有プール領域にマップするために同時に使用できます。これらの属性を指定しない場合は、内部のデフォルト値が使用されます。次に、特定の動作に対する属性の有効な設定を示します。

  • インスタンス名、アプリケーション名(非修飾): この設定では、特定の名前の実行可能ファイルのみが、共通の共有サブシステムに接続できます。たとえば、「Office」という名前のOCIアプリケーションが、「Office」が存在するディレクトリに関係なく、共通の共有サブシステムに接続できます。

  • インスタンス名、ホーム名: この設定では、特定のホーム・ディレクトリ内の一連の実行可能ファイルが、共有サブシステムの同じインスタンスに接続できます。たとえば、ORACLE_HOMEディレクトリに存在するすべてのOCIアプリケーションが、共通の共有サブシステムを使用できます。

  • インスタンス名、ホーム名、アプリケーション名(非修飾): この設定では、特定の実行可能ファイルのみが、共有サブシステムに接続できます。たとえば、ORACLE_HOMEディレクトリ内の「Office」という名前の1つのアプリケーションが、指定の共有サブシステムに接続できます。

OCI_ATTR_MEMPOOL_APPNAME

モード

READ/WRITE

説明

実行可能ファイルのファイル名または完全修飾パス名です。

属性のデータ型

oratext *

OCI_ATTR_MEMPOOL_HOMENAME

モード

READ/WRITE

説明

共通の共有サブシステム・インスタンスを使用する実行可能ファイルが存在するディレクトリ名です。

属性のデータ型

oratext *

OCI_ATTR_MEMPOOL_INSTNAME

モード

READ/WRITE

説明

共有サブシステムのインスタンスを識別する、任意のユーザー定義名です。

属性のデータ型

oratext *

OCI_ATTR_MEMPOOL_SIZE

モード

READ/WRITE

説明

共有プールのバイト単位のサイズです。この属性は次のように設定されます。

ub4 plsz = 1000000;
OCIAttrSet((void  *)0, (ub4) OCI_HTYPE_PROC,
           (void  *)&plsz, (ub4) 0, (ub4) OCI_ATTR_POOL_SIZE, 0);
属性のデータ型

ub4 *

OCI_ATTR_PROC_MODE

モード

READ

説明

現在設定されているすべてのプロセス・モードを戻します。読み取られる値には、現在設定されているすべてのOCIプロセス・モードの論理和をとった値が含まれます。特定のモードが設定されているかどうかを判断するには、そのモードで値の論理積をとります。たとえば、次のようにします。

ub4 mode;
boolean is_shared;

OCIAttrGet((void  *)0, (ub4)OCI_HTYPE_PROC,
           (void  *) &mode, (ub4 *) 0,
           (ub4)OCI_ATTR_PROC_MODE, 0);

is_shared = mode & OCI_SHARED;
属性のデータ型

ub4 *

イベント・ハンドル属性

OCIEventハンドルは、イベント・ペイロードの属性をカプセル化します。このハンドルは、イベント・コールバックをコールする前に暗黙的に割り当てられます。

イベント・コールバックは、次の属性とともにOCIAttrGet()を使用して、イベントの属性を取得します。

OCI_ATTR_DBDOMAIN

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、このイベントによる影響を受けたデータベース・ドメイン名が取り出されます。これもサーバー・ハンドル属性です。

属性のデータ型

oratext **

OCI_ATTR_DBNAME

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、このイベントによる影響を受けたデータベース名が取り出されます。これもサーバー・ハンドル属性です。

属性のデータ型

oratext **

OCI_ATTR_EVENTTYPE

モード

READ

説明

発生したイベントのイベント型OCI_EVENTTYPE_HAです。

属性のデータ型

ub4 *

OCI_ATTR_HA_SOURCE

モード

READ

説明

イベント型がOCI_EVENTTYPE_HAである場合、この属性を使用してイベントのソースを取得します。次の値が有効です。

  • OCI_HA_SOURCE_DATABASE

  • OCI_HA_SOURCE_NODE

  • OCI_HA_SOURCE_INSTANCE

  • OCI_HA_SOURCE_SERVICE

  • OCI_HA_SOURCE_SERVICE_MEMBER

  • OCI_HA_SOURCE_ASM_INSTANCE

  • OCI_HA_SOURCE_SERVICE_PRECONNECT

属性のデータ型

ub4 *

OCI_ATTR_HA_SRVFIRST

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、Oracle Real Application Clusters (Oracle RAC) HA DOWNイベントによる影響を受けたサーバー・ハンドルのリストから最初のサーバー・ハンドルが取り出されます。

属性のデータ型

OCIServer **

OCI_ATTR_HA_SRVNEXT

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、Oracle RAC HA DOWNイベントによる影響を受けたサーバー・ハンドルのリストから次のサーバー・ハンドルが取り出されます。

属性のデータ型

OCIServer **

OCI_ATTR_HA_STATUS

モード

READ

説明

有効な値はOCI_HA_STATUS_DOWNです。現在、サブスクライブされているのはDOWNイベントのみです。

属性のデータ型

ub4 *

OCI_ATTR_HA_TIMESTAMP

モード

READ

説明

HAイベントが発生した時刻です。

属性のデータ型

OCIDateTime **

OCI_ATTR_HOSTNAME

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、このイベントによる影響を受けたホストの名称が取り出されます。

属性のデータ型

oratext **

OCI_ATTR_INSTNAME

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、このイベントによる影響を受けたインスタンスの名称が取り出されます。これもサーバー・ハンドル属性です。

属性のデータ型

oratext **

OCI_ATTR_INSTSTARTTIME

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、このイベントによる影響を受けたインスタンスの起動時間が取り出されます。これもサーバー・ハンドル属性です。

属性のデータ型

OCIDateTime **

OCI_ATTR_SERVICENAME

モード

READ

説明

この属性を使用してOCIAttrGet()をコールすると、このイベントによる影響を受けたサービスの名称が取り出されます。名前の長さはub4 *です。これもサーバー・ハンドル属性です。

属性のデータ型

oratext **