ヘッダーをスキップ
Oracle® Application Express APIリファレンス
リリース4.2 for Oracle Database 12c
B71340-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 APEX_COLLECTION

コレクションを使用すると、1つ以上の非スカラー値を一時的に取得できます。コレクションを使用して、現在セッション・ステートにある行および列を格納します。これによって、あるユーザーの特定のセッション中にそれらの行および列に対してアクセス、操作または処理を行うことができます。コレクションは、バケツのようなものと考えることができます。その中に情報の行を一時的に格納し、その情報を指定できます。

トピック:

APEX_COLLECTION APIについて

各コレクションには、データ要素(メンバー)の名前付きリストが含まれます。このリストには、最大50個の文字属性(VARCHAR2(4000))、5個の数値属性、5個の日付属性、1個のXMLタイプ属性、1個のラージ・バイナリ属性(BLOB)および1個のラージ・キャラクタ属性(CLOB)を含めることができます。PL/SQL API APEX_COLLECTIONを使用して、コレクション情報を挿入、更新および削除します。

次に、コレクションを使用する場合の例を示します。

  • データ入力ウィザードを作成しており、そのウィザードで、まず論理トランザクション中に複数行の情報を収集する必要がある場合。物理トランザクションと論理トランザクションの両方の完了時、ウィザードの最終ステップを実行する前に、コレクションを使用して、複数行の情報のコンテンツを一時的に格納できます。

  • アプリケーションに、ユーザーが1つのページで複数の詳細行を更新する更新ページが含まれている場合。ユーザーは、複数の更新を行い、それらの更新をコレクションに適用した後、最終プロセスをコールしてそれらの変更をデータベースに適用できます。

  • 任意の数の属性を収集するウィザードを構築している場合。コレクションに一時的に格納された情報が取得され、データベースに適用されるタスクをウィザードの最後にユーザーが実行するようにします。

Oracle Database 12cから、データ型VARCHAR2のデータベース列は32,767バイトまで定義できます。これには、データベース初期化パラメータMAX_STRING_SIZEEXTENDEDの値があることが必要です。Application ExpressがOracle Database 12cにインストールされ、MAX_STRING_SIZE = EXTENDEDの場合、Application Expressコレクションの表は、コレクションの文字属性について32,767バイトまでサポートするように定義されます。APEX_COLLECTION APIのメソッドでは、文字属性へのすべての参照(c001からc050)は32,767バイトまでサポート可能です。

トピック:

コレクションのネーミング、作成およびアクセス

トピック:

コレクションのネーミング

コレクションを作成する場合、255文字以下の名前を付ける必要があります。コレクション名の大/小文字は区別されず、すべて大文字に変換されます。

コレクションに名前を付けた後、コレクション内の値にアクセスするには、APEX_COLLECTIONSビューに対してSQL問合せを実行します。

コレクションの作成

各コレクションには、データ要素(メンバー)の名前付きリストが含まれます。このリストには、最大50個の文字属性(VARCHAR2(4000))、5個の数値属性、1個のXMLタイプ属性、1個のラージ・バイナリ属性(BLOB)および1個のラージ・キャラクタ属性(CLOB)を含めることができます。次のメソッドを使用してコレクションを作成します。

パラメータp_generate_md5

p_generate_md5フラグを使用して、コレクション・メンバーのデータのメッセージ・ダイジェストを計算する必要があるかどうかを指定します。デフォルトでは、このフラグはNOに設定されています。このパラメータを使用して、コレクション・メンバーのMD5をチェックします(つまり、MD5を他のメンバーと比較して、メンバーが変更されたかどうかを確認します)。


参照:

ファンクションGET_MEMBER_MD5の使用方法については、「コレクション・ステータスの判別」および「GET_MEMBER_MD5ファンクション」を参照してください。

コレクションへのアクセス

データベース・ビューAPEX_COLLECTIONSを問い合せると、コレクションのメンバーにアクセスできます。APEX_COLLECTIONSビューには、次の定義が含まれます。

COLLECTION_NAME   NOT NULL VARCHAR2(255)
SEQ_ID            NOT NULL NUMBER 
C001              VARCHAR2(4000)
C002              VARCHAR2(4000)
C003              VARCHAR2(4000)   
C004              VARCHAR2(4000)   
C005              VARCHAR2(4000)  
...
C050              VARCHAR2(4000)
N001              NUMBER
N002              NUMBER
N003              NUMBER
N004              NUMBER
N005              NUMBER     
CLOB001           CLOB
BLOB001           BLOB  
XMLTYPE001        XMLTYPE
MD5_ORIGINAL      VARCHAR2(4000)  

APEX_COLLECTIONSビューは、アプリケーションで、アプリケーション内の他の表またはビューと同様に使用します。次に例を示します。

SELECT c001, c002, c003, n001, clob001
   FROM APEX_collections
 WHERE collection_name = 'DEPARTMENTS'

コレクションのマージ、切捨ておよび削除

トピック:

コレクションのマージ

コレクションのメンバーを、配列の集合として渡した値とマージできます。p_init_query引数を使用することで、指定した問合せからコレクションを作成できます。

コレクションの切捨て

コレクションを切り捨てると、指定したコレクションからすべてのメンバーが削除されますが、名前付きコレクションはそのまま残ります。

コレクションの削除

コレクションを削除すると、コレクションとそのすべてのメンバーが削除されます。自分でコレクションを削除しなくても、セッションの消去時にコレクションが削除されることに注意してください。

現在のアプリケーションに関するすべてのコレクションの削除

現在のアプリケーションに定義されたすべてのコレクションを削除するには、DELETE_ALL_COLLECTIONSメソッドを使用します。

現在のセッションにおけるすべてのコレクションの削除

現在のセッションに定義されたすべてのコレクションを削除するには、DELETE_ALL_COLLECTIONS_SESSIONメソッドを使用します。

コレクション・メンバーの追加、更新および削除

トピック:

コレクションへのメンバーの追加

コレクションに追加したデータ要素(メンバー)には、一意の順序番号が割り当てられます。メンバーをコレクションに追加すると、最も新しいメンバーが一番大きい番号を持つように、前のメンバーより1大きい番号が新しいメンバーに割り当てられます。

コレクションに新しいメンバーを追加するには、ADD_MEMBERファンクションを使用します。このファンクションをコールすると、新しく追加したメンバーの順序番号が戻されます。

