3.9 置換文字列の使用
テンプレート、リージョン・ソース、または属性内で置換文字列を使用して、情報を渡して文字列を別の値に置換します。
ノート:
属性で置換がサポートされている場合は、サポートされている置換文字列を説明する「追加情報」という項がページ・デザイナのヘルプに含まれています。「ページ・デザイナでのヘルプの表示」を参照してください。
3.9.1 置換文字列の使用について
アプリケーション・ビルダーでは、次のように置換文字列を使用できます。
- コンポーネント値を参照するために置換文字列をテンプレート内に含めます。
&ITEM.
構文を使用して、ページまたはアプリケーション・アイテムを参照します- 組込み置換文字列の使用
テンプレート内の置換文字列
テンプレート内で使用可能な特別な置換文字列は、シャープ記号(#)で示します。次に例を示します。
#ABC#
ヒント:
また、JavaScript API apex.util.applyTemplate
を使用してクライアント側でテンプレートを評価できます。Oracle APEX JavaScript APIリファレンスのapplyTemplateを参照してください。
ページまたはアプリケーション・アイテムの置換文字列
置換変数を使用してページまたはアプリケーション・アイテムを参照するには:
- すべて大文字でページまたはアプリケーション・アイテムを参照します。
- アイテム名の先頭にアンパサンド(&)を追加します。
- アイテム名の末尾にピリオド(.)を追加します。
たとえば、リージョン、リージョン・タイトル、アイテム・ラベル、または静的テキストを使用するその他の多数のコンテキストでF101_X
という名前のアプリケーション・アイテムを参照する場合は、次のように入力します。
&F101_X.
ヒント:
最後にピリオドが必要であることに注意してください。ページがレンダリングされると、APEXエンジンは置換文字列の値をアイテムF101_X
の値に置き換えます。
対話グリッド、カードおよびマップ列の置換文字列
置換変数を使用して、対話グリッド、カード・ページまたはマップ・ページの列を参照するには:
- すべて大文字で列名を参照します。
- 列名の先頭にアンパサンド(&)を追加します。
- アイテム名の末尾にピリオド(.)を追加します。
たとえば、対話グリッド列ENAME
を参照するには、次のようにします。
&ENAME.
他のレポート列の置換文字列
置換変数を使用して、他のレポートの列を参照するには:
- すべて大文字で列名を参照します。
- 列名の先頭にシャープ記号(#)を追加します。
- アイテム名の末尾にシャープ記号(#)を追加します。
たとえば、対話モード・レポートまたはクラシック・レポートの列ENAME
を参照するには、次のようにします。
#ENAME#
特殊文字または大/小文字の区別のための二重引用符の使用
アイテムまたは列の名前の中に特殊文字が含まれているか、その大/小文字を区別する場合は、二重引用符で囲みます。次に例を示します。
&"ITEM-OR-COLUMN-NAME".
次の構文を使用します。
&"<name>"[!<format>].
内容は次のとおりです。
"<name>"
は、アプリケーション・アイテム、ページ・アイテムまたは列名です。引用符で囲まない場合は、A-Z–0-9_$#のセットのみを使用する必要があります"<name>"
はAPP_TEXT$<message-name>
ここで、
<message-name>
はAPEXテキスト・メッセージ名です。<format>
は、「置換文字列での出力のエスケープの制御」で説明されているとおり、事前定義済フィルタ名(HTML
、ATTR
、JS
、RAW
、STRIPHTML
)です。
3.9.2 置換文字列での出力のエスケープの制御
ページ名、アプリケーション・アイテム名、レポート列、またはその他の置換文字列に、感嘆符(!
)を前に付けた事前定義済フィルタ名を追加することによって、置換値の特殊文字をエスケープできます。出力のエスケープは、ブラウザでクロス・サイト・スクリプティング(XSS)攻撃を回避するための重要なセキュリティ手法です。Oracle APEXでは、HTMLまたはJavaScriptコンテキスト内の文字を自動的にエスケープするためにすでに最善を尽くしています。この拡張構文を使用して、開発者は出力を詳細に制御できます。
使用できるエスケープ・フィルタ
使用できるエスケープ・フィルタは次のとおりです。
HTML
は、次に示すように、予約されているHTML文字をエスケープします。-
アイテム:
&P1_DEPTNO!HTML.
-
対話グリッド列:
&ENAME!HTML.
-
他のレポートの列:
#ENAME!HTML#
関連項目:
『Oracle APEX APIリファレンス』のAPEX_ESCAPE.HTML
-
ATTR
は、次に示すように、HTML属性コンテキスト内の予約文字をエスケープします。-
対話グリッド列:
&ENAME!ATTR.
-
他のレポートの列:
#ENAME!ATTR#
関連項目:
『Oracle APEX APIリファレンス』のAPEX_ESCAPE.HTML_ATTRIBUTE
-
JS
は、次に示すように、JavaScriptコンテキスト内の予約文字をエスケープします。-
アイテム:
&P1_DEPTNO!JS.
-
対話グリッド列:
&ENAME!JS.
-
他のレポートの列:
#ENAME!JS#
ノート:
JSエスケープ・フィルタは、クライアントで実行される置換ではサポートされていません。
関連項目:
『Oracle APEX APIリファレンス』のAPEX_ESCAPE.JS_LITERAL
-
RAW
は、次に示すように、元のアイテム値を保持し、文字をエスケープしません。-
アイテム:
&P1_DEPTNO!RAW.
-
対話グリッド列:
&ENAME!RAW.
-
他のレポートの列:
#ENAME!RAW#
-
-
STRIPHTML
は、次に示すように、HTMLタグを出力から削除し、予約されているHTML文字をエスケープします。-
アイテム:
&P1_DEPTNO!STRIPHTML.
-
対話グリッド列:
&ENAME!STRIPHTML.
-
他のレポートの列:
#ENAME!STRIPHTML#
-
親トピック: 置換文字列の使用
3.9.3 テンプレート内での置換文字列の使用方法の確認について
テンプレートの定義を表示することによって、テンプレート固有のどの置換文字列がどのテンプレートでサポートされるかを確認できます。カスタム・テーマの作成を参照してください。
親トピック: 置換文字列の使用
3.9.4 組込み置換文字列の使用
アプリケーション・ビルダーでは、多くの組込み置換文字列がサポートされています。これらの置換文字列を参照して、特定のタイプの機能を実現できます。
ヒント:
バインド変数:USER
はデータベース内で特別な意味を持つことに注意してください。また、直接PL/SQLという用語は、プロシージャおよびファンクションなどのストアド・データベース・オブジェクトで使用可能なPL/SQLを表します。
- APEX_FILES
- APEX$ROW_NUM
- APEX$ROW_SELECTOR
- APEX$ROW_STATUS
- APP_ID
- APP_ALIAS
- APP_AJAX_X01, ... APP_AJAX_X10
- APP_BUILDER_SESSION
- APP_DATE_TIME_FORMAT
- APP_FILES
- APP_NLS_DATE_FORMAT
- APP_NLS_TIMESTAMP_FORMAT
- APP_NLS_TIMESTAMP_TZ_FORMAT
- APP_PAGE_ALIAS
- APP_PAGE_ID
- APP_REGION_ID
- APP_REGION_STATIC_ID
- APP_REQUEST_DATA_HASH
- APP_SESSION
- APP_SESSION_VISIBLE
- APP_TITLE
- APP_UNIQUE_PAGE_ID
- APP_USER
- AUTHENTICATED_URL_PREFIX
- BROWSER_LANGUAGE
- CURRENT_PARENT_TAB_TEXT
- DEBUG
- HOME_LINK
- JET_BASE_DIRECTORY
- JET_CSS_DIRECTORY
- JET_JS_DIRECTORY
- LOGIN_URL
- LOGOUT_URL
- APP_TEXT$Message_Name、APP_TEXT$Message_Name$Lang
- PRINTER_FRIENDLY
- PROXY_SERVER
- PUBLIC_URL_PREFIX
- REQUEST
- REQUESTの使用
- SCHEMA OWNER
- SQLERRM
- SYSDATE_YYYYMMDD
- THEME_DB_FILES
- THEME_FILES
- WORKSPACE_FILES
- WORKSPACE_ID
関連項目:
親トピック: 置換文字列の使用
3.9.4.1 APEX_FILES
ノート:
IMAGE_PREFIX
の名前がAPEX_FILES
に変更されました。レガシー名IMAGE_PREFIX
は引き続きサポートされていますが、Oracleでは新しい名前を使用することをお薦めします。
APEX_FILES
の値によって、Oracle APEXで配布されるイメージ・ディレクトリを指し示すためにWebサーバーが使用する仮想パスが決まります。アップロードされたイメージを参照するには、WORKSPACE_FILES
およびAPP_FILES
を使用します。
表3-3 APEX_FILES構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APEX_FILES |
直接PL/SQL |
ノート: 直接PL/SQLは例外です。この例では、
|
PL/SQL | V('APEX_FILES') |
置換文字列 | &APEX_FILES. |
テンプレート置換 | #APEX_FILES# |
親トピック: 組込み置換文字列の使用
3.9.4.2 APEX$ROW_NUM
APEX$ROW_NUM
は、送信された表形式フォーム・データの現在処理されている行番号を参照します。このプレースホルダは、表形式フォームに関連付けられた検証、プロセスおよび条件内で使用して、現在処理されている表形式フォーム行の行番号を参照できます。
表3-4 APEX$ROW_NUM構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.3 APEX$ROW_SELECTOR
APEX$ROW_SELECTOR
は、表形式フォームに関連付けられた検証、プロセスおよび条件内で使用して、表形式フォーム内の行セレクタ・チェック・ボックスを参照します。このプレースホルダでは、現在処理されている表形式フォーム行の表形式フォーム行セレクタ・チェック・ボックスが選択されている場合にX
が返され、選択が解除されている場合にはNULL
が返されます。
表3-5 APEX$ROW_SELECTOR構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.4 APEX$ROW_STATUS
APEX$STATUS
は、表形式フォームに関連付けられた検証、プロセスおよび条件内で使用して、表形式フォーム内の行ステータスを参照します。このプレースホルダでは、現在処理されている表形式フォーム行が作成された場合はC
、更新された場合はU
、削除された場合はD
というステータスが戻されます。
表3-6 APEX$ROW_STATUS構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.5 APP_ID
APP_ID
は、現在実行されているアプリケーションのアプリケーションIDを示します。
表3-7 APP_ID構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_ID |
直接PL/SQL | APEX_APPLICATION.G_FLOW_ID (A NUMBER) |
PL/SQL | NV('APP_ID') |
置換文字列 | &APP_ID. |
SYS_CONTEXT変数 | SYS_CONTEXT('APEX$SESSION', 'APP_ID') |
置換文字列の参照の例
次に、置換文字列の参照の例を示します。
f?p=&APP_ID.:40:&APP_SESSION.
SYS_CONTEXT変数の例
次に、SYS_CONTEXT
変数の例を示します。
SELECT ... WHERE application_id = SYS_CONTEXT('APEX$SESSION', 'APP_ID')
APEXでは、着信リクエストの処理を開始するとき、APEX$SESSION
コンテキストを設定します。たとえば、'APP_ID'
の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーでカレント・アプリケーションIDにアクセスできます。
親トピック: 組込み置換文字列の使用
3.9.4.6 APP_ALIAS
APP_ALIAS
は、カレント・アプリケーションの英数字の名前です。APP_ALIAS
は、APP_ID
が1つのデータベースでホスティングされているすべてのワークスペースおよびすべてのアプリケーションで一意である必要があるという点で、APP_ID
と異なります。APP_ALIAS
は、ワークスペース内で一意である必要があります。たとえば、1つのAPP_ALIAS
を使用して2つの異なるワークスペースにABCというアプリケーションを作成することができます。APP_ALIAS
は、APP_ID
を使用できる場所であればほぼすべての場合に使用できます。たとえば、次の例に示すように、f?p
構文にAPP_ALIAS
またはアプリケーションIDを使用できます。
f?p=ABC:1:&APP_SESSION.
この例では、アプリケーションABCのページ1が、カレント・セッションを使用して実行されます。
表3-8 APP_ALIAS構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
次に、HTMLの例を示します。
Click me to go to page 1 <a href="f?p=&APP_ALIAS.:1:&APP_SESSION."> of the current application</a>
親トピック: 組込み置換文字列の使用
3.9.4.7 APP_AJAX_X01, ... APP_AJAX_X10
APP_AJAX_Xnn
は、showモジュールまたはacceptモジュール内で最も最近に渡されたか、または設定されたAPP_AJAX_X01, ... APP_AJAX_X10
URLパラメータを指定します。通常、これらの変数は「On Demand AJAX」プロセスで使用します。
表3-9 APP_AJAX_Xnn構文
参照タイプ | 構文 |
---|---|
バインド変数 | ... :APP_AJAX_X01, ... :APP_AJAX_X10 |
PL/SQL | ... v('APP_AJAX_X01'), ... v('APP_AJAX_X10') |
置換文字列 | ... &APP_AJAX_X01., ... &APP_AJAX_X10. |
関連項目:
『Oracle APEX APIリファレンス』の「APEX_APPLICATION」に記載されているG_X01、... G_X10
変数
親トピック: 組込み置換文字列の使用
3.9.4.8 APP_BUILDER_SESSION
ユーザーが開発者としてもワークスペースにログインしている場合、APP_BUILDER_SESSION
には開発環境の現在のセッションIDが含まれています。そうでない場合、APP_BUILDER_SESSION
はnullです。
表3-10 APP_BUILDER_SESSION構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.9 APP_DATE_TIME_FORMAT
APP_DATE_TIME_FORMAT
は、アプリケーションの「アプリケーションの日時書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーションの日時書式」属性で指定された書式が反映されます。アプリケーションで「アプリケーションの日時書式」が設定されていない場合、APP_DATE_TIME_FORMAT
への参照はデータベース・セッションのNLS日付書式とNLS時刻書式を返します。
表3-11 APP_DATE_TIME_FORMAT構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.10 APP_FILES
ノート:
APP_IMAGES
の名前がAPP_FILES
に変更されました。レガシー名APP_IMAGES
は引き続きサポートされていますが、Oracleでは新しい名前を使用することをお薦めします。
この置換文字列を使用して、特定のアプリケーションに固有で、複数のアプリケーションでは共有されていないアップロードされたイメージ、JavaScriptおよびカスケード・スタイルシートを参照します。ファイルをアップロードして、そのファイルをアプリケーション固有に設定した場合は、この置換文字列またはバインド変数を使用する必要があります。
表3-12 APP_FILES構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_FILES |
直接PL/SQL | 使用不可。 |
PL/SQL | V('APP_FILES') |
置換文字列 | &APP_FILES. |
テンプレート置換 | #APP_FILES# |
関連項目:
親トピック: 組込み置換文字列の使用
3.9.4.11 APP_NLS_DATE_FORMAT
APP_NLS_DATE_FORMAT
は、データベース・セッションの「アプリケーション日付書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーション日付書式」属性で指定された書式が反映されます。ただし、「アプリケーション日付書式」が設定されていない場合、APP_NLS_DATE_FORMAT
は、APEXエンジンへのリクエストの開始時にデータベース・セッションのNLS_DATE_FORMAT
値を返します。
表3-13 APP_NLS_DATE_FORMAT構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_NLS_DATE_FORMAT |
PL/SQL | V('APP_NLS_DATE_FORMAT') |
置換文字列 | &APP_NLS_DATE_FORMAT. |
親トピック: 組込み置換文字列の使用
3.9.4.12 APP_NLS_TIMESTAMP_FORMAT
APP_NLS_TIMESTAMP_FORMAT
は、データベース・セッションの「アプリケーションのタイムスタンプ書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーションのタイムスタンプ書式」属性で指定された書式が反映されます。ただし、「アプリケーションのタイムスタンプ書式」が設定されていない場合、APP_NLS_TIMESTAMP_FORMAT
は、APEXエンジンへのリクエストの開始時にデータベース・セッションのNLS_TIMESTAMP_FORMAT
値を返します。
表3-14 APP_NLS_TIMESTAMP_FORMAT構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_NLS_TIMESTAMP_FORMAT |
PL/SQL | V('APP_NLS_TIMESTAMP_FORMAT') |
置換文字列 | &APP_NLS_TIMESTAMP_FORMAT. |
親トピック: 組込み置換文字列の使用
3.9.4.13 APP_NLS_TIMESTAMP_TZ_FORMAT
APP_NLS_TIMESTAMP_TZ_FORMAT
は、データベース・セッションのアプリケーションの「アプリケーションのタイムスタンプ・タイムゾーン書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーションのタイムスタンプ・タイムゾーン書式」属性で指定された書式が反映されます。ただし、「アプリケーションのタイムスタンプ・タイムゾーン書式」が設定されていない場合、APP_NLS_TIMESTAMP_TZ_FORMAT
は、APEXエンジンへのリクエストの開始時にデータベース・セッションのNLS_TIMESTAMP_TZ_FORMAT
値を返します。
表3-15 APP_NLS_TIMESTAMP_TZ_FORMAT構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_NLS_TIMESTAMP_TZ_FORMAT |
PL/SQL | V('APP_NLS_TIMESTAMP_TZ_FORMAT') |
置換文字列 | &APP_NLS_TIMESTAMP_TZ_FORMAT. |
親トピック: 組込み置換文字列の使用
3.9.4.14 APP_PAGE_ALIAS
APP_PAGE_ALIAS
は、カレント・アプリケーション・ページの英数字の名前です。ページの別名は大/小文字が区別されず、これはオプションのページ属性です。APP_PAGE_ALIAS
は、アプリケーション内で一意です。APP_PAGE_ALIAS
は、APP_PAGE_ID
を使用できる場所であればほぼすべての場合に使用できます。
表3-16 APP_PAGE_ALIAS構文
参照タイプ | 構文 |
---|---|
バインド変数 |
:APP_PAGE_ALIAS |
PL/SQL |
v('APP_PAGE_ALIAS') |
置換文字列 |
&APP_PAGE_ALIAS. |
次に、HTMLの例を示します。
カレント・ページの別名は、&APP_PAGE_ALIAS
です。
親トピック: 組込み置換文字列の使用
3.9.4.15 APP_PAGE_ID
APP_PAGE_ID
は、カレント・アプリケーション・ページIDです。たとえば、アプリケーションが3ページ目に存在した場合、結果は3になります。この構文の使用は、複数のアプリケーションで汎用的に動作する必要があるアプリケーション・コンポーネントを記述する場合に有効です。
表3-17 APP_PAGE_ID構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
PL/SQLおよび直接PL |
|
置換文字列 |
|
次に、置換文字列の参照の例を示します。
f?p=&APP_ID.:&APP_PAGE_ID.:&APP_SESSION.
親トピック: 組込み置換文字列の使用
3.9.4.16 APP_REGION_ID
APP_REGION_ID
は、現在実行されているリージョンのIDを示します。
表3-18 APP_REGION_ID構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.17 APP_REGION_STATIC_ID
APP_REGION_STATIC_ID
は、現在実行されているリージョンの静的IDを示します。開発者が静的IDを入力しなかった場合は、NULLが返されます。
表3-19 APP_REGION_STATIC_ID構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.18 APP_REQUEST_DATA_HASH
APP_REQUEST_DATA_HASH
は、URLのリクエスト、アイテム名およびアイテム値部分のハッシュ値です。主に、2つのブラウザ・リクエストによって異なるパラメータがAPEXに渡されたかどうかを検出する場合に役立ちます。
表3-20 APP_REQUEST_DATA_HASH構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_REQUEST_DATA_HASH |
PL/SQL | V('APP_REQUEST_DATA_HASH') |
置換文字列 | &APP_REQUEST_DATA_HASH. |
親トピック: 組込み置換文字列の使用
3.9.4.19 APP_SESSION
APP_SESSION
は、最もよく使用される組込み置換文字列です。この置換文字列を使用して、セッション番号を渡すことによりセッション・ステートを維持するアプリケーション・ページ間のハイパーテキスト・リンクを作成できます。APP_SESSION
のかわりに置換文字列SESSION
を使用することもできます。
表3-21 APP_SESSION構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_SESSION
|
PL/SQL | V('APP_SESSION') |
短縮PL/SQL | V('SESSION')
|
置換文字列 | &APP_SESSION. |
SYS_CONTEXT変数 | SYS_CONTEXT('APEX$SESSION', 'APP_SESSION') |
次の例を参考にしてください。
- HTMLリージョン内からの参照:
<a href="f?p=100:5:&APP_SESSION.">click me</a>
- PL/SQLを使用した参照:
htf.anchor('f?p=100:5:'||V('APP_SESSION'),'click me');
- SQL問合せを使用した参照:
SELECT htf.anchor('f?p=100:5:'||:APP_SESSION,'click me') FROM DUAL;
-
SYS_CONTEXT
変数の使用:SELECT ... WHERE apex_session_id = SYS_CONTEXT('APEX$SESSION', 'APP_SESSION')
APEXでは、着信リクエストの処理を開始するとき、
APEX$SESSION
コンテキストを設定します。たとえば、'APP_SESSION'
の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーでカレント・アプリケーション・セッションにアクセスできます。
親トピック: 組込み置換文字列の使用
3.9.4.20 APP_SESSION_VISIBLE
APP_SESSION_VISIBLE
は、組込み置換APP_SESSION
に似ています。この置換文字列を使用して、セッション番号を渡すことによりセッション・ステートを維持するアプリケーション・ページ間のハイパーテキスト・リンクを作成します。ユーザーがアプリケーションへ認証されていない場合およびAPEXのゼロ・セッションID機能を使用している場合、APP_SESSION_VISIBLE
は、常にゼロを返します。
表3-22 APP_SESSION_VISIBLE構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_SESSION_VISIBLE |
PL/SQL | V('APP_SESSION_VISIBLE') |
置換文字列 | &APP_SESSION_VISIBLE. |
次の例を参考にしてください。
- HTMLリージョン内からの参照:
<a href="f?p=100:5:&APP_SESSION_VISIBLE.">click me</a>
- PL/SQLを使用した参照:
sys.htf.anchor('f?p=100:5:'||V('APP_SESSION_VISIBLE'),'click me');
- SQL問合せを使用した参照:
SELECT sys.htf.anchor('f?p=100:5:'||:APP_SESSION_VISIBLE,'clickme') FROM DUAL;
親トピック: 組込み置換文字列の使用
3.9.4.21 APP_TITLE
APP_TITLE
は、カレント・アプリケーションの英数字のタイトルです。タイトルは、APP_TITLE
というアプリケーション置換文字列から導出されます。定義されていない場合は、「ロゴ」属性が使用されます(タイプがテキストの場合)。いずれもない場合は、アプリケーション名が使用されます。
表3-23 APP_TITLE構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
次に、HTMLの例を示します。
The title of the current application is: &APP_TITLE!HTML.
親トピック: 組込み置換文字列の使用
3.9.4.22 APP_UNIQUE_PAGE_ID
APP_UNIQUE_PAGE_ID
は、各ページ・ビューに固有なOracle順序から生成される整数です。この数値は、アプリケーションでの重複ページの送信を防止するために使用され、その他の用途にも使用できます。たとえば、一意のURLを作成してブラウザのキャッシュの問題を防止するために、この数値を、f
プロシージャへのコール内のリクエスト列またはデバッグ列に埋め込むことができます。
表3-24 APP_UNIQUE_PAGE_ID構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
次に、HTMLの例を示します。
SELECT 'f?p=100:1:'||:APP_SESSION||':'||:APP_UNIQUE_PAGE_ID|| ':::P1_EMPNO:'||employee_id, first_name, job_id FROM employees
リクエスト列にAPP_UNIQUE_PAGE_ID
が使用されていることに注意してください。これによって、このURLが一意になり、ブラウザによる過度のキャッシュの問題を回避できます。
親トピック: 組込み置換文字列の使用
3.9.4.23 APP_USER
APP_USER
は、アプリケーションを実行しているカレント・ユーザーです。認証モデルに応じて、ユーザーの値の設定も異なります。アプリケーションがデータベース認証を使用して実行されている場合、ユーザーの値はデータベースの擬似列USERと同じになります。アプリケーションが、ユーザー認証を必要とする認証スキームを使用する場合、APP_USER
の値はその認証スキームによって設定され、通常は、認証時に使用されるユーザー名に設定されます。
表3-25 APP_USER構文
参照タイプ | 構文 |
---|---|
バインド変数 | :APP_USER |
PL/SQL | V('APP_USER') |
置換文字列 | &APP_USER. |
SYS_CONTEXT variable
|
SYS_CONTEXT('APEX$SESSION', 'APP_USER') |
次の例を参考にしてください。
- HTMLリージョン内からの参照:
Hello you are logged in as &APP_USER.
- PL/SQLを使用した参照:
htp.p('Hello you are logged in as'||V('APP_USER'));
- バインド変数としての参照:
SELECT * FROM some_table WHERE user_id = :APP_USER
SYS_CONTEXT
変数の使用:SELECT ... WHERE username = SYS_CONTEXT('APEX$SESSION', 'APP_USER')
APEXでは、着信リクエストの処理を開始するとき、
APEX$SESSION
コンテキストを設定します。たとえば、'APP_USER'
の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーでカレント・アプリケーション・ユーザーにアクセスできます。関連項目:
「パブリック・ユーザー」属性の詳細は、「認証」を参照してください
親トピック: 組込み置換文字列の使用
3.9.4.24 AUTHENTICATED_URL_PREFIX
このアプリケーション・レベルの属性は、有効な認証済接頭辞(ログインしているURLの接頭辞)を示します。相対パスまたはhttp
で始まるフルパスを使用できます。このアイテムは、アプリケーションが認証済(ログイン済)モードとパブリック(未ログイン)・モードの両方で実行可能な場合に有効です。AUTHENTICATED_URL_PREFIX
を使用すると、認証済のページへのリンクを作成できます。このアイテムは、Basicデータベース認証の使用時に最も有効です。これは、URLの変更に認証が必要になる場合があるためです。
表3-26 AUTHENTICATED_URL_PREFIX構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.25 BROWSER_LANGUAGE
BROWSER_LANGUAGE
は、Webブラウザの現行の言語プリファレンスを参照します。
表3-27 BROWSER_LANGUAGE構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
直接PL/SQL |
|
PL/SQL |
|
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.26 CURRENT_PARENT_TAB_TEXT
CURRENT_PARENT_TAB_TEXT
は、ページ・テンプレートで最も有効です。ただし、この文字列は、2つのレベルのタブ(親タブと標準タブ)が使用されるアプリケーションでのみ使用できます。この文字列は、親タブ・ラベルの参照に使用します。この置換文字列を使用すると、現在選択されている親タブを、ページ・テンプレート内で繰り返すことができます。
表3-28 CURRENT_PARENT_TAB_TEXT構文
参照タイプ | 構文 |
---|---|
バインド変数 |
使用不可。 |
置換文字列 |
|
親トピック: 組込み置換文字列の使用
3.9.4.27 DEBUG
DEBUG
フラグの有効値は、Yes
またはNo
です。デバッグを有効にすると、アプリケーション処理の詳細が表示されます。カスタム・コードを記述する場合は、デバッグ・モードがYes
に設定されている場合にのみデバッグ情報を生成できます。
表3-29 DEBUG構文
参照タイプ | 構文 |
---|---|
バインド変数 |
: |
直接PL/SQL |
|
PL/SQL |
|
置換文字列 |
|
次に、DEBUG
の現行の値を保持する置換文字列の参照の例を示します。
f?p=100:1:&APP_SESSION.::&DEBUG
親トピック: 組込み置換文字列の使用
3.9.4.28 HOME_LINK
HOME_LINK
は、アプリケーションのホームページです。ページが指定されておらず、かつ認証スキームのロジックによって代替ページが指定されていない場合、APEXエンジンによって、この場所にリダイレクトされます。ホームURLは、ユーザー・インタフェース・ページの「属性」で定義します。
表3-30 HOME_LINK構文
参照タイプ | 構文 |
---|---|
直接PL/SQL | APEX_APPLICATION.G_HOME_LINK |
PL/SQL | V('HOME_LINK') |
テンプレート参照 | #HOME_LINK# |
置換文字列 | &HOME_LINK. |
関連項目:
親トピック: 組込み置換文字列の使用
3.9.4.29 JET_BASE_DIRECTORY
JET_BASE_DIRECTORY
置換文字列を使用して、APEXに付属するOracle JavaScript拡張機能ツールキット(JET)のベース・ディレクトリを参照します。JET_BASE_DIRECTORY
を参照するためにサポートされている構文は、次のとおりです。
#JET_BASE_DIRECTORY#
親トピック: 組込み置換文字列の使用
3.9.4.30 JET_CSS_DIRECTORY
JET_CSS_DIRECTORY
置換文字列を使用して、APEXに付属するOracle JavaScript拡張機能ツールキット(JET)のベース・ディレクトリを参照します。JET_CSS_DIRECTORY
を参照するためにサポートされている構文は、次のとおりです。
#JET_CSS_DIRECTORY#
親トピック: 組込み置換文字列の使用
3.9.4.31 JET_JS_DIRECTORY
JET_JS_DIRECTORY
置換文字列を使用して、APEXに付属するOracle JavaScript拡張機能ツールキット(JET)のコンポーネントのJavaScriptディレクトリを参照します。JET_JS_DIRECTORY
を参照するためにサポートされている構文は、次のとおりです。
#JET_JS_DIRECTORY#
親トピック: 組込み置換文字列の使用
3.9.4.32 LOGIN_URL
現在ログインしていないユーザー用のログイン・ページへのリンクを表示するには、LOGIN_URL
を使用します。
関連項目:
認証およびセキュリティ・ページ
表3-31 LOGIN_URL構文
参照タイプ | 構文 |
---|---|
バインド変数 | :LOGIN_URL |
直接PL/SQL | APEX_APPLICATION.G_LOGIN_URL |
PL/SQL | V('LOGIN_URL') |
置換文字列 | &LOGIN_URL. |
テンプレート置換 | #LOGIN_URL# |
親トピック: 組込み置換文字列の使用
3.9.4.33 LOGOUT_URL
LOGOUT_URL
はアプリケーション・レベルの属性であり、ログアウトURLの指定に使用されます。これは、ユーザーをログアウト・ページにナビゲートさせるか、またはオプションで直接ユーザーをログアウトさせるURLです。ログアウト・ナビゲーション・バー・エントリを作成するには、&LOGOUT_URL
の最後にピリオドを追加します(&LOGOUT_URL.
)。ページ・テンプレートをコーディングしている場合は、#LOGOUT_URL#
を使用します。
表3-32 LOGOUT_URL構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
テンプレート置換 |
|
親トピック: 組込み置換文字列の使用
3.9.4.34 APP_TEXT$Message_Name、APP_TEXT$Message_Name$Lang
APP_TEXT$Message_Name、APP_TEXT$Message_Name$Lang
の組込み置換では、APEX_LANG.MESSAGE
など、アプリケーションで定義されたテキスト・メッセージまたはシステムで定義されたテキスト・メッセージにアクセスできます。Message_Name
はテキスト・メッセージの名前であり、Message_Name
を有効な識別子(A-Z、0-9、$、#、_
)にする必要があります。オプションの$Lang
パラメータは特定の翻訳にアクセスするために使用でき、$Lang
はデフォルトでページ・リクエストの現在の言語に設定されます。
表3-33 APP_TEXT$Message_Name、APP_TEXT$Message_Name$Lang構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
次は、HTMLエスケープを使用した、デフォルトの語とフランス語のテキスト・メッセージMY_MESSAGE
の例です。
Default text: &APP_TEXT$MY_MESSAGE!HTML.
Pardon my French: &APP_TEXT$MY_MESSAGE$FR!HTML.
親トピック: 組込み置換文字列の使用
3.9.4.35 PRINTER_FRIENDLY
PRINTER_FRIENDLY
の値によって、APEXエンジンを印刷表示モードで実行するかどうかが決まります。この設定は、印刷されたドキュメントに不要な要素をページから排除するための条件で参照できます。
表3-34 PRINTER_FRIENDLY構文
参照タイプ | 構文 |
---|---|
直接PL/SQL | APEX_APPLICATION.G_PRINTER_FRIENDLY (VARCHAR2 DATATYPE) |
PL/SQL | V('PRINTER_FRIENDLY') |
置換文字列 | &PRINTER_FRIENDLY. |
親トピック: 組込み置換文字列の使用
3.9.4.36 PROXY_SERVER
PROXY_SERVER
は、アプリケーション属性です。この属性は、ソースがURLであるリージョンによって使用される場合があります。次に、直接PL/SQL参照用の適切な構文を示します。この参照は、データベースからリモートWebサーバーにアクセスするためのPL/SQLを記述する場合に使用します(たとえば、データベースに付属するutl_http
パッケージを使用する場合)。
APEX_APPLICATION.G_PROXY_SERVER
親トピック: 組込み置換文字列の使用
3.9.4.37 PUBLIC_URL_PREFIX
PUBLIC_URL_PREFIX
は、アプリケーション・レベルの属性であり、ログイン・モードをパブリック表示に切り替えるURLを指定します。
表3-35 PUBLIC_URL_PREFIX構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
PL/SQL |
|
置換文字列 |
|
テンプレート置換 |
|
親トピック: 組込み置換文字列の使用
3.9.4.38 REQUEST
REQUEST
の値は、各アプリケーション・ボタンによって、そのボタンの名前またはそのボタンに関連付けられているリクエスト値属性に設定され、これにより、受入れ処理が可能になり、ユーザーがボタンをクリックすると、そのボタンの名前を参照するようになります。f?p
構文では、REQUEST
は4つ目の引数を使用して設定できます。
REQUEST
は、通常、受入れプロセス(ページのポスト時に発生するプロセス)中に参照されます。
表3-36 REQUEST構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
直接PL/SQL |
|
PL/SQL |
|
置換文字列 |
|
関連項目:
親トピック: 組込み置換文字列の使用
3.9.4.39 REQUESTの使用
REQUEST
は、通常、受入れプロセス(ページのポスト時に発生するプロセス)中に参照されます。この項では、REQUEST置換文字列の使用方法に関する追加情報について説明します。
- ポストされたページのREQUESTの有効範囲および値について
- 「対象ボタン」属性について
- 宣言条件を使用したREQUESTの参照について
- 表示プロセスでのREQUESTの使用について
- BRANCH_TO_PAGE_ACCEPTの使用について
関連項目:
親トピック: 組込み置換文字列の使用
3.9.4.39.1 ポストされたページのREQUESTの有効範囲および値について
ページをポストすると、受入れプロセスが起動されます。受入れプロセスは、計算、検証、プロセスおよびブランチで構成されています。REQUEST
の値は、受入れプロセスの各フェーズで使用可能です。アプリケーションが別のページにブランチされると、REQUEST
はNULLに設定されます。
REQUEST
の値は、ユーザーがクリックするボタンの名前か、またはユーザーが選択するタブの名前です。たとえば、名前がCHANGE
でラベルがApply Change
というボタンがあるとします。ユーザーがこのボタンをクリックすると、REQUEST
の値がCHANGE
になります。
親トピック: REQUESTの使用
3.9.4.39.2 「対象ボタン」属性について
検証、プロセスおよびブランチには「対象ボタン」属性があります。この属性は、選択リストとして表示され、カレント・ページにあるボタン名を含みます。「対象ボタン」から選択した場合、ボタンのREQUEST
値を検証、プロセスまたはブランチに関連付けます。
ページの送信にボタンを使用する場合、REQUEST
値がページに渡されます。受入れプロセス・ロジックにより、「対象ボタン」属性を使用する各検証、プロセスおよびブランチが評価され、コンポーネントを実行(起動)するかどうかが決定されます。コンポーネントの1つが実行される場合、関連付けられたボタンをユーザーが実際にクリックしてページが送信されたとはみなさないでください。同じリクエスト値を使用する別のボタンがページを送信した可能性があります。同様に、ページのJavaScriptもページを送信してリクエスト値を渡します。
親トピック: REQUESTの使用
3.9.4.39.3 宣言条件を使用したREQUESTの参照について
多くの開発者は、条件を使用してREQUEST
を参照します。たとえば、ユーザーがレポート・ページ上の「実行」をクリックしたときにページ区切りをリセットする必要がある場合があります。ページ区切りは、送信時ページ・プロセスを作成してリセットできます。ページ・プロセスには、条件「リクエスト=式1」を使用して条件を付けることができます。
送信時ページ・プロセスに条件を設定するには:
-
「条件」で、条件タイプ「リクエスト=式1」を選択します。
-
式1で「実行」を実行します。
親トピック: REQUESTの使用
3.9.4.39.4 表示プロセスでのREQUESTの使用について
REQUEST
は、f?p
構文を使用してページに移動するときの表示プロセスにも使用できます。次に例を示します。
f?p=100:1:&APP_SESSION.:GO
f?p
構文の4つ目の引数がREQUEST
です。この例では、カレント・セッションのアプリケーション100のページ1に移動し、REQUEST
の値がGO
に設定されます。すべてのプロセスまたはリージョンでは、表示プロセスを使用してREQUEST
の値を参照できます。
次に、PL/SQLを使用した同様の例を示します。
IF V ('REQUEST') = 'GO' THEN htp.p('hello'); END IF;
htp.p('hello')
は、特定のテキスト文字列を出力するためのPL/SQL Webツールキット・パッケージへのコールであることに注意してください。
関連項目:
親トピック: REQUESTの使用
3.9.4.39.5 BRANCH_TO_PAGE_ACCEPTの使用について
表示プロセスで特殊なリクエストBRANCH_TO_PAGE_ACCEPT
を使用して、自動的にページを送信できます。次に例を示します。
f?p=100:1:&APP_SESSION.:BRANCH_TO_PAGE_ACCEPT|SAVE:::P1_DATA:value
BRANCH_TO_PAGE_ACCEPT
の使用は、ページ1にナビゲートし、アイテムP1_DATAに値を入力し、SAVEリクエストでページを送信するボタンをクリックすることと同じです。
親トピック: REQUESTの使用
3.9.4.40 SCHEMA OWNER
PL/SQLコードからアプリケーションへのコールを生成する場合、APEXスキーマの所有者を参照する必要があります。次に、直接PL/SQLの参照用の適切な構文を示します。
APEX_APPLICATION.G_FLOW_SCHEMA_OWNER
また、#FLOW_OWNER#
を使用してSQL問合せおよびPL/SQL(リージョンやプロセスなど)でこの値を参照することもできます。
親トピック: 組込み置換文字列の使用
3.9.4.41 SQLERRM
SQLERRM
は、アプリケーション・リージョン・エラー・メッセージでのみ使用可能なテンプレート置換です。リージョン・テンプレート置換を参照するためにサポートされている構文は、次のとおりです。
#SQLERRM#
親トピック: 組込み置換文字列の使用
3.9.4.42 SYSDATE_YYYYMMDD
SYSDATE_YYYYMMDD
は、データベース・サーバーの現在の日付にYYYYMMDD
書式マスクを適用して表示します。この値を、SYSDATE()
ファンクションを繰り返しコールするかわりに使用できます。次のリストに、SYSDATE_YYYYMMDD
を参照するためにサポートされている構文を示します。
-
バインド変数
:SYSDATE_YYYYMMDD
-
PL/SQL
V('SYSDATE_YYYYMMDD')
-
直接PL/SQL
APEX_APPLICATION.G_SYSDATE (DATE DATATYPE)
表3-37 SYSDATE_YYYYMMDD構文
参照タイプ | 構文 |
---|---|
バインド変数 |
|
直接PL/SQL |
|
PL/SQL |
|
親トピック: 組込み置換文字列の使用
3.9.4.43 THEME_DB_FILES
ノート:
THEME_DB_IMAGES
の名前がTHEME_DB_FILES
に変更されました。レガシー名THEME_DB_IMAGES
は引き続きサポートされていますが、Oracleでは新しい名前を使用することをお薦めします。
テーマの「ファイルの接頭辞」設定に関係なく、データベースにテーマ定義とともに格納されているファイルを常に参照するには、THEME_DB_FILES
置換文字列を使用します。テンプレート置換のためにサポートされている構文は、次のとおりです。
#THEME_DB_FILES#
親トピック: 組込み置換文字列の使用
3.9.4.44 THEME_FILES
ノート:
THEME_IMAGES
の名前がTHEME_FILES
に変更されました。レガシー名THEME_IMAGES
は引き続きサポートされていますが、Oracleでは新しい名前を使用することをお薦めします。
テーマ定義とともに格納されているファイルを参照するには、THEME_FILES
置換文字列を使用します。テンプレート置換のためにサポートされている構文は、次のとおりです。
#THEME_FILES#
親トピック: 組込み置換文字列の使用
3.9.4.45 WORKSPACE_FILES
ノート:
WORKSPACE_IMAGE
の名前がWORKSPACE_FILES
に変更されました。レガシー名WORKSPACE_IMAGE
は引き続きサポートされていますが、Oracleでは新しい名前を使用することをお薦めします。
この置換文字列を使用して、ワークスペース内の複数のアプリケーションで共有されているアップロードされたイメージ、JavaScriptおよびカスケード・スタイルシートを参照します。
表3-38 WORKSPACE_FILES構文
参照タイプ | 構文 |
---|---|
バインド変数 | :WORKSPACE_FILES |
直接PL/SQL | 使用不可 |
PL/SQL | V('WORKSPACE_FILES') |
置換文字列 | &WORKSPACE_FILES. |
テンプレート置換 | #WORKSPACE_FILES# |
関連項目:
親トピック: 組込み置換文字列の使用
3.9.4.46 WORKSPACE_ID
ワークスペースIDを参照するには、この置換文字列を使用します。
表3-39 WORKSPACE_ID構文
参照タイプ | 構文 |
---|---|
バインド変数 | :WORKSPACE_ID |
PL/SQL | V('WORKSPACE_ID') |
置換文字列 | &WORKSPACE_ID. |
SYS_CONTEXT variable
|
SELECT ... WHERE workspace_id = SYS_CONTEXT('APEX$SESSION', ''WORKSPACE_ID') |
次の例を参考にしてください。
- HTMLリージョン内からの参照:
Hello your workspace id is &WORKSPACE_ID.
- PL/SQLを使用した参照:
htp.p('Hello your workspace id is '||V('WORKSPACE_ID'));
- バインド変数の使用:
SELECT * FROM some_table WHERE workspace_id = :WORKSPACE_ID
SYS_CONTEXT
変数の使用:SELECT ... WHERE workspace_id = SYS_CONTEXT('APEX$SESSION', 'WORKSPACE_ID')
APEXでは、着信リクエストの処理を開始するとき、
APEX$SESSION
コンテキストを設定します。たとえば、'WORKSPACE_ID'
の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーで現在のワークスペースID値にアクセスできます。
親トピック: 組込み置換文字列の使用