7.33 CREATE_COLLECTION_FROM_QUERY_Bプロシージャ(バインド・バージョンなし)
このプロシージャを使用して、指定した問合せ(バルク操作を使用)からコレクションを作成します。このメソッドは、CREATE_COLLECTION_FROM_QUERY
メソッドよりも非常に高速です。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。
このプロシージャは、バルク動的SQLを使用して、名前付きコレクションにフェッチ操作と挿入操作を実行します。このプロシージャには、2つの制限事項があります。
-
メンバー・データに対してMD5チェックサムは計算されません。
-
問合せp_queryの列値は、2,000バイト以内である必要があります。列値が2,000バイトを超える行がある場合は、実行中にエラーが発生します。Oracle Database 11gリリース2(11.2.0.1)以降では、この列の制限は4,000バイトです。
構文
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B
(
p_collection_name IN VARCHAR2,
p_query IN VARCHAR2,
p_max_row_count IN NUMBER DEFAULT null);
パラメータ
表7-12 CREATE_COLLECTION_FROM_QUERY_Bプロシージャ(バインド・バージョンなし)のパラメータ
パラメータ | 説明 |
---|---|
|
コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。 |
|
コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。 |
|
p_queryの問合せから戻され、コレクションに追加する必要がある行の最大数。 |
例
次の例は、CREATE_COLLECTION_FROM_QUERY_B
プロシージャを使用して、EMPLOYEES
というコレクションを作成し、そこにemp
表のデータを移入する方法を示しています。
declare
l_query varchar2(4000);
Begin
l_query := 'select empno, ename, job, sal from emp';
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B
(
p_collection_name => 'EMPLOYEES',
p_query => l_query );
End;
親トピック: APEX_COLLECTION