ADD_MEMBERSプロシージャを使用して、新しいメンバー(メンバーの配列)をコレクションに追加することもできます。追加されるメンバーの数は、1つ目の配列の要素数に基づきます。

パラメータp_generate_md5、p_clob001、p_blob001およびp_xmltype001について

p_generate_md5フラグを使用して、コレクション・メンバーのデータのメッセージ・ダイジェストを計算する必要があるかどうかを指定します。デフォルトでは、このフラグはNOに設定されています。このパラメータを使用して、コレクション・メンバーのMD5をチェックします(つまり、MD5を他のメンバーと比較して、メンバーが変更されたかどうかを確認します)。

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。バイナリ・コレクション・メンバー属性には、p_blob001を使用します。整形式XMLを格納するには、p_xmltype001を使用します。


参照:

ファンクションGET_MEMBER_MD5の使用方法については、「コレクション・ステータスの判別」を参照してください。

コレクション・メンバーの更新

コレクション・メンバーを更新するには、UPDATE_MEMBERプロシージャをコールして、更新するコレクション・メンバーを順序番号を使用して参照します。UPDATE_MEMBERプロシージャでは、個々のメンバー属性ではなく、コレクション・メンバー全体が置換されます。

4,000文字を超えるコレクション・メンバー属性には、p_clob001パラメータを使用します。

コレクション・メンバーの単一の属性を更新するには、UPDATE_MEMBER_ATTRIBUTEプロシージャを使用します。

コレクション・メンバーの削除

コレクション・メンバーを削除するには、DELETE_MEMBERプロシージャをコールして、削除するコレクション・メンバーを順序番号を使用して参照します。このプロシージャでは、順序番号の欠落は指定したコレクションにそのまま残ることに注意してください。

また、属性が特定の値と一致するという条件で、コレクションからすべてのメンバーを削除することもできます。DELETE_MEMBERSプロシージャでも、順序番号の欠落は指定したコレクションにそのまま残ります。指定した属性値がnullの場合、名前付きコレクションのメンバーのうち、属性(p_attr_numberで指定)がnullであるすべてのメンバーが削除されます。

コレクションの管理

トピック:

メンバー数の取得

コレクション内のすべてのメンバーの合計数を戻すには、COLLECTION_MEMBER_COUNTを使用します。この数は、コレクション内の順序番号の最大値ではないことに注意してください。

コレクションの再順序付け

要素の順序を保持したままで、コレクションを再順序付けして順序番号の欠落を排除するには、RESEQUENCE_COLLECTIONを使用します。

コレクションの存在の確認

コレクションが存在するかどうかを確認するには、COLLECTION_EXISTSを使用します。

メンバーの順序番号の調整

順序番号を上下に移動することで、コレクション内の特定のメンバーの順序番号を調整できます。順序番号を調整すると、指定した番号が別の番号と入れ替えられます。たとえば、番号2を1つ上に移動すると、2が3になり、3が2になります。

メンバーの順序番号を1つ上に移動するには、MOVE_MEMBER_UPを使用します。メンバーの順序番号を1つ下に移動するには、MOVE_MEMBER_DOWNを使用します。

コレクション・メンバーのソート

コレクションのメンバーを列番号で並べ替えるには、SORT_MEMBERSメソッドを使用します。このメソッドは、特定の列番号でコレクションをソートし、各メンバーの順序番号の欠落を排除するように順序番号の再割当ても行います。

コレクションのセッション・ステートのクリア

コレクションのセッション・ステートをクリアすると、コレクションのメンバーを削除できます。ショッピング・カートは、コレクションのセッション・ステートをクリアする必要がある場合のよい例です。ユーザーがショッピング・カートを空にして再度開始するよう要求した場合に、コレクションのセッション・ステートをクリアする必要があります。TRUNCATE_COLLECTIONメソッドをコールするか、f?p構文を使用して、コレクションのセッション・ステートを削除できます。

TRUNCATE_COLLECTIONメソッドをコールすると、既存のコレクションが削除され、そのコレクションが再作成されます。次に例を示します。

APEX_COLLECTION.TRUNCATE_COLLECTION(
    p_collection_name => collection name);

f?p構文の6つ目の引数を使用してセッション・ステートをクリアすることもできます。次に例を示します。

f?p=App:Page:Session::NO:collection name

コレクション・ステータスの判別

p_generate_md5パラメータは、コレクションの各メンバーに対してMD5メッセージ・ダイジェストを計算するかどうかを判別します。コレクションの作成直後、コレクション・ステータス・フラグはFALSEに設定されます。コレクションに対して操作(追加、更新、切捨てなど)が行われると、このフラグはTRUEに設定されます。

このフラグは、RESET_COLLECTION_CHANGEDをコールすることで、手動でリセットできます。

このフラグをリセットした後にコレクションが変更されたかどうかを判別するには、COLLECTION_HAS_CHANGEDをコールします。

p_generated_md5パラメータがYESに設定されている場合、コレクションに新しいメンバーを追加すると、50個のすべての属性とCLOB属性に対してMD5メッセージ・ダイジェストが計算されます。この値にはAPEX_COLLECTIONビューのMD5_ORIGINAL列からアクセスできます。GET_MEMBER_MD5ファンクションを使用して、指定したコレクション・メンバーの現在の値に対するMD5メッセージ・ダイジェストにアクセスできます。

ADD_MEMBERプロシージャ

このプロシージャを使用して、既存のコレクションに新しいメンバーを追加します。指定されたコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在しないと、エラーが発生します。新しいメンバーの追加では、欠落したものは使用されないため、メンバーの順序番号が1,2,5,8である既存のコレクションの場合、新しいメンバーは順序番号9として追加されます。

構文

APEX_COLLECTION.ADD_MEMBER (
    p_collection_name IN VARCHAR2,
    p_c001 IN VARCHAR2 default null,
    ...
    p_c050 IN VARCHAR2 default null,
    p_n001 IN NUMBER default null,
    p_n002 IN NUMBER default null,
    p_n003 IN NUMBER default null,
    p_n004 IN NUMBER default null,
    p_n005 IN NUMBER default null,
    p_d001 IN DATE default null,
    p_d002 IN DATE default null,
    p_d003 IN DATE default null,
    p_d004 IN DATE default null,
    p_d005 IN DATE default null,
    p_clob001 IN CLOB default empty_clob(),
    p_blob001 IN BLOB default empty_blob(),
    p_xmltype001 IN XMLTYPE default null,
    p_generate_md5 IN VARCHAR2  default 'NO');

