ヘッダーをスキップ
Oracle Databaseデータ・カートリッジ開発者ガイド
11gリリース1(11.1)
E05688-02
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

22 ユーザー定義集計関数インタフェース

この章では、ユーザー定義集計関数を定義するために実装する必要のあるルーチンについて説明します。各ルーチンは、オブジェクト型のメソッドとして実装します。その後、CREATE FUNCTION文を使用して実際に集計関数を作成します。

この章の内容は、次のとおりです。

ユーザー定義集計関数

この項で説明するメソッドは、オブジェクト型のメソッドとして実装します。実際に集計関数を作成するには、CREATE FUNCTION文を使用します。表22-1に、これらの関数を示します。

表22-1 ユーザー定義集計関数の概要

関数 説明

ODCIAggregateDelete()


現行のグループから入力値を削除します。

ODCIAggregateInitialize()


実装オブジェクト型の集計コンテキストとインスタンスを初期化し、OUTパラメータとして戻します。

ODCIAggregateIterate()


入力値を処理し、更新してから集計コンテキストを戻すことで、入力行全体を反復します。

ODCIAggregateMerge()


ユーザー定義集計のシリアル評価中またはパラレル評価中に、2つの集計コンテキストをマージして1つのオブジェクト・インスタンスにします。

ODCIAggregateTerminate()


集計計算の結果を計算し、メモリーの解放などの必要なクリーン・アップをすべて実行します。

ODCIAggregateWrapContext()


現行の集計コンテキストの外部ピースをすべて統合し、コンテキストを自己完結型にします。


ODCIAggregateDelete()

現行のグループから入力値を削除します。このルーチンは、集計コンテキストと実行中に削除される入力値を渡すことでOracleにより起動されます。このルーチンは入力値を処理し、集計コンテキストを更新し、コンテキストを戻します。これはオプション・ルーチンであり、メンバー・メソッドとして実装されます。

構文

MEMBER FUNCTION ODCIAggregateDelete(
   self IN OUT <impltype>,
   val <inputdatatype>)
RETURN NUMBER
パラメータ IN/OUT 説明
self
IN OUT
入力の場合は現行の集計コンテキストの値、出力の場合は更新済の値。
val
IN
現行のグループから削除される入力値。

戻り値

正常終了した場合はODCIConst.Success、エラーの場合はODCIConst.Error

ODCIAggregateInitialize()

実装オブジェクト型の集計コンテキストとインスタンスを初期化し、OUTパラメータとして戻します。このルーチンは静的メソッドとして実装します。

構文

STATIC FUNCTION ODCIAggregateInitialize(
   actx IN OUT <impltype>)
RETURN NUMBER
パラメータ IN/OUT 説明
actx
IN OUT
ルーチンにより初期化される集計コンテキスト。この値は、標準集計の場合はNULLです。ウィンドウ集計の場合、actxは前のウィンドウのコンテキストです。このオブジェクト・インスタンスは、次の集計ルーチンにパラメータとして渡されます。

戻り値

正常終了した場合はODCIConst.Success、エラーの場合はODCIConst.Error

ODCIAggregateIterate()

入力値を処理し、更新してから集計コンテキストを戻すことで、入力行全体を反復します。NULLを含めて値ごとに起動されます。これは必須ルーチンであり、メンバー・メソッドとして実装されます。

構文

MEMBER FUNCTION ODCIAggregateIterate(
   self IN OUT <impltype>,
   val <inputdatatype>)
RETURN NUMBER
パラメータ IN/OUT 説明
self
IN OUT
入力の場合は現行の集計コンテキストの値、出力の場合は更新済の値。
val
IN
集計される入力値。

戻り値

正常終了した場合はODCIConst.Success、エラーの場合はODCIConst.Error

ODCIAggregateMerge()

ユーザー定義集計のシリアル評価中またはパラレル評価中に、2つの集計コンテキストをマージして1つのオブジェクト・インスタンスにします。これは必須ルーチンであり、メンバー・メソッドとして実装されます。

構文

MEMBER FUNCTION ODCIAggregateMerge(
   self IN OUT <impltype>,
   ctx2 IN <impltype>)
RETURN NUMBER
パラメータ IN/OUT 説明
self
IN OUT
入力の場合は最初の集計コンテキストの値、出力の場合はマージされた2つの集計コンテキストの結果値。
ctx2
IN
第2の集計コンテキストの値。

戻り値

正常終了した場合はODCIConst.Success、エラーの場合はODCIConst.Error

ODCIAggregateTerminate()

集計計算の結果を計算し、メモリーの解放などの必要なクリーン・アップをすべて実行します。Oracleにより集計計算の最終ステップとして起動されます。これは必須ルーチンであり、メンバー・メソッドとして実装されます。

構文

MEMBER FUNCTION ODCIAggregateTerminate(
   self IN <impltype>,
   ReturnValue OUT <return_type>,
   flags IN number)
RETURN NUMBER
パラメータ IN/OUT 説明
self
IN
集計コンテキストの値。
ctx2
OUT
結果的な集計値。
flags
IN
各種オプションを示すビット・ベクター。ODCI_AGGREGATE_REUSE_CTXの設定ビットは、コンテキストが再利用され、外部コンテキストが解放されないことを示します。

戻り値

正常終了した場合はODCIConst.Success、エラーの場合はODCIConst.Error


関連項目

ODCI_AGGREGATE_REUSE_CTXフラッグ・ビットの設定の詳細は、分析関数への集計コンテキストの再利用に関する項を参照してください。

ODCIAggregateWrapContext()

現行の集計コンテキストの外部ピースをすべて統合し、コンテキストを自己完結型にします。ユーザー定義集計が外部コンテキストを持つように宣言されており、スレーブ・プロセスから部分集計を送信している場合に、Oracleにより起動されます。これはオプション・ルーチンであり、メンバー・メソッドとして実装されます。

構文

MEMBER FUNCTION ODCIAggregateWrapContext(
   self IN OUT <impltype>)
RETURN NUMBER
パラメータ IN/OUT 説明
self
IN
入力の場合は現行の集計コンテキストの値、出力の場合は自己完結型の結合済集計コンテキスト。

戻り値

正常終了した場合はODCIConst.Success、エラーの場合はODCIConst.Error


関連項目

この関数の使用方法の詳細は、大規模な集計コンテキストの処理に関する項を参照してください。