この章では、サポートされている言語すべてに汎用的に適用されるシステム定義定数とシステム定義型について説明します。また、PL/SQL、CおよびJavaの各言語に固有のマッピングについても説明します。
この章の内容は、次のとおりです。
この章で説明する定数はすべて、catodci.sqlスクリプトの一部としてインストールされるODCIConstパッケージ内で定義されています。Cルーチン内で使用する等価の定義は、odci.hにあります。基礎となる値をルーチン内でハードコード化するかわりに、これらの定数を使用する必要があります。データベースまたはパケットの状態が意図せずに破損しないように、これらのメソッドとともに常に次の文を使用して読取りと書込みを制限します。
pragma restrict_references(ODCIConst, WNDS, RNDS, WNPS, RNPS);
この項で説明するオプションは、次の2つのカテゴリにわかれています。
OR演算子を使用して結合できるビット・フィールド値: ODCIIndexAlterオプション(表19-1)、ODCIIndexInfoフラグ・ビット(表19-4)、ODCIPredInfoフラグ・ビット(表19-5)、ODICI FuncInfoフラグ・ビット(表19-6)、ODCIQueryInfoフラグ・ビット(表19-7)、ODCIStatsOptionsフラグ・ビット(表19-8)およびODCIStatsOptionsオプション・ビット(表19-9)
オプションを1つのみ指定できる個別値: ODCIArgDesc ArgType値(表19-2)、ODCIEnv CallProperty値(表19-3)、ScnFlg値(表19-10)およびReturnStatus値(表19-11)
表19-1 ODCIIndexAlterのオプション
| 名前 | 説明 |
|---|---|
AlterIndexNone |
デフォルト・オプション |
AlterIndexRename |
パーティション名の変更オプション |
AlterIndexRebuild |
索引の再作成オプション |
AlterIndexUpdBlockRefs |
索引構成表更新ブロック参照オプション |
表19-2 ODCIArgDesc.ArgTypeの値
| 名前 | 説明 |
|---|---|
ArgOther |
引数は他の式 |
ArgCol |
引数は列名 |
ArgLit |
引数はリテラル値 |
ArgAttr |
引数はADT |
ArgCursor |
引数は |
ArgNull |
引数は |
表19-3 ODCIEnv.CallPropertyの値
| 名前 | 説明 |
|---|---|
None |
デフォルト・オプション |
FirstCall |
第1パーティションのコール |
Intermediate Call |
中間パーティションのコール |
FinalCall |
最後のパーティションの後の最終コール |
表19-4 ODCIIndexInfo.Flagsのビット
| 名前 | 説明 |
|---|---|
Local |
ローカル・ドメイン索引を示します。 |
RangePartn |
ローカル・ドメイン索引について、実表がレンジ・パーティション化されることを示します。必ず |
Parallel |
索引の作成または変更操作に対して並列度が指定されたことを示します。 |
Unusable |
索引作成時に |
IndexOnIOT |
索引構成表にドメイン索引が定義されることを示します。 |
TransTblspc |
トランスポータブル表領域セッションでドメイン索引が作成されることを示します。 |
FunctionIdx |
索引がファンクション・ドメイン索引であることを示します。 |
表19-5 ODCIIPredInfo.Flagsのビット
| 名前 | 説明 |
|---|---|
PredExactMatch |
等価述語。 |
PredPrefixMatch |
|
PredIncludeStart |
索引レンジ・スキャンの開始値を含みます。 |
PredIncludeStop |
索引レンジ・スキャンの終了値を含みます。 |
PredObjectFunc |
述語の左辺はスタンドアロン・ファンクションです。 |
PredObjectPkg |
述語の左辺はパッケージ・ファンクションです。 |
PredObjectType |
述語の左辺は型のメソッドです。 |
PredObjectTable |
述語に複数の表の列が含まれます。 |
表19-6 ODCIFuncInfo.Flagsのビット
| 名前 | 説明 |
|---|---|
ObjectFunc |
スタンドアロン・ファンクション |
ObjectPkg |
パッケージ・ファンクション |
ObjectType |
型のメソッド |
表19-7 ODCIQueryInfo.Flagsのビット
| 名前 | 説明 |
|---|---|
QueryFirstRows |
オプティマイザ・モードは |
QueryAllRows |
オプティマイザ・モードは |
表19-8 ODCIStatsOptions.Flagsのビット
| 名前 | 説明 |
|---|---|
EstimateStats |
統計見積オプション |
ComputeStats |
正確な統計の計算オプション |
Validate |
索引検証オプション |
多数のシステム定義型がOracleで定義されており、作成するにはcatodci.sqlカタログ・スクリプトを実行する必要があります。これらのオブジェクト型のCマッピングはodci.hに定義されています。第20章および第21章で説明するODCIIndexおよびODCIStatsルーチンでは、これらの型をパラメータとして使用します。
特に明記しないかぎり、型の属性として解析される名前は引用符なしの識別子です。
オブジェクト型。ファンクションまたは演算子の引数を格納します。
表19-12 ODCIArgDescファンクション/演算子の引数の説明: 属性
| 名前 | データ型 | 説明 |
|---|---|---|
ArgType |
NUMBER |
引数の型。 |
TableName |
VARCHAR2(30) |
表名。 |
TableSchema |
VARCHAR2(30) |
表を含むスキーマ。 |
ColName |
VARCHAR2(4000) |
列名。"A" |
TablePartitionLower |
VARCHAR2(30) |
問合せでアクセスされる最下位の表パーティションの名前を含みます。 |
TablePartitionUpper |
VARCHAR2(30) |
問合せでアクセスされる最上位の表パーティションの名前を含みます。 |
Cardinality |
NUMBER |
|
オブジェクト型。拡張性ルーチンの実行環境に関する一般情報が含まれます。
表19-15 ODCIEnv環境変数記述子情報: 属性
| 名前 | データ型 | 目的 |
|---|---|---|
|
|
|
1 = デバッグ・オン |
|
|
|
|
|
|
|
デバッグ・レベル |
使用方法
CallPropertyはローカル・ドメイン索引にのみ使用されます。非ローカル・ドメイン索引の場合は、常に0に設定されます。ローカル・ドメイン索引の場合、CallPropertyは同じルーチンが複数回コールされる場合の現在のコールを示す値に設定されます。
たとえば、ローカル・ドメイン索引を作成する場合、ODCIIndexCreateルーチンはn+2回コールされます。nはパーティション数です。CallPropertyは、最初のコールではFirstCall、n回の中間コールではIntermediateCall、最終コールではFinalCallに設定されます。
CallPropertyが使用されるのは、CREATE INDEX、DROP INDEX、TRUNCATE TABLEおよびローカル・ドメイン索引に対する一部の拡張可能オプティマイザ関連コールの場合のみです。ローカル・ドメイン索引に対するDMLおよび問合せルーチンなど、他のすべての場合は0に設定されます。
オブジェクト型。ドメイン索引に関連するメタデータ情報を格納します。すべてのODCIIndexルーチンにパラメータとして渡されます。
表19-17 ODCIIndexInfo索引関連情報: 属性
| 名前 | データ型 | 目的 |
|---|---|---|
IndexSchema |
|
ドメイン索引を含むスキーマ。 |
IndexName |
|
ドメイン索引名。 |
IndexCols |
ODCIColInfoList |
索引付けされた列のリスト。 |
IndexPartition |
VARCHAR2(30) |
ローカル・ドメイン索引の場合、特定の索引パーティションの名前を含みます。 |
IndexInfoFlags |
NUMBER |
可能なフラグは次のとおりです。
|
IndexParaDegree |
NUMBER |
並列度(ドメイン索引またはローカル・ドメイン索引パーティションをパラレルに作成または再作成するときに指定されている場合)。 |
オブジェクト型。ユーザー定義演算子またはファンクションを含む述語に関連するメタデータ情報を格納します。ODCIIndexStart()問合せルーチンにもパラメータとして渡されます。
表19-18 ODCIPredInfo演算子関連情報: 属性
| 名前 | データ型 | 目的 |
|---|---|---|
ObjectSchema |
|
演算子/ファンクションのスキーマ。 |
ObjectName |
|
演算子/ファンクションの名前。 |
MethodName |
|
パッケージのメソッドの型にのみ適用されるメソッド名。 |
Flags |
|
可能なフラグは次のとおりです。
|
オブジェクト型。 DBMS_STATSのオプション情報を格納します。
表19-23 ODCIStatsOptionsコスト情報: 属性
| 名前 | データ型 | 目的 |
|---|---|---|
|
|
サンプル・サイズ |
|
|
|
|
|
|
この項では、言語固有のマッピングについて説明します。
様々なPL/SQLマッピングが拡張可能索引付けと拡張可能オプティマイザの両方で共通しています。
定数は、catodci.sqlにあるODCIConstパッケージ内で定義されています。
型は、catodci.sqlにあるオブジェクト型として定義されています。