パラメータ

表4-1では、ADD_MEMBERプロシージャで使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。

表4-1 ADD_MEMBERプロシージャのパラメータ

パラメータ 説明

p_collection_name

既存のコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加するメンバーの属性値。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。

p_n001からp_n005

追加する数値属性の属性値。

p_d001からp_d005

日付属性の属性値。

p_clob001

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

p_blob001

バイナリ・コレクション・メンバー属性には、p_blob001を使用します。

p_xmltype001

整形式XMLを格納するには、p_xmltype001を使用します。

p_generate_md5

有効な値にはYESNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。


ADD_MEMBERプロシージャの例を次に示します。

APEX_COLLECTION.ADD_MEMBER(
        p_collection_name => 'GROCERIES'
        p_c001            => 'Grapes',
        p_c002            => 'Imported',
        p_n001            => 125,
        p_d001            => sysdate );
END;

ADD_MEMBERファンクション

このファンクションを使用して、既存のコレクションに新しいメンバーを追加します。このファンクションをコールすると、新しく追加したメンバーの順序番号が戻されます。指定されたコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在しないと、エラーが発生します。新しいメンバーの追加では、欠落したものは使用されないため、メンバーの順序番号が1,2,5,8である既存のコレクションの場合、新しいメンバーは順序番号9として追加されます。

構文

APEX_COLLECTION.ADD_MEMBER (
    p_collection_name IN VARCHAR2,
    p_c001 IN VARCHAR2 default null,
    ...
    p_c050 IN VARCHAR2 default null,
    p_n001 IN NUMBER default null,
    p_n002 IN NUMBER default null,
    p_n003 IN NUMBER default null,
    p_n004 IN NUMBER default null,
    p_n005 IN NUMBER default null,
    p_d001 IN DATE default null,
    p_d002 IN DATE default null,
    p_d003 IN DATE default null,
    p_d004 IN DATE default null,
    p_d005 IN DATE default null,
    p_clob001 IN CLOB default empty_clob(),
    p_blob001 IN BLOB default empty_blob(),
    p_xmltype001 IN XMLTYPE default null,
    p_generate_md5 IN VARCHAR2 default 'NO')
RETURN NUMBER;

パラメータ

表4-2では、ADD_MEMBERファンクションで使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。

表4-2 ADD_MEMBERファンクションのパラメータ

パラメータ 説明

p_collection_name

既存のコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加するメンバーの属性値。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。

p_n001からp_n005

追加する数値属性の属性値。

p_d001からp_d005

追加する日付属性の属性値。

p_clob001

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

p_blob001

バイナリ・コレクション・メンバー属性には、p_blob001を使用します。

p_xmltype001

整形式XMLを格納するには、p_xmltype001を使用します。

p_generate_md5

有効な値にはYESNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。


DECLARE
    l_seq number;
BEGIN
    l_seq := APEX_COLLECTION.ADD_MEMBER(
                 p_collection_name => 'GROCERIES'
                 p_c001            => 'Grapes',
                 p_c002            => 'Imported',
                 p_n001            => 125,
                 p_d001            => sysdate );
END;

ADD_MEMBERSプロシージャ

このプロシージャを使用して、コレクションにメンバーの配列を追加します。指定されたコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在しないと、エラーが発生します。新しいメンバーの追加では、欠落したものは使用されないため、メンバーの順序番号が1,2,5,8である既存のコレクションの場合、新しいメンバーは順序番号9として追加されます。p_c001 PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。たとえば、p_c001.countが2で、p_c002.countが10の場合、2つのメンバーのみが追加されます。p_c001がnullの場合は、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.ADD_MEMBERS (
    p_collection_name IN VARCHAR2,
    p_c001 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
    p_c002 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
    p_c003 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
    ...
    p_c050 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
    p_n001 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
    p_n002 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
    p_n003 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
    p_n004 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
    p_n005 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
    p_d001 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
    p_d002 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
    p_d003 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
    p_d004 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
    p_d005 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
    p_generate_md5 IN VARCHAR2 default 'NO');

パラメータ

表4-3では、ADD_MEMBERSプロシージャで使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-3 ADD_MEMBERSプロシージャのパラメータ

パラメータ 説明

p_collection_name

既存のコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加する文字属性値の配列。

p_n001からp_n005

追加する数値属性値の配列。

p_d001からp_d005

追加する日付属性値の配列。

p_generate_md5

有効な値にはYESNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。


次の例は、2つの新しいメンバーをEMPLOYEE表に追加する方法を示しています。

Begin
    APEX_COLLECTION.ADD_MEMBERS(
        p_collection_name => 'EMPLOYEE',
        p_c001 => l_arr1,
        p_c002 => 1_arr2);
End;

COLLECTION_EXISTSファンクション

このファンクションを使用して、コレクションが存在するかどうかを判別します。指定したコレクションが、カレント・アプリケーションIDのカレント・セッション内にカレント・ユーザー用として存在すると、TRUEが戻されます。それ以外の場合は、FALSEが戻されます。

構文

