APEX_APPLICATION
パッケージは、Oracle Application Expressレンダリング・エンジンを実装するPL/SQLパッケージです。このパッケージを使用すると、多くのグローバル変数を利用できます。表4-1に、APEX_APPLICATION
パッケージで使用可能なグローバル変数を示します。
表4-1 APEX_APPLICATIONで使用可能なグローバル変数
グローバル変数 | 説明 |
---|---|
|
現在ログインしているユーザーを指定します。 |
|
現在実行されているアプリケーションのIDを指定します。 |
|
現在実行されているページのIDを指定します。 |
|
現在実行されているアプリケーションの解析対象のスキーマを指定します。 |
|
表示または受入れモジュールに最後に渡されるか、あるいは表示または受入れモジュール内に最後に設定されるリクエスト変数の値を指定します。 |
このセクションの構成は次のとおりです。
通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどのHTMLフォーム要素です。ウィザードを使用して新しいフォーム・アイテムを作成する場合、ウィザードは標準のネーミング形式を使用します。ネーミング形式ではハンドルが提供されるため、後でアイテムの値を取得できます。
独自のアイテムを作成する必要がある場合、ページを送信した後にAPEX_APPLICATION.G_F01
からAPEX_APPLICATION.G_F50
配列を参照してそれらにアクセスできます。F01
、F02
、F03
などの形式を使用して入力パラメータを入力することによって、独自のHTMLフォーム・フィールドを作成できます。最大50個の入力パラメータ(F01
からF50
まで)を作成できます。次に例を示します。
<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="some value"> <TEXTAREA NAME="F02" ROWS=4 COLS=90 WRAP="VIRTUAL">this is the example of a text area.</TEXTAREA> <SELECT NAME="F03" SIZE="1"> <OPTION VALUE="abc">abc <OPTION VALUE="123">123 </SELECT>
F01
からF50
の入力アイテムはPL/SQL配列として宣言されるため、複数のアイテムに同じ値を指定できます。次に例を示します。
<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 1"> <INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 2"> <INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 3">
次のPL/SQLコードにより、前述の例と同一のHTMLを作成できます。
FOR i IN 1..3 LOOP APEX_ITEM.TEXT(P_IDX => 1, p_value =>'array element '||i , p_size =>32, p_maxlength =>32); END LOOP;
PL/SQL変数APEX_APPLICATION
.G_F01
からAPEX_APPLICATION
.G_F50
を使用して、HTMLフォームによってポストされた値を参照できます。この要素は配列のため、値を直接参照できます。次に例を示します。
FOR i IN 1.. APEX_APPLICATION.G_F01.COUNT LOOP htp.p('element '||I||' has a value of '||APEX_APPLICATION.G_F01(i)); END LOOP;
APEX_ITEM.CHECKBOX
を使用して表示したチェック・ボックスには、選択されている行に対してのみAPEX_APPLICATION
配列の値が含まれることに注意してください。送信したすべての行に対応するAPEX_APPLICATION
配列のエントリを含めることができる他のアイテム(TEXT
、TEXTAREA
およびDATE_POPUP
)と異なり、チェック・ボックスには、行が選択されている場合にのみAPEX_APPLICATION
配列のエントリが含まれます。
Oracle Application Expressパブリック・ユーティリティの機能を使用して、配列を単一値に変換することもできます。変換後の文字列は、配列要素の値がコロンで区切られたリストです。次に例を示します。
htp.p(APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01));
このファンクションを使用すると、データに対して操作を実行するアプリケーション・プロセスで、G_F01
からG_F50
の値を参照できます。次の例に、表に値を挿入する方法を示します。
INSERT INTO my_table (my_column) VALUES APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01)