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