APEX_COLLECTION.COLLECTION_EXISTS (
    p_collection_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表4-4では、COLLECTION_EXISTSファンクションで使用可能なパラメータについて説明します。

表4-4 COLLECTION_EXISTSファンクションのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は、大/小文字が区別されず、大文字に変換されます。


次の例は、COLLECTION_EXISTSファンクションを使用して、EMPLOYEESというコレクションが存在するかどうかを判別する方法を示しています。

Begin
    l_exists := APEX_COLLECTION.COLLECTION_EXISTS (
        p_collection_name => 'EMPLOYEES';
End;

COLLECTION_HAS_CHANGEDファンクション

このファンクションを使用して、コレクションの変更またはコレクション変更フラグのリセットが行われた後に、コレクションが変更されたかどうかを判別します。

構文

APEX_COLLECTION.COLLECTION_HAS_CHANGED (
    p_collection_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表4-5では、COLLECTION_HAS_CHANGEDファンクションで使用可能なパラメータについて説明します。

表4-5 COLLECTION_HAS_CHANGEDファンクションのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。


次の例は、COLLECTION_HAS_CHANGEDファンクションを使用して、EMPLOYEESコレクションの作成後、または最後のリセット後に、このコレクションが変更されたかどうかを判別する方法を示しています。

Begin
    l_exists := APEX_COLLECTION.COLLECTION_HAS_CHANGED (
        p_collection_name => 'EMPLOYEES';
End;

COLLECTION_MEMBER_COUNTファンクション

このファンクションを使用して、名前付きコレクションのメンバーの合計数を取得します。欠落があると、戻されるメンバー合計数と、コレクションの最も大きい順序番号が一致しなくなります。名前付きコレクションがカレント・セッション内にカレント・ユーザー用として存在しないと、エラーが発生します。

構文

APEX_COLLECTION.COLLECTION_MEMBER_COUNT (
    p_collection_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

表4-6では、COLLECTION_MEMBER_COUNTファンクションで使用可能なパラメータについて説明します。

表4-6 COLLECTION_MEMBER_COUNTファンクションのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。


この例は、COLLECTION_MEMBER_COUNTファンクションを使用して、DEPARTMENTSコレクションのメンバーの合計数を取得する方法を示しています。

Begin
    l_count := APEX_COLLECTION.COLLECTION_MEMBER_COUNT( p_collection_name => 'DEPARTMENTS';
End;

CREATE_COLLECTIONプロシージャ

このプロシージャを使用して、まだ存在していない空のコレクションを作成します。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.CREATE_COLLECTION(
    p_collection_name IN VARCHAR2);

パラメータ

表4-7では、CREATE_COLLECTIONプロシージャで使用可能なパラメータについて説明します。

表4-7 CREATE_COLLECTIONプロシージャのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。


この例は、CREATE_COLLECTIONプロシージャを使用して、EMPLOYEESという空のコレクションを作成する方法を示しています。

Begin
    APEX_COLLECTION.CREATE_COLLECTION(
        p_collection_name => 'EMPLOYEES');
End;

CREATE_OR_TRUNCATE_COLLECTIONプロシージャ

このプロシージャを使用して、コレクションを作成します。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、そのコレクションのすべてのメンバーが削除されます。つまり、名前付きコレクションが切り捨てられます。

構文

APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
    p_collection_name IN VARCHAR2);

パラメータ

表4-8では、CREATE_OR_TRUNCATE_COLLECTIONプロシージャで使用可能なパラメータについて説明します。

表4-8 CREATE_OR_TRUNCATE_COLLECTIONプロシージャのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255文字です。名前付きコレクションがカレント・セッションにカレント・ユーザー用として存在すると、その名前付きコレクションのすべてのメンバーが削除されます。


この例は、CREATE_OR_TRUNCATE_COLLECTIONプロシージャを使用して、EMPLOYEESという既存のコレクションのすべてのメンバーを削除する方法を示しています。

Begin
    APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
        p_collection_name => 'EMPLOYEES');
End;

CREATE_COLLECTION_FROM_QUERYプロシージャ

このプロシージャを使用して、指定した問合せからコレクションを作成します。問合せはアプリケーション所有者として解析されます。このメソッドは、SELECT句に最大50個の列を指定した問合せで使用できます。SELECT句内のこれらの列は、コレクションの50個の文字属性(C001からC050)に移入されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY (
    p_collection_name IN VARCHAR2,
    p_query IN VARCHAR2,
    p_generate_md5 IN VARCHAR2 default 'NO');

パラメータ

表4-9では、CREATE_COLLECTION_FROM_QUERYプロシージャで使用可能なパラメータについて説明します。

表4-9 CREATE_COLLECTION_FROM_QUERYプロシージャのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_generate_md5

有効な値にはYESNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。


次の例は、CREATE_COLLECTION_FROM_QUERYプロシージャを使用して、AUTOというコレクションを作成し、そこにAUTOS表のデータを移入する方法を示しています。p_generate_md5YESであるため、MD5チェックサムが計算され、変更ステータスを判別するための比較が行われます。

Begin
    l_query := 'select make, model, year from AUTOS';
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY (
        p_collection_name => 'AUTO', 
        p_query => l_query,
        p_generate_md5 => 'YES');
End;

CREATE_COLLECTION_FROM_QUERY2プロシージャ

このプロシージャを使用して、指定した問合せからコレクションを作成します。このメソッドはCREATE_COLLECTION_FROM_QUERYと同じですが、SELECT句の最初の5列は数値である必要があり、次の5列は日付である必要があります。数値データ型および日付データ型の列に続いて、最大50個の文字データ型の列をSELECT句に指定できます。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY2 (
    p_collection_name IN VARCHAR2,
    p_query IN VARCHAR2,
    p_generate_md5 IN VARCHAR2 default 'NO');

パラメータ

表4-10では、CREATE_COLLECTION_FROM_QUERY2プロシージャで使用可能なパラメータについて説明します。

表4-10 CREATE_COLLECTION_FROM_QUERY2プロシージャのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_generate_md5

有効な値にはYESNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。


次の例は、CREATE_COLLECTION_FROM_QUERY2プロシージャを使用して、EMPLOYEEというコレクションを作成し、そこにEMP表のデータを移入する方法を示しています。最初の5列(mgr、sal、comm、deptnoおよびnull)はすべて数値です。p_generate_md5がNOであるため、MD5チェックサムは計算されません。

begin;
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY2 (
        p_collection_name => 'EMPLOYEE', 
        p_query => 'select empno, sal, comm, deptno, null, hiredate, null, null, null, null, ename, job, mgr from emp',
        p_generate_md5 => 'NO');
end;

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 DEFAULT,
    p_values IN apex_applicatioN_globa.vc_arr2 DEFAULT,
    p_max_row_count IN NUMBER DEFAULT);

パラメータ

表4-11では、CREATE_COLLECTION_FROM_QUERY_Bプロシージャで使用可能なパラメータについて説明します。

表4-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プロシージャを使用して、AUTOというコレクションを作成し、そこにAUTOS表のデータを移入する方法を示しています。

Begin
    l_query := 'select make, model, year from AUTOS';
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B (
        p_collection_name => 'AUTO', 
        p_query => l_query);
End;

CREATE_COLLECTION_FROM_QUERYB2プロシージャ

このプロシージャを使用して、指定した問合せ(バルク操作を使用)からコレクションを作成します。このメソッドは、CREATE_COLLECTION_FROM_QUERY_2メソッドよりも非常に高速です。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。これはCREATE_COLLECTION_FROM_QUERY_Bと同じですが、SELECT句の最初の5列は数値である必要があり、次の5列は日付である必要があります。日付データ型の列に続いて、最大50個の文字データ型の列をSELECT句に指定できます。

このプロシージャは、バルク動的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_QUERYB2 (
    p_collection_name IN VARCHAR2,
    p_query IN VARCHAR2.
    p_names IN apex_application_global.vc_arr2 DEFAULT,
    p_values IN apex_applicatioN_globa.vc_arr2 DEFAULT,
    p_max_row_count IN NUMBER DEFAULT);

パラメータ

表4-12では、CREATE_COLLECTION_FROM_QUERYB2プロシージャで使用可能なパラメータについて説明します。

表4-12 CREATE_COLLECTION_FROM_QUERYB2プロシージャのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_names

問合せ文で使用されるバインド変数名の配列。

p_values

問合せ文内のバインド変数で使用されるバインド変数値の配列。

p_max_row_count

p_queryの問合せから戻され、コレクションに追加する必要がある行の最大数。


次の例は、CREATE_COLLECTION_FROM_QUERYB2プロシージャを使用して、EMPLOYEESというコレクションを作成し、そこにEMP表のデータを移入する方法を示しています。最初の5列(mgr、sal、comm、deptnoおよびnull)はすべて数値で、次の5列はすべて日付です。p_generate_md5がNOであるため、MD5チェックサムは計算されません。

Begin
    l_query := 'select empno, sal, comm, deptno, null, hiredate, null, null, null, null, ename, job, mgr from emp';
    APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERYB2 (
        p_collection_name => 'EMPLOYEES', 
        p_query => l_query,
        p_generate_md5 => 'NO');
End;

DELETE_ALL_COLLECTIONSプロシージャ

このプロシージャを使用して、Application Expressのカレント・アプリケーションIDのカレント・セッションで、カレント・ユーザーに属しているすべてのコレクションを削除します。

構文

APEX_COLLECTION.DELETE_ALL_COLLECTIONS;

パラメータ

なし。

この例は、DELETE_ALL_COLLECTIONSプロシージャを使用して、カレント・セッションとアプリケーションIDのカレント・ユーザーに属しているすべてのコレクションを削除する方法を示しています。

Begin
    APEX_COLLECTION.DELETE_ALL_COLLECTIONS;
End;

DELETE_ALL_COLLECTIONS_SESSIONプロシージャ

このプロシージャを使用して、アプリケーションIDに関係なく、Application Expressのカレント・セッションのカレント・ユーザーに属しているすべてのコレクションを削除します。

構文

APEX_COLLECTION.DELETE_ALL_COLLECTIONS_SESSION;

パラメータ

なし。

この例は、DELETE_ALL_COLLECTIONS_SESSIONプロシージャを使用して、アプリケーションIDに関係なく、カレント・セッションのカレント・ユーザーに属しているすべてのコレクションを削除する方法を示しています。

Begin
    APEX_COLLECTION.DELETE_ALL_COLLECTIONS_SESSION;
End;

DELETE_COLLECTIONプロシージャ

このプロシージャを使用して、名前付きコレクションを削除します。コレクションに属しているすべてのメンバーと、名前付きコレクションが削除されます。名前付きコレクションが、カレント・アプリケーションIDのカレント・セッション内に同じユーザー用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.DELETE_COLLECTION (
    p_collection_name IN VARCHAR2);

パラメータ

表4-13では、DELETE_COLLECTIONプロシージャで使用可能なパラメータについて説明します。

表4-13 DELETE_COLLECTIONプロシージャのパラメータ

パラメータ 説明

p_collection_name

すべてのメンバーとともに削除するコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。


この例は、DELETE_COLLECTIONプロシージャを使用して、EMPLOYEEコレクションを削除する方法を示しています。

Begin
    APEX_COLLECTION.DELETE_COLLECTION(
        p_collection_name => 'EMPLOYEE');
End;

DELETE_MEMBERプロシージャ

このプロシージャを使用して、指定した名前付きコレクションから指定したメンバーを削除します。名前付きコレクションが、カレント・アプリケーションIDのカレント・セッション内に同じユーザー用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.DELETE_MEMBER (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2);

パラメータ

表4-14では、DELETE_MEMBERプロシージャで使用可能なパラメータについて説明します。

表4-14 DELETE_MEMBERパラメータ

パラメータ 説明

p_collection_name

指定したメンバーを削除するコレクションの名前。最大長は255文字です。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、同じセッションにカレント・ユーザー用として存在しないと、エラーが戻されます。

p_seq

これは、削除するコレクション・メンバーの順序番号です。


この例は、DELETE_MEMBERプロシージャを使用して、EMPLOYEESというコレクションから順序番号が2のメンバーを削除する方法を示しています。

Begin
    APEX_COLLECTION.DELETE_MEMBER(
        p_collection_name => 'EMPLOYEES',
        p_seq => '2');
End;

DELETE_MEMBERSプロシージャ

このプロシージャを使用して、属性番号で指定した属性が特定の値と等しい場合に、指定した名前付きコレクションからすべてのメンバーを削除します。名前付きコレクションが、カレント・アプリケーションIDのカレント・セッション内に同じユーザー用として存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または1から50の範囲外であると、エラーが発生します。

指定した属性値がnullの場合、名前付きコレクションのメンバーのうち、属性(p_attr_numberで指定)がnullであるすべてのメンバーが削除されます。

構文

APEX_COLLECTION.DELETE_MEMBERS (
    p_collection_name IN VARCHAR2,
    p_attr_number IN VARCHAR2,
    p_attr_value IN VARCHAR2);

パラメータ

表4-14では、DELETE_MEMBERSプロシージャで使用可能なパラメータについて説明します。

表4-15 DELETE_MEMBERSパラメータ

パラメータ 説明

p_collection_name

指定したメンバーを削除するコレクションの名前。最大長は255文字です。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、同じセッションにカレント・ユーザー用として存在しないと、エラーが戻されます。

p_attr_number

削除のために指定した属性値との一致に使用されるメンバー属性の属性番号。有効な値は、1から50およびnullです。

p_attr_value

削除のための一致に使用されるメンバー属性の属性値。最大長は4,000バイトです。これよりも大きいと、属性値は4,000バイトに切り捨てられます。


次の例では、5番目の文字属性がAPPLEである場合に、GROCERIESというコレクションのすべてのメンバーが削除されます。

Begin
    apex_collection.delete_members( 
        p_collection_name => 'GROCERIES'
        p_attr_number     => 5,
        p_attr_value      => 'APPLE' );
    Commit;
End;

GET_MEMBER_MD5ファンクション

このファンクションを使用して、順序番号で指定したメンバーについて、その属性のメッセージ・ダイジェストを計算して戻します。メッセージ・ダイジェストのこの計算は、コレクションでネイティブに実行される計算と同じです。したがって、このファンクションの結果は、ビューwwv_flow_collectionsのMD5_ORIGINAL列と比較できます。

指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.GET_MEMBER_MD5 (
    p_collection_name IN VARCHAR2,
    p_seq IN NUMBER)
RETURN VARCHAR2;

パラメータ

表4-16では、GET_MEMBER_MD5ファンクションで使用可能なパラメータについて説明します。

表4-16 GET_MEMBER_MD5パラメータ

パラメータ 説明

p_collection_name

メンバーのこの配列を追加するコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

コレクション・メンバーの順序番号。


次の例では、GROCERIESコレクションの5番目のメンバーについて、MD5が計算されます。

declare
    l_md5 varchar2(4000);
begin
    l_md5 := apex_collection.get_member_md5( 
        p_collection_name => 'GROCERIES'
        p_seq             => 10 );
end;

MERGE_MEMBERSプロシージャ

このプロシージャを使用して、指定した名前付きコレクションのメンバーと、配列に渡された値をマージします。名前付きコレクションが存在しない場合は作成されます。p_init_queryが指定されると、コレクションは指定されたSQL問合せから作成されます。名前付きコレクションが存在すると、次のことが行われます。

  1. コレクション内に存在し、配列内に存在しない行が削除されます。

  2. コレクション内および配列内に存在する行が更新されます。

  3. 配列内に存在し、コレクション内に存在しない行が挿入されます。

p_c001 PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。たとえば、p_c001.countが2で、p_c002.countが10の場合、2つのメンバーのみがマージされます。p_c001がnullの場合は、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.MERGE_MEMBERS (
    p_collection_name IN VARCHAR2,
    p_seq  IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
    p_c001 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
    p_c002 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
    p_c003 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
    ...
    p_c050 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
    p_null_index  IN NUMBER DEFAULT 1,
    p_null_value  IN VARCHAR2 DEFAULT null,
    p_init_query  IN VARCHAR2 DEFAULT null);

パラメータ

表4-17では、MERGE_MEMBERSプロシージャで使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-17 MERGE_MEMBERSプロシージャのパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

マージする属性値の配列。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。p_c001配列のカウントは、すべての配列で使用されます。値が指定されないと、アクションは実行されません。

p_c0xx

マージするNN属性値の属性。最大長は4,000バイトです。これよりも大きいと、属性値は4,000バイトに切り捨てられます。

p_seq

マージするコレクションの順序番号を指定します。

p_null_index

この値で識別された要素がnullの場合、この行をnull行とみなします。たとえば、p_null_indexが3である場合、p_c003はnull行とみなされます。つまり、mergeファンクションは、この行を無視するように指示されます。これによって、null行がコレクションから削除されます。null索引は、null値とともに動作します。p_cXXX引数の値がp_null_valueと等しい場合、行はnullとみなされます。

p_null_value

p_null_index引数とともに使用します。この引数は、null値を識別します。この値をnullにすることはできません。この引数の通常の値は0(ゼロ)です。

p_init_query

コレクションが存在しない場合、コレクションはこの問合せを使用して作成されます。


次の例では、従業員の表でコレクションを作成し、ローカル配列の内容とコレクションをマージします。さらに、2人の従業員の仕事を更新します。

DECLARE
    l_seq   APEX_APPLICATION_GLOBAL.VC_ARR2;
    l_c001  APEX_APPLICATION_GLOBAL.VC_ARR2;
    l_c002  APEX_APPLICATION_GLOBAL.VC_ARR2;
    l_c003  APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
    l_seq(1)  := 1;
    l_c001(1) := 7369;
    l_c002(1) := 'SMITH';
    l_c003(1) := 'MANAGER';
    l_seq(2)  := 2;
    l_c001(2) := 7499;
    l_c002(2) := 'ALLEN';
    l_c003(2) := 'CLERK';
 
    APEX_COLLECTION.MERGE_MEMBERS(
        p_collection_name => 'EMPLOYEES',
        p_seq => l_seq,
        p_c001 => l_c001,
        p_c002 => l_c002,
        p_c003 => l_c003,
        p_init_query => 'select empno, ename, job from emp order by empno');
END;

MOVE_MEMBER_DOWNプロシージャ

このプロシージャを使用して、指定した名前付きコレクションの特定のメンバーの順序番号を1つ下げて(1を引いて)調整し、順序番号と、その置換番号とを入れ替えます。たとえば、3は2になり、2は3になります。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーがコレクションで最も小さい順序であっても、アプリケーション・エラーは戻されません。

構文

APEX_COLLECTION.MOVE_MEMBER_DOWN (
    p_collection_name IN VARCHAR2,
    p_seq IN NUMBER);

パラメータ

表4-19では、MOVE_MEMBER_DOWNプロシージャで使用可能なパラメータについて説明します。

表4-18 MOVE_MEMBER_DOWNパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。カレント・ユーザーの指定した名前のこのコレクションが、同じセッションに存在しないと、エラーが戻されます。

p_seq

1つ下げて移動させるコレクション・メンバーの順序番号を指定します。


この例は、EMPLOYEESコレクションのメンバーの位置を1つ下げる方法を示しています。この例を実行した後、順序番号5は順序番号4になり、順序番号4は順序番号5になります。

BEGIN;
    APEX_COLLECTION.MOVE_MEMBER_DOWN( 
        p_collection_name => 'EMPLOYEES',
        p_seq => '5' );
END;

MOVE_MEMBER_UPプロシージャ

このプロシージャを使用して、指定した名前付きコレクションの特定のメンバーの順序番号を1つ上げて(1を足して)調整し、順序番号と、その置換番号とを入れ替えます。たとえば、2は3になり、3は2になります。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーがコレクションで最も大きい順序であっても、アプリケーション・エラーは戻されません。

構文

APEX_COLLECTION.MOVE_MEMBER_UP (
    p_collection_name IN VARCHAR2,
    p_seq IN NUMBER);

パラメータ

表4-19では、MOVE_MEMBER_UPプロシージャで使用可能なパラメータについて説明します。

表4-19 MOVE_MEMBER_UPパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。カレント・ユーザーの指定した名前のこのコレクションが、同じセッションに存在しないと、エラーが戻されます。

p_seq

1つ上げて移動させるコレクション・メンバーの順序番号を指定します。


この例は、EMPLOYEESコレクションのメンバーの位置を1つ下げる方法を示しています。この例を実行した後、順序番号5は順序番号6になり、順序番号6は順序番号5になります。

BEGIN;
    APEX_COLLECTION.MOVE_MEMBER_UP( 
        p_collection_name => 'EMPLOYEES',
        p_seq => '5' );
END;

RESEQUENCE_COLLECTIONプロシージャ

名前付きコレクションにこのプロシージャを使用して、各メンバーのseq_id値を更新し、順序内に欠落が存在しないようにします。たとえば、あるコレクションの順序番号が1、2、3、5、8、9である場合、一連の順序番号は1、2、3、4、5、6となります。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.RESEQUENCE_COLLECTION (
    p_collection_name IN VARCHAR2);

パラメータ

表4-20では、RESEQUENCE_COLLECTIONプロシージャで使用可能なパラメータについて説明します。

表4-20 RESEQUENCE_COLLECTIONパラメータ

パラメータ 説明

p_collection_name

順序変更を行うコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。


この例は、DEPARTMENTSコレクションで順序変更を行い、順序番号内での欠落を削除する方法を示しています。

BEGIN;
    APEX_COLLECTION.RESEQUENCE_COLLECTION (
        p_collection_name => 'DEPARTMENTS');
END;

RESET_COLLECTION_CHANGEDプロシージャ

このプロシージャを使用して、特定のコレクションのコレクション変更フラグをリセット(変更されていないとしてマーク)します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.RESET_COLLECTION_CHANGED (
    p_collection_name IN VARCHAR2);

パラメータ

表4-21では、RESET_COLLECTION_CHANGEDプロシージャで使用可能なパラメータについて説明します。

表4-21 RESET_COLLECTION_CHANGEDパラメータ

パラメータ 説明

p_collection_name

コレクション変更フラグをリセットするコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。


この例は、DEPARTMENTSコレクションの変更フラグをリセットする方法を示しています。

BEGIN;
    APEX_COLLECTION.RESET_COLLECTION_CHANGED (
        p_collection_name => 'DEPARTMENTS');
END;

RESET_COLLECTION_CHANGED_ALLプロシージャ

このプロシージャを使用して、ユーザーのカレント・セッション内のすべてのコレクションのコレクション変更フラグをリセット(変更されていないとしてマーク)します。

構文

APEX_COLLECTION.RESET_COLLECTION_CHANGED_ALL; (

パラメータ

なし。

この例は、ユーザーのカレント・セッションのすべてのコレクションの変更フラグをリセットする方法を示しています。

BEGIN;
    APEX_COLLECTION.RESET_COLLECTION_CHANGED_ALL;
END;

SORT_MEMBERSプロシージャ

このプロシージャを使用して、特定のコレクションのメンバーをp_sort_on_column_numberで指定した列番号で並べ替えます。これによって、コレクションが、コレクション内の列/属性でソートされ、欠落がないように各番号の順序番号が再割当てされます。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.SORT_MEMBERS (
    p_collection_name IN VARCHAR2,
    p_sort_on_column_number IN NUMBER);

パラメータ

表4-22では、SORT_MEMBERSプロシージャで使用可能なパラメータについて説明します。

表4-22 SORT_MEMBERSパラメータ

パラメータ 説明

p_collection_name

ソートするコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_sort_on_column_number

コレクションのソートに使用する列番号。


この例では、DEPARTMENTSコレクションの列2は部門の場所です。コレクションは部門の場所に従って並べ替えられます。

BEGIN;
    APEX_COLLECTION.SORT_MEMBERS (
        p_collection_name => 'DEPARTMENTS',
        p_sort_on_column_number => '2';
END;

TRUNCATE_COLLECTIONプロシージャ

このプロシージャを使用して、名前付きコレクションからすべてのメンバーを削除します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.TRUNCATE_COLLECTION (
    p_collection_name IN VARCHAR2);

パラメータ

表4-23では、TRUNCATE_COLLECTIONプロシージャで使用可能なパラメータについて説明します。

表4-23 TRUNCATE_COLLECTIONパラメータ

パラメータ 説明

p_collection_name

切り捨てるコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。


この例は、DEPARTMENTSコレクションからすべてのメンバーを削除する方法を示しています。

BEGIN;
    APEX_COLLECTION.TRUNCATE_COLLECTION(
        p_collection_name => 'DEPARTMENTS');
END;

UPDATE_MEMBERプロシージャ

このプロシージャを使用して、特定の名前付きコレクション内の指定したメンバーを更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。


注意:

このプロシージャを使用すると、識別された列が設定され、識別されない列は無効化されます。他の列の値に影響を及ぼすことなく、特定の列を更新するには、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」を使用します。

構文

APEX_COLLECTION.UPDATE_MEMBER (
    p_collection_name IN VARCHAR2,
    p_seq  IN VARCHAR2 DEFAULT NULL,
    p_c001 IN VARCHAR2 DEFAULT NULL,
    p_c002 IN VARCHAR2 DEFAULT NULL,
    p_c003 IN VARCHAR2 DEFAULT NULL,
    ...
    p_c050 IN VARCHAR DEFAULT NULL,
    p_n001 IN NUMBER DEFAULT NULL,
    p_n002 IN NUMBER DEFAULT NULL,
    p_n003 IN NUMBER DEFAULT NULL,
    p_n004 IN NUMBER DEFAULT NULL,
    p_n005 IN NUMBER DEFAULT NULL,
    p_d001 IN DATE DEFAULT NULL,
    p_d002 IN DATE DEFAULT NULL,
    p_d003 IN DATE DEFAULT NULL,
    p_d004 IN DATE DEFAULT NULL,
    p_d005 IN DATE DEFAULT NULL,   
    p_clob001 IN CLOB DEFAULT empty_clob(),
    p_blob001 IN BLOB DEFAULT empty-blob(),
    p_xmltype001 IN XMLTYPE DEFAULT NULL);

パラメータ

表4-24では、UPDATE_MEMBERプロシージャで使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-24 UPDATE_MEMBERパラメータ

パラメータ 説明

p_collection_name

更新するコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加するメンバーの属性値。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。

p_n001からp_n005

追加または更新する数値属性の属性値。

p_d001からp_d005

追加または更新する日付属性の属性値。

p_clob001

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

p_blob001

バイナリ・コレクション・メンバー属性には、p_blob001を使用します。

p_xmltype001

整形式XMLを格納するには、p_xmltype001を使用します。


Departmentsというコレクションの2番目のメンバーを更新します。1つ目のメンバー属性をEngineeringに、2つ目のメンバー属性をSalesに更新します。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_c001 => 'Engineering',
        p_c002 => 'Sales');

UPDATE_MEMBERSプロシージャ

このプロシージャを使用して、特定の名前付きコレクションのメンバーの配列を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。p_seq PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。つまり、p_seq.count = 2かつp_c001.count = 10である場合は、2つのメンバーのみが更新されます。p_seqがnullであると、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBERS (
    p_collection_name IN VARCHAR2,
    p_seq  IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
    p_c001 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
    p_c002 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
    p_c003 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
    ...
    p_c050 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
    p_n001 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
    p_n002 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
    p_n003 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
    p_n004 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
    p_n005 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
    p_d001 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
    p_d002 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
    p_d003 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
    p_d004 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
    p_d005 IN apex_application_global.D_ARR DEFAULT empty_d_arr)

パラメータ

表4-25では、UPDATE_MEMBERSプロシージャで使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-25 UPDATE_MEMBERSパラメータ

パラメータ 説明

p_collection_name

更新するコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_seq

更新するメンバー順序番号の配列。p_seq配列のカウントは、すべての配列で使用されます。

p_c001からp_c050

更新する属性値の配列。

p_n001からp_n005

数値の属性値

p_d001からp_d005

更新する日付属性値の配列。


DECLARE
    l_seq   apex_application_global.vc_arr2;
    l_carr  apex_application_global.vc_arr2;
    l_narr  apex_application_global.n_arr;
    l_darr  apex_application_global.d_arr;
BEGIN
    l_seq(1)  := 10;
    l_seq(2)  := 15;
    l_carr(1) := 'Apples';
    l_carr(2) := 'Grapes';
    l_narr(1) := 100;
    l_narr(2) := 150;
    l_darr(1) := sysdate;
    l_darr(2) := sysdate;
 
    APEX_COLLECTION.UPDATE_MEMBERS (
        p_collection_name => 'Groceries',
        p_seq  => l_seq,
        p_c001 => l_carr,
        p_n001 => l_narr,
        p_d001 => l_darr);
END;

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1

特定の名前付きコレクション内の指定したメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または1から50の範囲外であると、エラーが発生します。4,000バイトを超える属性値は、4,000バイトに切り捨てられます。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2,
    p_attr_number IN VARCHAR2,
    p_attr_value  IN VARCHAR2);

パラメータ

表4-26では、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1で使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-26 UPDATE_MEMBER_ATTRIBUTEのシグネチャ1のパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_attr_number

更新するメンバー属性の属性番号。有効な値は1から50です。この範囲外の番号はすべて無視されます。

p_attr_value

更新するメンバー属性の属性値。


Departmentsというコレクションの2番目のメンバーを更新します(1つ目のメンバー属性をEngineeringに、2つ目のメンバー属性をSalesに更新します)。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_attr_number => '1',
        p_attr_value => 'Engineering');
END;

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2

特定の名前付きコレクション内の指定したCLOBメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、CLOBでは1のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2,
    p_clob_number IN NUMBER,
    p_clob_value  IN CLOB);

パラメータ

表4-27では、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2で使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-27 UPDATE_MEMBER_ATTRIBUTEのシグネチャ2のパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_clob_number

更新するCLOBメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_clob_value

更新するCLOBメンバー属性の属性値。


次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目のCLOB属性のみをEngineeringに設定します。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_clob_number => '1',
        p_clob_value => 'Engineering');
