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

Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド リリース5.1 E83810-03 |
| 目次 | 索引

前 | 次 |

# 2.9 置換文字列の理解

ページ・テンプレート内またはリージョン・ソース内で置換文字列を使用すると、情報を渡して文字列を別の値に置換できます。

トピック:

- 置換文字列の使用について
- 置換文字列での出力のエスケープの制御
- テンプレート内での置換文字列の使用方法の確認について
- 組込み置換文字列の使用

## 2.9.1 置換文字列の使用について

アプリケーション・ビルダーでは、次のように置換文字列を使用できます。

- コンポーネント値を参照するために置換文字列をテンプレート内に含めます。

- `&ITEM`構文を使用して、ページまたはアプリケーション・アイテムを参照します。

- 組込み置換文字列の使用

テンプレート内の置換文字列

テンプレート内で使用可能な特別な置換文字列は、シャープ記号(#)で示します。次に例を示します。

    #ABC#

ページまたはアプリケーション・アイテムの置換文字列

置換変数を使用してページまたはアプリケーション・アイテムを参照するには、次のステップを実行します。

1. すべて大文字でページまたはアプリケーション・アイテムを参照します。

2. アイテム名の先頭にアンパサンド(&)を追加します。

3. アイテム名の末尾にピリオド(.)を追加します。

たとえば、リージョン、リージョン・タイトル、アイテム・ラベル、または静的テキストを使用するその他の多数のコンテキストで`F101_X`という名前のアプリケーション・アイテムを参照する場合は、次のように入力します。

    &F101_X.

最後にピリオドが必要であることに注意してください。Application Expressエンジンは、置換文字列の値をアイテム`F101_X`の値に置き換えます。

## 2.9.2 置換文字列での出力のエスケープの制御

置換値の特殊文字をエスケープするために、開発者は、ページ名、アプリケーション・アイテム名、レポート列、またはその他の置換文字列に、感嘆符(`!`)を前に付けた事前定義済フィルタ名を追加できます。出力のエスケープは、ブラウザでクロス・サイト・スクリプティング(XSS)攻撃を回避するための重要なセキュリティ手法です。Oracle Application Expressでは、HTMLまたはJavaScriptコンテキスト内の文字を自動的にエスケープするための最善の努力をすでに行っています。この拡張構文を使用して、開発者は出力を詳細に制御できます。

使用できるエスケープ・フィルタは次のとおりです。

- `HTML`は、次に示すように、予約されているHTML文字をエスケープします。

      &ITEM!HTML.
      #REPORT_COLUMN!HTML#

  関連項目:

  『Oracle Application Express APIリファレンス』のAPEX_ESCAPE.HTMLに関する説明

- `ATTR`は、次に示すように、HTML属性コンテキスト内の予約文字をエスケープします。

       #REPORT_COLUMN!ATTR#

  関連項目:

  『Oracle Application Express APIリファレンス』のAPEX_ESCAPE.HTML_ATTRIBUTEに関する説明

- `JS`は、次に示すように、JavaScriptコンテキスト内の予約文字をエスケープします。

      &ITEM!JS.
      #REPORT_COLUMN!JS#

  関連項目:

  『Oracle Application Express APIリファレンス』のAPEX_ESCAPE.JS_LITERALに関する説明

- `RAW`は、次に示すように、元のアイテム値を保持し、文字をエスケープしません。

      &ITEM!RAW.
      #REPORT_COLUMN!RAW#

- `STRIPHTML`は、次に示すように、HTMLタグを出力から削除し、予約されているHTML文字をエスケープします。

      &ITEM!STRIPHTML.
      #REPORT_COLUMN!STRIPHTML#

## 2.9.3 テンプレート内での置換文字列の使用方法の確認について

テンプレートの定義を表示することによって、テンプレート固有のどの置換文字列がどのテンプレートでサポートされるかを確認できます。カスタム・テーマの作成を参照してください。

## 2.9.4 組込み置換文字列の使用

アプリケーション・ビルダーでは、多くの組込み置換文字列がサポートされています。これらの置換文字列を参照して、特定のタイプの機能を実現できます。

ヒント:

バインド変数`:USER`はデータベース内で特別な意味を持つことに注意してください。また、直接PL/SQLという用語は、プロシージャおよびファンクションなどのストアド・データベース・オブジェクトで使用可能なPL/SQLを表します。

トピック:

- APEX$ROW_NUM
- APEX$ROW_SELECTOR
- APEX$ROW_STATUS
- APP_ID
- APP_ALIAS
- APP_AJAX_X01, ... APP_AJAX_X10
- APP_DATE_TIME_FORMAT
- APP_IMAGES
- APP_NLS_DATE_FORMAT
- APP_NLS_TIMESTAMP_FORMAT
- APP_NLS_TIMESTAMP_TZ_FORMAT
- APP_PAGE_ALIAS
- APP_PAGE_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
- IMAGE_PREFIX
- JET_BASE_DIRECTORY
- JET_CSS_DIRECTORY
- JET_JS_DIRECTORY
- LOGIN_URL
- LOGOUT_URL
- PRINTER_FRIENDLY
- PROXY_SERVER
- PUBLIC_URL_PREFIX
- REQUEST
- REQUESTの使用
- SCHEMA OWNER
- SQLERRM
- SYSDATE_YYYYMMDD
- THEME_DB_IMAGES
- THEME_IMAGES
- WORKSPACE_IMAGES
- WORKSPACE_ID

関連項目:

置換および認証によるユーザー・アイデンティティの証明

### 2.9.4.1 APEX$ROW_NUM

`APEX$ROW_NUM`は、送信された表形式フォーム・データの現在処理されている行番号を参照します。このプレースホルダは、表形式フォームに関連付けられた検証、プロセスおよび条件内で使用して、現在処理されている表形式フォーム行の行番号を参照できます。表2-4に、`APEX$ROW_NUM`を参照するためにサポートされている構文を示します。

表2-4 APEX$ROW_NUM

参照タイプ | 構文
--- | ---
バインド変数 | `:APEX$ROW_NUM`
PL/SQL | `V('APEX$ROW_NUM')`
置換文字列 | `&APEX$ROW_NUM.`

### 2.9.4.2 APEX$ROW_SELECTOR

`APEX$ROW_SELECTOR`は、表形式フォームに関連付けられた検証、プロセスおよび条件内で使用して、表形式フォーム内の行セレクタ・チェック・ボックスを参照します。このプレースホルダでは、現在処理されている表形式フォーム行の表形式フォーム行セレクタ・チェック・ボックスが選択されている場合に`X`が戻され、選択解除されている場合には`NULL`が戻されます。表2-5に、`APEX$ROW_SELECTOR`を参照するためにサポートされている構文を示します。

表2-5 APEX$ROW_SELECTOR

参照タイプ | 構文
--- | ---
バインド変数 | `:APEX$ROW_SELECTOR`
PL/SQL | `V('APEX$ROW_SELECTOR')`
置換文字列 | `&APEX$ROW_SELECTOR.`

### 2.9.4.3 APEX$ROW_STATUS

`APEX$STATUS`は、表形式フォームに関連付けられた検証、プロセスおよび条件内で使用して、表形式フォーム内の行ステータスを参照します。このプレースホルダでは、現在処理されている表形式フォーム行が作成された場合は`C`、更新された場合は`U`、削除された場合は`D`というステータスが戻されます。表2-6に、`APEX$ROW_STATUS`を参照するためにサポートされている構文を示します。

表2-6 APEX$ROW_STATUS

参照タイプ | 構文
--- | ---
バインド変数 | `:APEX$ROW_STATUS`
PL/SQL | `V('APEX$ROW_STATUS')`
置換文字列 | `&APEX$ROW_STATUS.`

### 2.9.4.4 APP_ID

`APP_ID`は、現在実行されているアプリケーションのアプリケーションIDを示します。表2-7に、`APP_ID`を参照するためにサポートされている構文を示します。

表2-7 APP_ID構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_ID`
直接PL/SQL | `APEX_APPLICATION.G_FLOW_ID (A NUMBER)`
PL/SQL | `NV('APP_ID')`
置換文字列 | `&APP_ID.`

次に、置換文字列の参照の例を示します。

    f?p=&APP_ID.:40:&APP_SESSION.

### 2.9.4.5 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が、カレント・セッションを使用して実行されます。

表2-8に、`APP_ALIAS`を参照するためにサポートされている構文を示します。

表2-8 APP_ALIAS構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_ALIAS`
PL/SQL | `V('APP_ALIAS')`
置換文字列 | `&APP_ALIAS.`

次に、HTMLの例を示します。

    Click me to go to page 1 <a href="f?p=&APP_ALIAS.:1:&APP_SESSION."> of the current application</a>

### 2.9.4.6 APP_AJAX_X01, ... APP_AJAX_X10

`APP_AJAX_Xnn`は、showモジュールまたはacceptモジュール内で最も最近に渡されたか、または設定された`APP_AJAX_X01, ... APP_AJAX_X10` URLパラメータを指定します。通常、これらの変数は「On Demand AJAX」プロセスで使用します。

表2-9に、`APP_AJAX_Xnn`を参照するためにサポートされている構文を示します。

表2-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 Application Express APIリファレンス』に記載されているAPEX_APPLICATIONの`G_X01, ... G_X10`変数

### 2.9.4.7 APP_DATE_TIME_FORMAT

`APP_DATE_TIME_FORMAT`は、アプリケーションの「アプリケーションの日時書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーションの日時書式」属性で指定された書式が反映されます。アプリケーションで「アプリケーションの日時書式」が設定されていない場合、`APP_DATE_TIME_FORMAT`への参照はデータベース・セッションのNLS日付書式とNLS時刻書式を返します。表2-10に、APP_DATE_TIME_FORMATを参照するためにサポートされている構文を示します。

表2-10 APP_DATE_TIME_FORMAT構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_DATE_TIME_FORMAT`
PL/SQL | `V('APP_DATE_TIME_FORMAT')`
置換文字列 | `&APP_DATE_TIME_FORMAT.`

### 2.9.4.8 APP_IMAGES

この置換文字列を使用して、特定のアプリケーションに固有で、複数のアプリケーションでは共有されていないアップロードされたイメージ、JavaScriptおよびカスケード・スタイルシートを参照します。ファイルをアップロードして、そのファイルをアプリケーション固有に設定した場合は、この置換文字列またはバインド変数を使用する必要があります。表2-11に、`APP_IMAGES`を参照するためにサポートされている構文を示します。

表2-11 APP_IMAGES構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_IMAGES`
直接PL/SQL | 使用不可
PL/SQL | `V('APP_IMAGES')`
置換文字列 | `&APP_IMAGES.`
テンプレート置換 | `#APP_IMAGES#`

関連項目:

IMAGE_PREFIX、WORKSPACE_IMAGESおよびイメージの管理について

### 2.9.4.9 APP_NLS_DATE_FORMAT

`APP_NLS_DATE_FORMAT`は、データベース・セッションの「アプリケーション日付書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーション日付書式」属性で指定された書式が反映されます。ただし、「アプリケーション日付書式」が設定されていない場合、`APP_NLS_DATE_FORMAT`は、Application Expressエンジンへのリクエストの開始時にデータベース・セッションの`NLS_DATE_FORMAT`値を返します。表2-12に、`APP_NLS_DATE_FORMAT`を参照するためにサポートされている構文を示します。

表2-12 APP_NLS_DATE_FORMAT構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_NLS_DATE_FORMAT`
PL/SQL | `V('APP_NLS_DATE_FORMAT')`
置換文字列 | `&APP_NLS_DATE_FORMAT.`

### 2.9.4.10 APP_NLS_TIMESTAMP_FORMAT

`APP_NLS_TIMESTAMP_FORMAT`は、データベース・セッションの「アプリケーションのタイムスタンプ書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーションのタイムスタンプ書式」属性で指定された書式が反映されます。ただし、「アプリケーションのタイムスタンプ書式」が設定されていない場合、`APP_NLS_TIMESTAMP_FORMAT`は、Application Expressエンジンへのリクエストの開始時にデータベース・セッションの`NLS_TIMESTAMP_FORMAT`値を返します。表2-13に、`APP_NLS_TIMESTAMP_FORMAT`を参照するためにサポートされている構文を示します。

表2-13 APP_NLS_TIMESTAMP_FORMAT構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_NLS_TIMESTAMP_FORMAT`
PL/SQL | `V('APP_NLS_TIMESTAMP_FORMAT')`
置換文字列 | `&APP_NLS_TIMESTAMP_FORMAT.`

### 2.9.4.11 APP_NLS_TIMESTAMP_TZ_FORMAT

`APP_NLS_TIMESTAMP_TZ_FORMAT`は、データベース・セッションのアプリケーションの「アプリケーションのタイムスタンプ・タイムゾーン書式」です。この値には、アプリケーションの「グローバリゼーション」設定の「アプリケーションのタイムスタンプ・タイムゾーン書式」属性で指定された書式が反映されます。ただし、「アプリケーションのタイムスタンプ・タイムゾーン書式」が設定されていない場合、`APP_NLS_TIMESTAMP_TZ_FORMAT`は、Application Expressエンジンへのリクエストの開始時にデータベース・セッションの`NLS_TIMESTAMP_TZ_FORMAT`値を返します。表2-14に、`APP_NLS_TIMESTAMP_TZ_FORMAT`を参照するためにサポートされている構文を示します。

表2-14 APP_NLS_TIMESTAMP_TZ_FORMAT構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_NLS_TIMESTAMP_TZ_FORMAT`
PL/SQL | `V('APP_NLS_TIMESTAMP_TZ_FORMAT')`
置換文字列 | `&APP_NLS_TIMESTAMP_TZ_FORMAT.`

### 2.9.4.12 APP_PAGE_ALIAS

`APP_PAGE_ALIAS`は、カレント・アプリケーション・ページの英数字の名前です。ページの別名は大/小文字が区別されず、これはオプションのページ属性です。`APP_PAGE_ALIAS`は、アプリケーション内で一意です。`APP_PAGE_ALIAS`は、`APP_PAGE_ID`を使用できる場所であればほぼすべての場合に使用できます。表2-16に、`APP_PAGE_ID`を参照するためにサポートされている構文を示します。

表2-15 APP_PAGE_ALIAS構文

参照タイプ | 構文
--- | ---
バインド変数 | :APP_PAGE_ALIAS
PL/SQL | v('APP_PAGE_ALIAS')
置換文字列 | &APP_PAGE_ALIAS.

次に、HTMLの例を示します。

カレント・ページの別名は、`&APP_PAGE_ALIAS`です。

### 2.9.4.13 APP_PAGE_ID

`APP_PAGE_ID`は、カレント・アプリケーション・ページIDです。たとえば、アプリケーションが3ページ目に存在した場合、結果は3になります。この構文の使用は、複数のアプリケーションで汎用的に動作する必要があるアプリケーション・コンポーネントを記述する場合に有効です。表2-16に、`APP_PAGE_ID`を参照するためにサポートされている構文を示します。

表2-16 APP_PAGE_ID構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_PAGE_ID`
PL/SQL | `:APP_PAGE_ID`
PL/SQLおよび直接PL | `NV('APP_PAGE_ID')`
置換文字列 | `&APP_PAGE_ID`.

次に、置換文字列の参照の例を示します。

    f?p=&APP_ID.:&APP_PAGE_ID.:&APP_SESSION.

### 2.9.4.14 APP_REQUEST_DATA_HASH

`APP_REQUEST_DATA_HASH`は、URLのリクエスト、アイテム名およびアイテム値部分のハッシュ値です。主に、2つのブラウザ・リクエストによって異なるパラメータがAPEXに渡されたかどうかを検出する場合に役立ちます。表2-17に、`APP_REQUEST_DATA_HASH`を参照するためにサポートされている構文を示します。

表2-17 APP_SESSION構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_REQUEST_DATA_HASH`
PL/SQL | `V('APP_REQUEST_DATA_HASH')`
置換文字列 | `&APP_REQUEST_DATA_HASH.`

### 2.9.4.15 APP_SESSION

`APP_SESSION`は、最もよく使用される組込み置換文字列です。この置換文字列を使用して、セッション番号を渡すことによりセッション・ステートを維持するアプリケーション・ページ間のハイパーテキスト・リンクを作成できます。`APP_SESSION`のかわりに置換文字列`SESSION`を使用することもできます。表2-18に、`APP_SESSION`を参照するためにサポートされている構文を示します。

表2-18 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')

  Oracle Application Expressでは、着信リクエストの処理を開始するとき、`APEX$SESSION`コンテキストを設定します。たとえば、`'APP_SESSION'`の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーでカレント・アプリケーション・セッションにアクセスできます。

### 2.9.4.16 APP_SESSION_VISIBLE

`APP_SESSION_VISIBLE`は、組込み置換`APP_SESSION`に似ています。この置換文字列を使用して、セッション番号を渡すことによりセッション・ステートを維持するアプリケーション・ページ間のハイパーテキスト・リンクを作成します。ユーザーがアプリケーションへ認証されていない場合およびOracle Application Expressのゼロ・セッションID機能を使用している場合、`APP_SESSION_VISIBLE`は、常にゼロを返します。表2-19に、`APP_SESSION_VISIBLE`を参照するためにサポートされている構文を示します。

表2-19 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;

### 2.9.4.17 APP_TITLE

`APP_TITLE`は、カレント・アプリケーションの英数字のタイトルです。タイトルは、`APP_TITLE`というアプリケーション置換文字列から導出されます。定義されていない場合は、「ロゴ」属性が使用されます(タイプがテキストの場合)。いずれもない場合は、アプリケーション名が使用されます。表2-20に、`APP_TITLE`を参照するためにサポートされている構文を示します。

表2-20 APP_TITLE構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_TITLE`
PL/SQL | `v('APP_TITLE')`
置換文字列 | `&APP_TITLE.`

次に、HTMLの例を示します。

    The title of the current application is: &APP_TITLE!HTML.

### 2.9.4.18 APP_UNIQUE_PAGE_ID

`APP_UNIQUE_PAGE_ID`は、各ページ・ビューに固有なOracle順序から生成される整数です。この数値は、アプリケーションでの重複ページの送信を防止するために使用され、その他の用途にも使用できます。たとえば、一意のURLを作成してブラウザのキャッシュの問題を防止するために、この数値を、`f`プロシージャへのコール内のリクエスト列またはデバッグ列に埋め込むことができます。表2-21に、`APP_UNIQUE_PAGE_ID`を参照するためにサポートされている構文を示します。

表2-21 APP_UNIQUE_PAGE_ID構文

参照タイプ | 構文
--- | ---
バインド変数 | `:APP_UNIQUE_PAGE_ID`
PL/SQL | `V('APP_UNIQUE_PAGE_ID')`
置換文字列 | `&APP_UNIQUE_PAGE_ID`.

次に、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が一意になり、ブラウザによる過度のキャッシュの問題を回避できます。

### 2.9.4.19 APP_USER

`APP_USER`は、アプリケーションを実行しているカレント・ユーザーです。認証モデルに応じて、ユーザーの値の設定も異なります。アプリケーションがデータベース認証を使用して実行されている場合、ユーザーの値はデータベースの擬似列USERと同じになります。アプリケーションが、ユーザー認証を必要とする認証スキームを使用する場合、`APP_USER`の値はその認証スキームによって設定され、通常は、認証時に使用されるユーザー名に設定されます。表2-22に、`APP_USER`を参照するためにサポートされている構文を示します。

表2-22 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')

  Oracle Application Expressでは、着信リクエストの処理を開始するとき、`APEX$SESSION`コンテキストを設定します。たとえば、`'APP_USER'`の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーでカレント・アプリケーション・ユーザーにアクセスできます。

  関連項目:

  パブリック・ユーザー属性の詳細は、認証を参照してください。

### 2.9.4.20 AUTHENTICATED_URL_PREFIX

このアプリケーション・レベルの属性は、有効な認証済接頭辞(ログインしているURLの接頭辞)を示します。相対パスまたは`http`で始まるフルパスを使用できます。このアイテムは、アプリケーションが認証済(ログイン済)モードとパブリック(未ログイン)・モードの両方で実行可能な場合に有効です。`AUTHENTICATED_URL_PREFIX`を使用すると、認証済のページへのリンクを作成できます。このアイテムは、Basicデータベース認証の使用時に最も有効です。これは、URLの変更に認証が必要になる場合があるためです。表2-23に、`AUTHENTICATED_URL_PREFIX`を参照するためにサポートされている構文を示します。

表2-23 AUTHENTICATED_URL_PREFIX構文

参照タイプ | 構文
--- | ---
バインド変数 | `:AUTHENTICATED_URL_PREFIX`
PL/SQL | `V('AUTHENTICATED_URL_PREFIX')`
置換文字列 | `&AUTHENTICATED_URL_PREFIX.`

### 2.9.4.21 BROWSER_LANGUAGE

`BROWSER_LANGUAGE`は、Webブラウザの現行の言語プリファレンスを参照します。表2-24に、`BROWSER_LANGUAGE`を参照するためにサポートされている構文を示します。

表2-24 BROWSER_LANGUAGE構文

参照タイプ | 構文
--- | ---
バインド変数 | `:BROWSER_LANGUAGE`
直接PL/SQL | `APEX_APPLICATION.G_BROWSER_LANGUAGE`
PL/SQL | `V('BROWSER_LANGUAGE')`
置換文字列 | `&BROWSER_LANGUAGE.`

### 2.9.4.22 CURRENT_PARENT_TAB_TEXT

`CURRENT_PARENT_TAB_TEXT`は、ページ・テンプレートで最も有効です。ただし、この文字列は、2つのレベルのタブ(親タブと標準タブ)が使用されるアプリケーションでのみ使用できます。この文字列は、親タブ・ラベルの参照に使用します。この置換文字列を使用すると、現在選択されている親タブを、ページ・テンプレート内で繰り返すことができます。表2-25に、`CURRENT_PARENT_TAB_TEXT`を参照するためにサポートされている構文を示します。

表2-25 CURRENT_PARENT_TAB_TEXT構文

参照タイプ | 構文
--- | ---
バインド変数 | 使用不可
置換文字列 | `&CURRENT_PARENT_TAB_TEXT.`

### 2.9.4.23 DEBUG

`DEBUG`フラグの有効値はYesまたはNoです。デバッグを有効にすると、アプリケーション・プロセスの詳細が表示されます。カスタム・コードを記述する場合は、デバッグ・モードがYesに設定されている場合にのみデバッグ情報を生成できます。表2-26に、`DEBUG`を参照するためにサポートされている構文を示します。

表2-26 DEBUG構文

参照タイプ | 構文
--- | ---
バインド変数 | :`DEBUG`
直接PL/SQL | `APEX_APPLICATION.G_DEBUG`
PL/SQL | `V('DEBUG')`
置換文字列 | `&DEBUG`.

次に、`DEBUG`の現行の値を保持する置換文字列の参照の例を示します。

    f?p=100:1:&APP_SESSION.::&DEBUG

### 2.9.4.24 HOME_LINK

`HOME_LINK`は、アプリケーションのホームページです。ページが指定されておらず、かつ認証スキームのロジックによって代替ページが指定されていない場合、Application Expressエンジンによって、この場所にリダイレクトされます。ホームURLは、ユーザー・インタフェースの詳細ページで定義します。

表2-27に、HOME_LINKを参照するためにサポートされている構文を示します。

表2-27 HOME_LINK構文

参照タイプ | 構文
--- | ---
直接PL/SQL | `APEX_APPLICATION.G_HOME_LINK`
PL/SQL | `V('HOME_LINK')`
テンプレート参照 | `#HOME_LINK#`
置換文字列 | `&HOME_LINK.`

関連項目:

ホームURL属性の詳細は、アプリケーションのユーザー・インタフェースの管理およびユーザー・インタフェースの詳細ページを参照してください。

### 2.9.4.25 IMAGE_PREFIX

`IMAGE_PREFIX`の値によって、Oracle Application Expressによって配布されたイメージ・ディレクトリを指すためにWebサーバーが使用する仮想パスが決まります。アップロードされたイメージを参照する場合は、`WORKSPACE_IMAGES`および`APP_IMAGES`を使用します。表2-28に、`IMAGE_PREFIX`を参照するためにサポートされている構文を示します。

表2-28 IMAGE_PREFIX構文

参照タイプ | 構文
--- | ---
バインド変数 | `:IMAGE_PREFIX`
直接PL/SQL | `APEX_APPLICATION.G_IMAGE_PREFIX`
PL/SQL | `V('IMAGE_PREFIX')`
置換文字列 | `&IMAGE_PREFIX.`
テンプレート置換 | `#IMAGE_PREFIX#`

関連項目:

- 「APP_IMAGES」

- 「WORKSPACE_IMAGES」

- アプリケーション属性の編集

### 2.9.4.26 JET_BASE_DIRECTORY

`JET_BASE_DIRECTORY`置換文字列を使用して、Oracle Application Expressに付属のOracle JavaScript拡張機能ツールキット(JET)のベース・ディレクトリを参照します。`JET_BASE_DIRECTORY`を参照するためにサポートされている構文は、次のとおりです。

    #JET_BASE_DIRECTORY#

### 2.9.4.27 JET_CSS_DIRECTORY

`JET_CSS_DIRECTORY`置換文字列を使用して、Oracle Application Expressに付属のOracle JavaScript拡張機能ツールキット(JET)のベース・ディレクトリを参照します。`JET_CSS_DIRECTORY`を参照するためにサポートされている構文は、次のとおりです。

    #JET_CSS_DIRECTORY#

### 2.9.4.28 JET_JS_DIRECTORY

`JET_JS_DIRECTORY`置換文字列を使用して、Oracle Application Expressに付属のOracle JavaScript拡張機能ツールキット(JET)のコンポーネントのJavaScriptディレクトリを参照します。`JET_JS_DIRECTORY`を参照するためにサポートされている構文は、次のとおりです。

    #JET_JS_DIRECTORY#

### 2.9.4.29 LOGIN_URL

現在ログインしていないユーザー用のログイン・ページへのリンクを表示するには、`LOGIN_URL`を使用します。表2-29に、`LOGIN_URL`を参照するためにサポートされている構文を示します。

関連項目:

認証およびセキュリティ属性ページ

表2-29 LOGIN_URL構文

参照タイプ | 構文
--- | ---
バインド変数 | `:LOGIN_URL`
直接PL/SQL | `APEX_APPLICATION.G_LOGIN_URL`
PL/SQL | `V('LOGIN_URL')`
置換文字列 | `&LOGIN_URL.`
テンプレート置換 | `#LOGIN_URL#`

### 2.9.4.30 LOGOUT_URL

`LOGOUT_URL`はアプリケーション・レベルの属性であり、ログアウトURLの指定に使用されます。これは、ユーザーをログアウト・ページにナビゲートさせるか、またはオプションで直接ユーザーをログアウトさせるURLです。ログアウト・ナビゲーション・バー・エントリを作成するには、`&LOGOUT_URL`の最後にピリオドを追加します(`&LOGOUT_URL.`)。ページ・テンプレートをコーディングしている場合は、`#LOGOUT_URL#`を使用します。表2-30に、`LOGOUT_URL`を参照するためにサポートされている構文を示します。

表2-30 LOGOUT_URL構文

参照タイプ | 構文
--- | ---
バインド変数 | `:LOGOUT_URL`
PL/SQL | `V('LOGOUT_URL')`
置換文字列 | `&LOGOUT_URL.`
テンプレート置換 | `#LOGOUT_URL#`

### 2.9.4.31 PRINTER_FRIENDLY

`PRINTER_FRIENDLY`の値によって、Application Expressエンジンが印刷表示モードで実行するかどうかが決まります。この設定は、印刷されたドキュメントに不要な要素をページから排除するための条件で参照できます。表2-31に、`PRINTER_FRIENDLY`を参照するためにサポートされている構文を示します。

表2-31 PRINTER_FRIENDLY構文

参照タイプ | 構文
--- | ---
直接PL/SQL | `APEX_APPLICATION.G_PRINTER_FRIENDLY (VARCHAR2 DATATYPE)`
PL/SQL | `V('PRINTER_FRIENDLY')`
置換文字列 | `&PRINTER_FRIENDLY.`

### 2.9.4.32 PROXY_SERVER

`PROXY_SERVER`は、アプリケーション属性です。この属性は、ソースがURLであるリージョンによって使用される場合があります。次に、直接PL/SQL参照用の適切な構文を示します。この参照は、データベースからリモートWebサーバーにアクセスするためのPL/SQLを記述する場合に使用します(たとえば、データベースに付属する`utl_http`パッケージを使用する場合)。

    APEX_APPLICATION.G_PROXY_SERVER

### 2.9.4.33 PUBLIC_URL_PREFIX

`PUBLIC_URL_PREFIX`は、アプリケーション・レベルの属性であり、ログイン・モードをパブリック表示に切り替えるURLを指定します。表2-32に、`PUBLIC_URL_PREFIX`を参照するためにサポートされている構文を示します。

表2-32 PUBLIC_URL_PREFIX構文

参照タイプ | 構文
--- | ---
バインド変数 | `:PUBLIC_URL_PREFIX`
PL/SQL | `V('PUBLIC_URL_PREFIX')`
置換文字列 | `&PUBLIC_URL_PREFIX.`
テンプレート置換 | `#PUBLIC_URL_PREFIX#`

### 2.9.4.34 REQUEST

`REQUEST`の値は、各アプリケーション・ボタンによって、そのボタンの名前またはそのボタンに関連付けられているリクエスト値属性に設定され、これにより、受入れ処理が可能になり、ユーザーがボタンをクリックすると、そのボタンの名前を参照するようになります。`f?p`構文では、`REQUEST`は4つ目の引数を使用して設定できます。

`REQUEST`は、通常、受入れプロセス(ページのポスト時に発生するプロセス)中に参照されます。表2-33に、`REQUEST`を参照するためにサポートされている構文を示します。

表2-33 REQUEST構文

参照タイプ | 構文
--- | ---
バインド変数 | `:REQUEST`
直接PL/SQL | `APEX_APPLICATION.G_REQUEST`
PL/SQL | `V('REQUEST')`
置換文字列 | `&REQUEST.`

関連項目:

REQUESTの使用

### 2.9.4.35 REQUESTの使用

`REQUEST`は、通常、受入れプロセス(ページのポスト時に発生するプロセス)中に参照されます。この項では、REQUEST置換文字列の使用方法に関する追加情報について説明します。

トピック:

- ポストされたページのREQUESTの有効範囲および値について
- 「対象ボタン」属性について
- 宣言条件を使用したREQUESTの参照について
- 表示プロセスでのREQUESTの使用について
- BRANCH_TO_PAGE_ACCEPTの使用について

関連項目:

REQUEST

#### 2.9.4.35.1 ポストされたページのREQUESTの有効範囲および値について

ページをポストすると、受入れプロセスが起動されます。受入れプロセスは、計算、検証、プロセスおよびブランチで構成されています。`REQUEST`の値は、受入れプロセスの各フェーズで使用可能です。アプリケーションが別のページにブランチされると、`REQUEST`はNULLに設定されます。

`REQUEST`の値は、ユーザーがクリックするボタンの名前か、またはユーザーが選択するタブの名前です。たとえば、名前が`CHANGE`でラベルが`Apply Change`というボタンがあるとします。ユーザーがこのボタンをクリックすると、`REQUEST`の値が`CHANGE`になります。

#### 2.9.4.35.2 「対象ボタン」属性について

検証、プロセスおよびブランチには「対象ボタン」属性があります。この属性は、選択リストとして表示され、カレント・ページにあるボタン名を含みます。「対象ボタン」から選択した場合、ボタンの`REQUEST`値を検証、プロセスまたはブランチに関連付けます。

ページの送信にボタンを使用する場合、`REQUEST`値がページに渡されます。受入れプロセス・ロジックにより、「対象ボタン」属性を使用する各検証、プロセスおよびブランチが評価され、コンポーネントを実行(起動)するかどうかが決定されます。コンポーネントの1つが実行される場合、関連付けられたボタンをユーザーが実際にクリックしてページが送信されたとはみなさないでください。同じリクエスト値を使用する別のボタンがページを送信した可能性があります。同様に、ページのJavaScriptもページを送信してリクエスト値を渡します。

#### 2.9.4.35.3 宣言条件を使用したREQUESTの参照について

多くの開発者は、条件を使用して`REQUEST`を参照します。たとえば、ユーザーがレポート・ページ上の「実行」をクリックしたときにページ区切りをリセットする必要がある場合があります。ページ区切りは、送信時ページ・プロセスを作成してリセットできます。ページ・プロセスには、条件「リクエスト=式1」を使用して条件を付けることができます。``

送信時ページ・プロセスに条件を設定するには、次のステップを実行します。

1. 「条件」で、条件タイプ「リクエスト=式1」を選択します。

2. 式1で「実行」を実行します。

#### 2.9.4.35.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ツールキット・パッケージへのコールであることに注意してください。

関連項目:

Oracle Database開発ガイド

#### 2.9.4.35.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リクエストでページを送信するボタンをクリックすることと同じです。

### 2.9.4.36 SCHEMA OWNER

PL/SQLコードからアプリケーションへのコールを生成する場合、Oracle Application Expressスキーマの所有者を参照する必要があります。次に、直接PL/SQLの参照用の適切な構文を示します。

    APEX_APPLICATION.G_FLOW_SCHEMA_OWNER

また、`#FLOW_OWNER#`を使用してSQL問合せおよびPL/SQL(リージョンやプロセスなど)でこの値を参照することもできます。

### 2.9.4.37 SQLERRM

`SQLERRM`は、アプリケーション・リージョン・エラー・メッセージでのみ使用可能なテンプレート置換です。リージョン・テンプレート置換を参照するためにサポートされている構文は、次のとおりです。

    #SQLERRM#

### 2.9.4.38 SYSDATE_YYYYMMDD

`SYSDATE_YYYYMMDD`は、データベース・サーバーの現在の日付に`YYYYMMDD`書式マスクを適用して表示します。この値を、`SYSDATE()`ファンクションを繰り返しコールするかわりに使用できます。次のリストに、`SYSDATE_YYYYMMDD`を参照するためにサポートされている構文を示します。

- バインド変数

      :SYSDATE_YYYYMMDD

- PL/SQL

      V('SYSDATE_YYYYMMDD')

- 直接PL/SQL

      APEX_APPLICATION.G_SYSDATE (DATE DATATYPE)

表2-34 SYSDATE_YYYYMMDD構文

参照タイプ | 構文
--- | ---
バインド変数 | `:SYSDATE_YYYYMMDD`
直接PL/SQL | `APEX_APPLICATION.G_SYSDATE (DATE DATATYPE)`
PL/SQL | `V('SYSDATE_YYYYMMDD')`

### 2.9.4.39 THEME_DB_IMAGES

テーマの「ファイルの接頭辞」設定に関係なく、データベースにテーマ定義とともに格納されているファイルを常に参照するには、`THEME_DB_IMAGES`置換文字列を使用します。テンプレート置換のためにサポートされている構文は、次のとおりです。

    #THEME_DB_IMAGES#

### 2.9.4.40 THEME_IMAGES

テーマ定義とともに格納されているファイルを参照するには、`THEME_IMAGES`置換文字列を使用します。テンプレート置換のためにサポートされている構文は、次のとおりです。

    #THEME_IMAGES#

### 2.9.4.41 WORKSPACE_IMAGES

この置換文字列を使用して、ワークスペース内の複数のアプリケーションで共有されているアップロードされたイメージ、JavaScriptおよびカスケード・スタイルシートを参照します。表2-35に、`WORKSPACE_IMAGES`を参照するためにサポートされている構文を示します。

表2-35 WORKSPACE_IMAGES構文

参照タイプ | 構文
--- | ---
バインド変数 | `:WORKSPACE_IMAGES`
直接PL/SQL | 使用不可
PL/SQL | `V('WORKSPACE_IMAGES')`
置換文字列 | `&WORKSPACE_IMAGES.`
テンプレート置換 | `#WORKSPACE_IMAGES#`

関連項目:

APP_IMAGESおよびIMAGE_PREFIX

### 2.9.4.42 WORKSPACE_ID

ワークスペースIDを参照するには、この置換文字列を使用します。表2-36に、`WORKSPACE_ID`を参照するためにサポートされている構文を示します。

表2-36 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')

  Oracle Application Expressでは、着信リクエストの処理を開始するとき、`APEX$SESSION`コンテキストを設定します。たとえば、`'WORKSPACE_ID'`の値を使用して、問合せおよび表データを保護するVPD (仮想プライベート・データベース)セキュリティ・ポリシーで現在のワークスペースID値にアクセスできます。