プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 5.32 CREATE_COLLECTION_FROM_QUERY_Bプロシージャ

このプロシージャを使用して、指定した問合せ(バルク操作を使用)からコレクションを作成します。このメソッドは、`CREATE_COLLECTION_FROM_QUERY`メソッドよりも非常に高速です。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

このプロシージャは、バルク動的SQLを使用して、名前付きコレクションにフェッチ操作と挿入操作を実行します。このプロシージャには、2つの制限事項があります。

1. メンバー・データに対してMD5チェックサムは計算されません。

2. 問合せ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_names IN apex_application_global.vc_arr2,
        p_values IN apex_application_global.vc_arr2,
        p_max_row_count IN NUMBER DEFAULT null);

パラメータ

表5-11 CREATE_COLLECTION_FROM_QUERY_Bプロシージャのパラメータ

パラメータ | 説明
--- | ---
`p_collection_name` | コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。
`p_query` | コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。
`p_names` | 問合せ文で使用されるバインド変数名の配列。
`p_values` | 問合せ文内のバインド変数で使用されるバインド変数値の配列。
`p_max_row_count` | p_queryの問合せから戻され、コレクションに追加する必要がある行の最大数。

例

次の例は、`CREATE_COLLECTION_FROM_QUERY_B`プロシージャを使用して、`EMPLOYEES`というコレクションを作成し、そこに`emp`表のデータを移入する方法を示しています。

    declare
         l_query varchar2(4000);
     Begin
         l_query := 'select empno, ename, job, sal from emp where deptno = :b1';
         APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B (
             p_collection_name => 'EMPLOYEES',
             p_query => l_query,
             p_names => apex_util.string_to_table('b1'),
             p_values => apex_util.string_to_table('10'));
     End;

参照:

- 「GET_MEMBER_MD5ファンクション」

- 「CREATE_COLLECTIONプロシージャ」

- CREATE_OR_TRUNCATE_COLLECTIONプロシージャ

- 「CREATE_COLLECTION_FROM_QUERYプロシージャ」

- 「CREATE_COLLECTION_FROM_QUERY2プロシージャ」

- 「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」