END;

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3

特定の名前付きコレクション内の指定したBLOBメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、BLOBでは1のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2,
    p_blob_number IN NUMBER,
    p_blob_value  IN BLOB);

パラメータ

表4-28では、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3で使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-28 UPDATE_MEMBER_ATTRIBUTEのシグネチャ3のパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_blob_number

更新するBLOBメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_blob_value

更新するBLOBメンバー属性の属性値。


次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目のBLOB属性のみをBLOB変数の値l_blob_contentに設定します。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_blob_number => '1',
        p_blob_value => l_blob_content);
END;

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4

特定の名前付きコレクション内の指定したXMLTYPEメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、XMLTYPEでは1のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2,
    p_xmltype_number IN NUMBER,
    p_xmltype_value  IN BLOB);

パラメータ

表4-29では、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4で使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-29 UPDATE_MEMBER_ATTRIBUTEのシグネチャ4のパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_xmltype_number

更新するXMLTYPEメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_xmltype_value

更新するXMLTYPEメンバー属性の属性値。


次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目のXML属性のみをXMLType変数の値l_xmltype_contentに設定します。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_xmltype_number => '1',
        p_xmltype_value => l_xmltype_content);
END;

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5

特定の名前付きコレクション内の指定したNUMBERメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、NUMBERでは1から5のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2,
    p_attr_number IN NUMBER,
    p_number_value  IN NUMBER);

パラメータ

表4-30では、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5で使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-30 UPDATE_MEMBER_ATTRIBUTEのシグネチャ5のパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_attr_number

更新するNUMBERメンバー属性の属性番号。有効な値は1から5です。この範囲外の番号はすべて無視されます。

p_number_value

更新するNUMBERメンバー属性の属性値。


次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目の数値属性を値3000に設定します。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_attr_number => '1',
        p_number_value => 3000);
END;

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6

特定の名前付きコレクション内の指定したDATEメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、DATEでは1から5のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
    p_collection_name IN VARCHAR2,
    p_seq IN VARCHAR2,
    p_attr_number IN NUMBER,
    p_number_value  IN DATE);

パラメータ

表4-30では、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6で使用可能なパラメータについて説明します。


注意:

4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表4-31 UPDATE_MEMBER_ATTRIBUTEのシグネチャ6のパラメータ

パラメータ 説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_attr_number

更新するDATEメンバー属性の属性番号。有効な値は1から5です。この範囲外の番号はすべて無視されます。

p_number_value

更新するDATEメンバー属性の属性値。


Departmentsというコレクションの2番目のコレクション・メンバーの1つ目の属性を更新して、値100に設定します。

BEGIN;
    APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
        p_collection_name => 'Departments',
        p_seq => '2',
        p_attr_number => '1',
        p_number_value => 100 );
END;