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

前
 
次
 

21 APEX_UTIL

APEX_UTILパッケージは、Oracle Application Express環境でプログラミングする際に使用可能なユーティリティを提供します。APEX_UTILパッケージを使用すると、セッション・ステートの取得と設定、ファイルの取得、ユーザーの認可の確認、ユーザーへの別のステートの再設定、キャッシュ情報の取得とパージおよびユーザーのプリファレンスの取得と設定を行うことができます。

トピック:

CACHE_GET_DATE_OF_PAGE_CACHEファンクション

このファンクションは、ページがユーザーにキャッシュされるように設定されていない場合、指定したアプリケーション・ページがコールを発行したユーザーまたはすべてのユーザーのいずれかに対してキャッシュされた時間および日付を戻します。

構文

APEX_UTIL.CACHE_GET_DATE_OF_PAGE_CACHE (
    p_application  IN    NUMBER,
    p_page         IN    NUMBER)
RETURN DATE;

パラメータ

表21-1に、CACHE_GET_DATE_OF_PAGE_CACHEファンクションで使用可能なパラメータを示します。

表21-1 CACHE_GET_DATE_OF_PAGE_CACHEのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)

p_page

ページ番号(ID)


次の例に、CACHE_GET_DATE_OF_PAGE_CACHEファンクションを使用して、現在実行されているアプリケーションのページ9のキャッシュ日時を取得する方法を示します。ページ9がキャッシュされている場合は、HTPパッケージを使用してそのキャッシュ日時が出力されます。このページは、コールを発行したユーザーがキャッシュしなかった場合、そのユーザーまたはすべてのユーザーのいずれかに対してキャッシュされた可能性があります。

DECLARE
    l_cache_date DATE DEFAULT NULL;
BEGIN
    l_cache_date := APEX_UTIL.CACHE_GET_DATE_OF_PAGE_CACHE(
                        p_application => :APP_ID,
                        p_page => 9);
    IF l_cache_date IS NOT NULL THEN
        HTP.P('Cached on ' || TO_CHAR(l_cache_date, 'DD-MON-YY HH24:MI:SS'));
    END IF;
END;

CACHE_GET_DATE_OF_REGION_CACHEファンクション

このファンクションは、ページがユーザーにキャッシュされるように設定されていない場合、指定したリージョンがコールを発行したユーザーまたはすべてのユーザーのいずれかに対してキャッシュされた日付および時間を戻します。

構文

APEX_UTIL.CACHE_GET_DATE_OF_REGION_CACHE (
    p_application  IN    NUMBER,
    p_page         IN    NUMBER,
    p_region_name  IN    VARCHAR2)
RETURN DATE;

パラメータ

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

表21-2 CACHE_GET_DATE_OF_REGION_CACHEのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)

p_page

ページ番号(ID)

p_region_name

リージョン名


次の例に、CACHE_GET_DATE_OF_REGION_CACHEファンクションを使用して、現在実行されているアプリケーションのページ13のCached Regionというリージョンのキャッシュ日時を取得する方法を示します。このリージョンがキャッシュされている場合は、HTPパッケージを使用してそのキャッシュ日時が出力されます。このリージョンは、コールを発行したユーザーがページをキャッシュしなかった場合、そのユーザーまたはすべてのユーザーのいずれかに対してキャッシュされた可能性があります。

DECLARE
    l_cache_date DATE DEFAULT NULL;
BEGIN
    l_cache_date := APEX_UTIL.CACHE_GET_DATE_OF_REGION_CACHE(
        p_application => :APP_ID,
        p_page => 13,
        p_region_name => 'Cached Region');
    IF l_cache_date IS NOT NULL THEN
        HTP.P('Cached on ' || TO_CHAR(l_cache_date, 'DD-MON-YY HH24:MI:SS'));
    END IF;
END;

CACHE_PURGE_BY_APPLICATIONプロシージャ

このプロシージャは、特定のアプリケーションのすべてのキャッシュされたページおよびリージョンを削除します。

構文

APEX_UTIL.CACHE_PURGE_BY_APPLICATION (
    p_application  IN  NUMBER);

パラメータ

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

表21-3 CACHE_PURGE_BY_APPLICATIONのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)


次の例に、CACHE_PURGE_BY_APPLICATIONプロシージャを使用して、現在実行されているアプリケーションに対してキャッシュされているすべてのページおよびリージョンをパージする方法を示します。

BEGIN
    APEX_UTIL.CACHE_PURGE_BY_APPLICATION(p_application => :APP_ID);
END;

CACHE_PURGE_BY_PAGEプロシージャ

このプロシージャは、特定のアプリケーションおよびページのキャッシュをパージします。ページ自体がキャッシュされていなくても、ページに1つ以上のキャッシュされたリージョンが含まれている場合は、それらのキャッシュもパージされます。

構文

APEX_UTIL.CACHE_PURGE_BY_PAGE (
    p_application  IN    NUMBER,
    p_page         IN    NUMBER,
    p_user_name    IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-4 CACHE_PURGE_BY_PAGEのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)

p_page

ページ番号(ID)

p_user_name

キャッシュされたページおよびリージョンと関連付けられたユーザー


次の例に、CACHE_PURGE_BY_PAGEプロシージャを使用して、現在実行されているアプリケーションのページ9のキャッシュをパージする方法を示します。また、p_user_nameパラメータを指定すると、このプロシージャは特定のユーザーのキャッシュによって制限されます(キャッシュがユーザーごとに設定されている場合にのみ当てはまります)。

BEGIN
    APEX_UTIL.CACHE_PURGE_BY_PAGE(
        p_application => :APP_ID,
        p_page => 9);
END;

CACHE_PURGE_STALEプロシージャ

このプロシージャは、定義済のアクティブな期間を渡した指定したアプリケーションに対してキャッシュされたページおよびリージョンすべてを削除します。ページまたはリージョンをキャッシュする際、アクティブな期間(または「キャッシュ・タイムアウト」)を指定します。一度期間が経過するとキャッシュは使用されなくなるため、キャッシュから使用できないページまたはリージョンを削除します。

構文

APEX_UTIL.CACHE_PURGE_STALE (
    p_application  IN    NUMBER);

パラメータ

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

表21-5 CACHE_PURGE_STALEのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)


次の例に、CACHE_PURGE_STALEプロシージャを使用して、現在実行されているアプリケーションのすべての失効ページおよび失効リージョンをパージする方法を示します。

BEGIN
    APEX_UTIL.CACHE_PURGE_STALE(p_application => :APP_ID);
END;

CHANGE_CURRENT_USER_PWプロシージャ

このプロシージャは、Application Expressユーザー・アカウントが使用中であることを前提として、現在認証されているユーザーのパスワードを変更します。

構文

APEX_UTIL.CHANGE_CURRENT_USER_PW(
    p_new_password IN VARCHAR2);

パラメータ

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

表21-6 CHANGE_CURRENT_USER_PWのパラメータ

パラメータ 説明

p_new_password

クリア・テキストでの新しいパスワード値


次の例に、CHANGE_CURRENT_USER_PWプロシージャを使用して、現在認証されているユーザーのパスワードを変更する方法を示します。この例では、Application Expressアカウントが使用されていることを前提としています。

BEGIN
    APEX_UTIL.CHANGE_CURRENT_USER_PW ('secret99');
END;

CHANGE_PASSWORD_ON_FIRST_USEファンクション

このプロパティがエンド・ユーザー・アカウントに対して有効か無効かを、管理者がチェックできるようにします。このファンクションは、パスワードが初期設定されてユーザーの編集ページの「管理サービス」で変更された後に、アカウント・パスワードを初回使用時に変更する必要がある場合(認証成功後)、TRUEを戻します。アカウントにこのプロパティが含まれていない場合は、FALSEを戻します。

このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.CHANGE_PASSWORD_ON_FIRST_USE (
    p_user_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表21-7に、CHANGE_PASSWORD_ON_FIRST_USEファンクションで使用可能なパラメータを示します。

表21-7 CHANGE_PASSWORD_ON_FIRST_USEのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、CHANGE_PASSWORD_ON_FIRST_USEファンクションを使用する方法を示します。このファンクションを使用して、現行のワークスペースにおけるApplication Expressのユーザー・アカウント(ワークスペース管理者、開発者またはエンド・ユーザー)のパスワードが、ユーザーが初めて使用する場合に変更される必要があるかどうかをチェックします。

BEGIN
    FOR c1 IN (SELECT user_name FROM wwv_flow_users) LOOP
        IF APEX_UTIL.CHANGE_PASSWORD_ON_FIRST_USE(p_user_name => c1.user_name) THEN
            htp.p('User:'||c1.user_name||' requires password to be changed the first time it is used.');
        END IF;
    END LOOP;
END;

CLEAR_APP_CACHEプロシージャ

このプロシージャは、カレント・セッションに指定したアプリケーションのセッション・ステートを削除します。

構文

APEX_UTIL.CLEAR_APP_CACHE (
    p_app_id    IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-8 CLEAR_APP_CACHEのパラメータ

パラメータ 説明

p_app_id

セッション・ステートをクリアするカレント・セッションのアプリケーションのID


次の例に、CLEAR_APP_CACHEプロシージャを使用して、IDが100のアプリケーションのすべてのカレント・セッションのステートをクリアする方法を示します。

BEGIN
    APEX_UTIL.CLEAR_APP_CACHE('100');
END;

CLEAR_PAGE_CACHEプロシージャ

このプロシージャは、カレント・セッションに指定したページのセッション・ステートを削除します。

構文

APEX_UTIL.CLEAR_PAGE_CACHE (
    p_page IN NUMBER DEFAULT NULL);

パラメータ

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

表21-9 CLEAR_PAGE_CACHEのパラメータ

パラメータ 説明

p_page

セッション・ステートをクリアするカレント・セッションのカレント・アプリケーションでのページのID。


次の例に、CLEAR_PAGE_CACHEプロシージャを使用して、IDが10のページのカレント・セッションのステートをクリアする方法を示します。

BEGIN
    APEX_UTIL.CLEAR_PAGE_CACHE('10');
END;

CLEAR_USER_CACHEプロシージャ

このプロシージャは、カレント・ユーザー・セッションのセッション・ステートおよびアプリケーション・システムのプリファレンスを削除します。セッションIDを再利用し、既存のセッション・ステートを使用せずにアプリケーションを実行する場合にこのプロシージャを実行します。

構文

APEX_UTIL.CLEAR_USER_CACHE;

パラメータ

なし。

次の例に、CLEAR_USER_CACHEプロシージャを使用して、カレント・ユーザーのセッションのすべてのセッション・ステートおよびアプリケーション・システムのプリファレンスをクリアする方法を示します。

BEGIN
    APEX_UTIL.CLEAR_USER_CACHE;
END;

COUNT_CLICKプロシージャ

このプロシージャは、アプリケーション・ビルダーに組み込まれたアプリケーションから外部サイトへのクリックをカウントします。また、APEX_UTIL.COUNT_CLICKのかわりに、短縮版のプロシージャZを使用できます。

構文

APEX_UTIL.COUNT_CLICK (
    p_url         IN    VARCHAR2,
    p_cat         IN    VARCHAR2,
    p_id          IN    VARCHAR2    DEFAULT NULL,
    p_user        IN    VARCHAR2    DEFAULT NULL,
    p_workspace   IN    VARCHAR2    DEFAULT NULL);

パラメータ

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

表21-10 COUNT_CLICKのパラメータ

パラメータ 説明

p_url

リダイレクト先のURL

p_cat

クリックを分類するためのカテゴリ

p_id

クリックに関連付けられたセカンダリID (オプション)

p_user

アプリケーション・ユーザーID (オプション)

p_workspace

アプリケーションに関連付けられたワークスペース(オプション)


次の例に、COUNT_CLICKプロシージャを使用して、指定したhttp://yahoo.comリンクをユーザーがクリックした回数を記録する方法を示します。この情報は、記録後、APEX_WORKSPACE_CLICKSビューおよびワークスペース管理者とサイト管理者が使用可能なこのビューに対するレポートに表示できます。

DECLARE
    l_url VARCHAR2(255);
    l_cat VARCHAR2(30);
    l_workspace_id VARCHAR2(30);
BEGIN
    l_url := 'http://yahoo.com';
    l_cat := 'yahoo';
    l_workspace_id := TO_CHAR(APEX_UTIL.FIND_SECURITY_GROUP_ID('MY_WORKSPACE'));
 
    HTP.P('<a href=APEX_UTIL.COUNT_CLICK?p_url=' || l_url || '&p_cat=' || l_cat || '&p_workspace=' || l_workspace_id || '>Click</a>');
END;

参照:

このドキュメントの「FIND_SECURITY_GROUP_IDファンクション」『Oracle Application Express管理ガイド』の外部クリック・カウント・ログのパージに関する説明、『Oracle Application Express管理ガイド』の認可済URLの定義に関する説明

CREATE_USERプロシージャ

このプロシージャは、Application Expressユーザー・アカウント表に新しいアカウント・レコードを作成します。このプロシージャを実行するには、カレント・ユーザーに管理権限が必要です。

構文

APEX_UTIL.CREATE_USER(
    p_user_id                       IN      NUMBER      DEFAULT NULL,
    p_user_name                     IN      VARCHAR2,
    p_first_name                    IN      VARCHAR2    DEFAULT NULL,
    p_last_name                     IN      VARCHAR2    DEFAULT NULL,
    p_description                   IN      VARCHAR2    DEFAULT NULL,
    p_email_address                 IN      VARCHAR2    DEFAULT NULL,
    p_web_password                  IN      VARCHAR2,
    p_web_password_format           IN      VARCHAR2    DEFAULT 'CLEAR_TEXT',
    p_group_ids                     IN      VARCHAR2    DEFAULT NULL,
    p_developer_privs               IN      VARCHAR2    DEFAULT NULL,
    p_default_schema                IN      VARCHAR2    DEFAULT NULL,
    p_allow_access_to_schemas       IN      VARCHAR2    DEFAULT NULL,
    p_account_expiry                IN      DATE        DEFAULT TRUNC(SYSDATE),
    p_account_locked                IN      VARCHAR2    DEFAULT 'N',
    p_failed_access_attempts        IN      NUMBER      DEFAULT 0,
    p_change_password_on_first_use  IN      VARCHAR2    DEFAULT 'Y',
    p_first_password_use_occurred   IN      VARCHAR2    DEFAULT 'N',
    p_attribute_01                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_02                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_03                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_04                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_05                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_06                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_07                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_08                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_09                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_10                  IN      VARCHAR2    DEFAULT NULL,
    p_allow_app_building_yn         IN      VARCHAR2    DEFAULT NULL,
    p_allow_sql_workshop_yn         IN      VARCHAR2    DEFAULT NULL,
    p_allow_websheet_dev_yn         IN      VARCHAR2    DEFAULT NULL,
    p_allow_team_development_yn     IN      VARCHAR2    DEFAULT NULL);

パラメータ

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

表21-11 CREATE_USERプロシージャのパラメータ

パラメータ 説明

p_user_id

ユーザー・アカウントの数値の主キー

p_user_name

ログインに使用する英数字の名前

p_first_name

情報

p_last_name

情報

p_description

情報

p_email_address

電子メール・アドレス

p_web_password

クリア・テキストのパスワード

p_web_password_format

p_web_passwordパラメータに渡す値がクリア・テキスト形式の場合は、CLEAR_TEXTを使用します。そうでない場合は、HEX_ENCODED_DIGEST_V2を使用します。

p_group_ids

コロンで区切られた数値のグループIDのリスト

p_developer_privs

権限のコロン区切りリスト。p_developer_privsがnullでない場合、ユーザーにはチーム開発へのアクセス権が付与されます。p_developer_privsにADMINが含まれる場合、ユーザーにはアプリケーション・ビルダーとSQLワークショップへの権限が付与されます。p_developer_privsにADMINではなくEDITが含まれる場合、ユーザーにはアプリケーション・ビルダーへの権限が付与されます。p_developer_privsにADMINではなくSQLが含まれる場合、ユーザーにはSQLワークショップへの権限が付与されます。このパラメータで使用可能な値は、次のとおりです。

null: エンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)を作成する場合。

CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL - アプリケーション・ビルダーおよびSQLワークショップへのアクセス権を含む開発者権限を持つユーザーを作成する場合。

ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL - アプリケーション・ビルダー、SQLワークショップおよびチーム開発へのアクセス権を含む、ワークスペース管理者および開発者の完全な権限を持つユーザーを作成する場合。

注意: 現在このパラメータの名前は一貫しておらず、CREATE_USEREDIT_USERおよびFETCH_USER APIと呼ばれています。ただし、これらのすべての名前が、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privsEDIT_USERではp_developer_rolesFETCH_USERではp_developer_roleが使用されます。

p_default_schema

ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。

p_allow_access_to_schemas

ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのコロンで区切られたリスト(すべての場合はNULLのまま)。

p_account_expiry

パスワードが最後に更新された日(作成時に、今日の日付にデフォルト設定されます)。

p_account_locked

アカウントがロックされているかどうかを示す'Y'または'N'。

p_failed_access_attempts

ログインに連続して失敗した回数。作成時に、0 (ゼロ)にデフォルト設定されます。

p_change_password_on_first_use

パスワードを初めて使用するときに変更する必要があるかどうかを示す'Y'または'N'。作成時に、'Y'にデフォルト設定されます。

p_first_password_use_occurred

パスワードの変更後にログインが行われたかどうかを'Y'または'N'で示します。作成時に、'N'にデフォルト設定されます。

p_attribute_01

...

p_attribute_10

APIを使用してアクセスできる任意のテキスト

p_allow_app_building_yn

アプリケーション・ビルダーへのアクセスが許可されるかどうかを'Y'または'N'で示します。

p_allow_sql_workshop_yn

SQLワークショップへのアクセスが許可されるかどうかを'Y'または'N'で示します。

p_allow_websheet_dev_yn

Webシート開発へのアクセスが許可されるかどうかを'Y'または'N'で示します。

p_allow_team_development_yn

チーム開発へのアクセスが許可されるかどうかを'Y'または'N'で示します。


例1

次の簡単な例では、パスワードがsecret99のNEWUSER1というエンド・ユーザーを作成します。エンド・ユーザーは、開発済アプリケーションに対してのみ認証できることに注意してください。

BEGIN
    APEX_UTIL.CREATE_USER(
        p_user_name    => 'NEWUSER1',
        p_web_password => 'secret99');
END;

例2

次の例では、NEWUSER2というワークスペース管理者を作成します。ユーザーNEWUSER2は次のように設定されています。

BEGIN
    APEX_UTIL.CREATE_USER(
        p_user_name                     => 'NEWUSER2',
        p_first_name                    => 'FRANK',
        p_last_name                     => 'SMITH',
        p_description                   => 'Description...',
        p_email_address                 => 'frank@smith.com',
        p_web_password                  => 'password',
        p_developer_privs               => 'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL',
        p_default_schema                => 'MY_SCHEMA',
        p_allow_access_to_schemas       => 'MY_SCHEMA2',
        p_change_password_on_first_use  => 'N',
        p_attribute_01                  => '123 456 7890');
END;

CREATE_USER_GROUPプロシージャ

Application Express認証を使用している場合、このプロシージャによりユーザー・グループを作成できます。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.CREATE_USER_GROUP(
    p_id                       IN                   NUMBER,
    p_group_name               IN                   VARCHAR2,
    p_security_group_id        IN                   NUMBER,
    p_group_desc               IN                   VARCHAR2);

パラメータ

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

表21-12 CREATE_USER_GROUPのパラメータ

パラメータ 説明

p_id

グループの主キー

p_group_name

グループの名前

p_security_group_id

ワークスペースID

p_group_desc

説明テキスト


次の例に、CREATE_USER_GROUPプロシージャを使用して、説明に'text'を指定して'Managers'という新しいグループを作成する方法を示します。p_idパラメータにNULLを渡して、データベース・トリガーで新しい主キー値を割り当てることができるようにします。p_security_group_idパラメータにNULLを渡して、現行のワークスペースIDにデフォルト設定します。

BEGIN
    APEX_UTIL.CREATE_USER_GROUP (
        p_id                => null,         -- trigger assigns PK
        p_group_name        => 'Managers',
        p_security_group_id => null,         -- defaults to current workspace ID
        p_group_desc        => 'text');
END;

CURRENT_USER_IN_GROUPファンクション

このファンクションは、カレント・ユーザーが指定したグループのメンバーかどうかに基づいてブール結果を戻します。グループの指定には、グループ名またはグループIDを使用できます。

構文

APEX_UTIL.CURRENT_USER_IN_GROUP(
    p_group_name    IN VARCHAR2)
RETURN BOOLEAN;

APEX_UTIL.CURRENT_USER_IN_GROUP(
    p_group_id    IN NUMBER)
RETURN BOOLEAN;

パラメータ

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

表21-13 CURRENT_USER_IN_GROUPのパラメータ

パラメータ 説明

p_group_name

ワークスペース内の既存グループの名前を指定します。

p_group_id

ワークスペース内の既存グループの数値のIDを指定します。


次の例に、CURRENT_USER_IN_GROUPファンクションを使用して、現在認証されているユーザーがグループManagersに属しているかどうかを確認する方法を示します。

DECLARE 
    VAL BOOLEAN;
BEGIN
    VAL := APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'Managers');
END;

CUSTOM_CALENDARプロシージャ

このプロシージャは、既存のカレンダ・ビューをカスタム・カレンダに変更します。

構文

APEX_UTIL.CUSTOM_CALENDAR(
    p_date_type_field IN VARCHAR2);

パラメータ

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

表21-14 CUSTOM_CALENDARパラメータ

パラメータ 説明

p_date_type_field

表示するカレンダのタイプを定義するためのアイテム名を指定します。


例1

次の例では、非表示のカレンダ・タイプ・フィールドを基にカスタム・カレンダを定義します。次の例では、カレンダはページ9で作成されると想定し、P9_CALENDAR_TYPEという列を非表示にします。

APEX_UTIL.CUSTOM_CALENDAR(
    'P9_CALENDAR_TYPE');

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

Application Express認証を使用している場合、このプロシージャは、グループの主キーを提供するとユーザー・グループを削除します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.DELETE_USER_GROUP(
    p_group_id IN NUMBER);

パラメータ

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

表21-15 DELETE_USER_GROUPプロシージャのシグネチャ1のパラメータ

パラメータ 説明

p_group_id

グループの主キー


次の例では、ユーザー・グループの主キーを提供して、「Managers」というユーザー・グループを削除する場合の、DELETE_USER_GROUPプロシージャのシグネチャ1の使用方法を示しています。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.GET_GROUP_ID (
        p_group_name => 'Managers');
    APEX_UTIL.DELETE_USER_GROUP (
        p_group_id => VAL);
END;

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

Application Express認証を使用している場合、このプロシージャは、グループ名の主キーを提供するとユーザー・グループを削除します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.DELETE_USER_GROUP(
    p_group_name IN VARCHAR2);

パラメータ

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

表21-16 DELETE_USER_GROUPプロシージャのシグネチャ2のパラメータ

パラメータ 説明

p_group_name

グループの名前


次の例では、ユーザー・グループ名の主キーを提供して、「Managers」というユーザー・グループを削除する場合の、DELETE_USER_GROUPプロシージャのシグネチャ2の使用方法を示しています。

BEGIN
    APEX_UTIL.DELETE_USER_GROUP (
        p_group_name => 'Managers');
END;

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

このプロシージャは、XMLベースのレポート・データ(BLOBとして)、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、印刷用ドキュメントのダウンロードを開始します。

構文

APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
    p_file_name           IN VARCHAR,
    p_content_disposition IN VARCHAR,
    p_report_data         IN BLOB,
    p_report_layout       IN CLOB,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default null);

パラメータ

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

表21-17 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ 説明

p_file_name

印刷用ドキュメントのファイル名を定義します

p_content_disposition

印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline")

p_report_data

XMLベースのレポート・データ

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。



参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」

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

このプロシージャは、事前定義されたレポート問合せと、RTFベースおよびXSL-FOベースのレポート・レイアウトを使用して、印刷用ドキュメントのダウンロードを開始します。

構文

APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
    p_file_name           IN VARCHAR,
    p_content_disposition IN VARCHAR,
    p_application_id      IN NUMBER,
    p_report_query_name   IN VARCHAR2,
    p_report_layout       IN CLOB,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default null);

パラメータ

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

表21-18 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ 説明

p_file_name

印刷用ドキュメントのファイル名を定義します

p_content_disposition

印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline")

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。


シグネチャ2の例

次の例に、シグネチャ2 (事前定義されたレポート問合せおよびRTFベースまたはXSL-FOベースのレポート・レイアウト)を使用してDOWNLOAD_PRINT_DOCUMENTを使用する方法を示します。この例では、レポートのデータはカレント・アプリケーションの「共有コンポーネント」→「レポート問合せ」に格納されているReportQueryAndXSLと呼ばれるレポート問合せから取得されます。レポート・レイアウトにはページ・アイテム(P1_XSL)に格納されている値が適用されます。

BEGIN
    APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
        p_file_name           => 'mydocument',
        p_content_disposition => 'attachment',
        p_application_id      => :APP_ID,
        p_report_query_name   => 'ReportQueryAndXSL',
        p_report_layout       => :P1_XSL,
        p_report_layout_type  => 'xsl-fo',
        p_document_format     => 'pdf');
END;

参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」

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

このプロシージャは、事前定義されたレポート問合せおよび事前定義されたレポート・レイアウトを使用して、印刷用ドキュメントのダウンロードを開始します。

構文

APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
    p_file_name           IN VARCHAR,
    p_content_disposition IN VARCHAR,
    p_application_id      IN NUMBER,
    p_report_query_name   IN VARCHAR2,
    p_report_layout_name  IN VARCHAR2,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default null);

パラメータ

表21-19に、DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ3で使用可能なパラメータを示します。

表21-19 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ 説明

p_file_name

印刷用ドキュメントのファイル名を定義します

p_content_disposition

印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline")

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_name

レポート・レイアウトの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。


シグネチャ3の例

次の例に、シグネチャ3 (事前定義されたレポート問合せおよび事前定義されたレポート・レイアウト)を使用してDOWNLOAD_PRINT_DOCUMENTを使用する方法を示します。この例では、レポートのデータはカレント・アプリケーションの「共有コンポーネント」→「レポート問合せ」に格納されているReportQueryというレポート問合せから取得されます。レポート・レイアウトには、カレント・アプリケーションの「共有コンポーネント」→「レポート・レイアウト」に格納されているReportLayoutというレポート・レイアウトが適用されます。動的レイアウトをプロビジョニングする場合、p_report_layout_nameパラメータに'ReportLayout'を指定するのではなく、保存された複数のレポート・レイアウトのいずれかを選択できるページ・アイテムをユーザーが参照できるとよい場合があります。また、この例では、P1_CONTENT_DISPの値をp_content_dispositionパラメータに渡すことによって、ユーザーがドキュメントの受信方法(添付ファイルまたはインライン)を指定する方法も示します。P1_CONTENT_DISPは、次のLOV定義が指定されたSelect Listタイプのページ・アイテムです。

STATIC2:In Browser;inline,Save / Open in separate Window;attachment

BEGIN
    APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
        p_file_name           => 'myreport123',
        p_content_disposition => :P1_CONTENT_DISP,
        p_application_id      => :APP_ID,
        p_report_query_name   => 'ReportQuery',
        p_report_layout_name  => 'ReportLayout',
        p_report_layout_type  => 'rtf',
        p_document_format     => 'pdf');
END;

参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」

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

このプロシージャは、XMLベースのレポート・データ(CLOBとして)、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、印刷用ドキュメントのダウンロードを開始します。

構文

APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
    p_file_name           IN VARCHAR,
    p_content_disposition IN VARCHAR,
    p_report_data         IN CLOB,
    p_report_layout       IN CLOB,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default null);

パラメータ

表21-19に、DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ4で使用可能なパラメータを示します。

表21-20 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ 説明

p_file_name

印刷用ドキュメントのファイル名を定義します

p_content_disposition

印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline")

p_report_data

XMLベースのレポート・データ(UTF-8でエンコードされている必要があります)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。


シグネチャ4の例

次の例に、シグネチャ4 (XMLベースのレポート・データ(CLOB)およびRTFベースまたはXSL-FOベースのレポート・レイアウト)を使用してDOWNLOAD_PRINT_DOCUMENTを使用する方法を示します。この例では、ページ・アイテムに格納されている値がレポート・データ(XML)およびレポート・レイアウト(XSL-FO)に適用されます。

BEGIN
    APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (
        p_file_name           => 'mydocument',
        p_content_disposition => 'attachment',
        p_report_data         => :P1_XML,
        p_report_layout       => :P1_XSL,
        p_report_layout_type  => 'xsl-fo',
        p_document_format     => 'pdf');
END;

参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」

EDIT_USERプロシージャ

このプロシージャを使用すると、ユーザー・アカウント・レコードを変更できます。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.EDIT_USER (
    p_user_id                      IN                   NUMBER,
    p_user_name                    IN                   VARCHAR2,
    p_first_name                   IN                   VARCHAR2    DEFAULT NULL,
    p_last_name                    IN                   VARCHAR2    DEFAULT NULL,
    p_web_password                 IN                   VARCHAR2    DEFAULT NULL,
    p_new_password                 IN                   VARCHAR2    DEFAULT NULL,
    p_email_address                IN                   VARCHAR2    DEFAULT NULL,
    p_start_date                   IN                   VARCHAR2    DEFAULT NULL,
    p_end_date                     IN                   VARCHAR2    DEFAULT NULL,
    p_employee_id                  IN                   VARCHAR2    DEFAULT NULL,
    p_allow_access_to_schemas      IN                   VARCHAR2    DEFAULT NULL,
    p_person_type                  IN                   VARCHAR2    DEFAULT NULL,
    p_default_schema               IN                   VARCHAR2    DEFAULT NULL,
    p_group_ids                    IN                   VARCHAR2    DEFAULT NULL,
    p_developer_roles              IN                   VARCHAR2    DEFAULT NULL,
    p_description                  IN                   VARCHAR2    DEFAULT NULL,
    p_account_expiry               IN                   DATE        DEFAULT NULL,
    p_account_locked               IN                   VARCHAR2    DEFAULT 'N',
    p_failed_access_attempts       IN                   NUMBER      DEFAULT 0,
    p_change_password_on_first_use IN                   VARCHAR2    DEFAULT 'Y',
    p_first_password_use_occurred  IN                   VARCHAR2    DEFAULT 'N');

パラメータ

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

表21-21 EDIT_USERのパラメータ

パラメータ 説明

p_user_id

ユーザー・アカウントの数値の主キー

p_user_name

ログインに使用する英数字の名前

参照: 「SET_USERNAMEプロシージャ」

p_first_name

情報

参照: 「SET_FIRST_NAMEプロシージャ」

p_last_name

情報

参照: 「SET_LAST_NAMEプロシージャ」

p_web_password

クリア・テキストのパスワード。このプロシージャを使用してユーザーのパスワードを更新する場合は、p_web_passwordおよびp_new_passwordの両方の値がNULLでなく、同一である必要があります。

p_new_password

クリア・テキストの新しいパスワード。このプロシージャを使用してユーザーのパスワードを更新する場合は、p_web_passwordおよびp_new_passwordの両方の値がNULLでなく、同一である必要があります。

p_email_address

情報

参照: 「SET_EMAILプロシージャ」

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト

p_person_type

未使用

p_default_schema

ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ

p_group_ids

コロンで区切られた数値のグループIDのリスト

p_developer_roles

コロンで区切られた開発者権限のリスト。このパラメータで使用可能な値は、次のとおりです。

null: ユーザーをエンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)に更新する場合

CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: 開発者権限を持つようにユーザーを更新する場合

ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: ワークスペース管理者および開発者の完全な権限を持つようにユーザーを更新する場合

注意: 現在このパラメータの名前は一貫しておらず、CREATE_USER、EDIT_USERおよびFETCH_USER APIと呼ばれています。ただし、これらのすべての名前が、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privs、EDIT_USERではp_developer_roles、FETCH_USERではp_developer_roleが使用されます。

参照: 「GET_USER_ROLESファンクション」

p_description

情報

p_account_expiry

パスワードが最後に更新された日。

参照: 「EXPIRE_END_USER_ACCOUNTプロシージャ」「EXPIRE_WORKSPACE_ACCOUNTプロシージャ」「UNEXPIRE_END_USER_ACCOUNTプロシージャ」「UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ」

p_account_locked

アカウントがロックされているかどうかを示す'Y'または'N'。

参照: 「LOCK_ACCOUNTプロシージャ」および「UNLOCK_ACCOUNTプロシージャ」

p_failed_access_attempts

ログインに連続して失敗した回数。

p_change_password_on_first_use

パスワードを初めて使用するときに変更する必要があるかどうかを示す'Y'または'N'。

参照: 「CHANGE_PASSWORD_ON_FIRST_USEファンクション」

p_first_password_use_occurred

パスワードの変更後にログインが行われたかどうかを示す'Y'または'N'。

参照: 「PASSWORD_FIRST_USE_OCCURREDファンクション」


次の例に、EDIT_USERプロシージャを使用してユーザー・アカウントを更新する方法を示します。この例で示すのは、EDIT_USERプロシージャを使用して、ユーザーFRANKを、開発者権限のみを持つユーザーからワークスペース管理者権限および開発者権限を持つユーザーに変更する方法です。まず、FETCH_USERプロシージャをコールしてユーザーFRANKのアカウントの詳細をローカル変数に割り当てます。次に、これらのローカル変数をEDIT_USERへのコールに使用してアカウントの詳細を保存します。ただし、p_developer_rolesパラメータの値は除外されます。この値は'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL'に設定されます。

DECLARE
    l_user_id                       NUMBER;
    l_workspace                     VARCHAR2(255);
    l_user_name                     VARCHAR2(100);
    l_first_name                    VARCHAR2(255);
    l_last_name                     VARCHAR2(255);
    l_web_password                  VARCHAR2(255);
    l_email_address                 VARCHAR2(240);
    l_start_date                    DATE;
    l_end_date                      DATE;
    l_employee_id                   NUMBER(15,0);
    l_allow_access_to_schemas       VARCHAR2(4000);
    l_person_type                   VARCHAR2(1);
    l_default_schema                VARCHAR2(30);
    l_groups                        VARCHAR2(1000);
    l_developer_role                VARCHAR2(60);
    l_description                   VARCHAR2(240);
    l_account_expiry                DATE;
    l_account_locked                VARCHAR2(1);
    l_failed_access_attempts        NUMBER;
    l_change_password_on_first_use  VARCHAR2(1);
    l_first_password_use_occurred   VARCHAR2(1);
BEGIN
    l_user_id := APEX_UTIL.GET_USER_ID('FRANK');

APEX_UTIL.FETCH_USER(
    p_user_id                       => l_user_id,
    p_workspace                     => l_workspace,
    p_user_name                     => l_user_name,
    p_first_name                    => l_first_name,
    p_last_name                     => l_last_name,
    p_web_password                  => l_web_password,
    p_email_address                 => l_email_address,
    p_start_date                    => l_start_date,
    p_end_date                      => l_end_date,
    p_employee_id                   => l_employee_id,
    p_allow_access_to_schemas       => l_allow_access_to_schemas,
    p_person_type                   => l_person_type,
    p_default_schema                => l_default_schema,
    p_groups                        => l_groups,
    p_developer_role                => l_developer_role,
    p_description                   => l_description,
    p_account_expiry                => l_account_expiry,
    p_account_locked                => l_account_locked,
    p_failed_access_attempts        => l_failed_access_attempts,
    p_change_password_on_first_use  => l_change_password_on_first_use,
    p_first_password_use_occurred   => l_first_password_use_occurred);
APEX_UTIL.EDIT_USER (
    p_user_id                       => l_user_id,
    p_user_name                     => l_user_name,
    p_first_name                    => l_first_name,
    p_last_name                     => l_last_name,
    p_web_password                  => l_web_password,
    p_new_password                  => l_web_password,
    p_email_address                 => l_email_address,
    p_start_date                    => l_start_date,
    p_end_date                      => l_end_date,
    p_employee_id                   => l_employee_id,
    p_allow_access_to_schemas       => l_allow_access_to_schemas,
    p_person_type                   => l_person_type,
    p_default_schema                => l_default_schema,
    p_group_ids                     => l_groups,
    p_developer_roles               => 'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL',
    p_description                   => l_description,
    p_account_expiry                => l_account_expiry,
    p_account_locked                => l_account_locked,
    p_failed_access_attempts        => l_failed_access_attempts,
    p_change_password_on_first_use  => l_change_password_on_first_use,
    p_first_password_use_occurred   => l_first_password_use_occurred);
END;

END_USER_ACCOUNT_DAYS_LEFTファンクション

エンド・ユーザー・アカウント・パスワードの期限が切れるまでの残りの日数を返します。このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.END_USER_ACCOUNT_DAYS_LEFT (
    p_user_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表21-22 END_USER_ACCOUNT_DAYS_LEFTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、END_USER_ACCOUNT_DAYS_LEFTファンクションを使用する方法を示します。このファンクションを使用して、現行のワークスペースのApplication Expressエンド・ユーザー・アカウントの期限が切れるまでの残りの日数を決定します。

DECLARE
    l_days_left NUMBER;
BEGIN
    FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
        l_days_left := APEX_UTIL.END_USER_ACCOUNT_DAYS_LEFT(p_user_name => c1.user_name);
        htp.p('End User Account:'||c1.user_name||' expires in '||l_days_left||' days.');
    END LOOP;
END;

EXPIRE_END_USER_ACCOUNTプロシージャ

ワークスペースエンド・ユーザーとして使用するログイン・アカウントを期限切れにします。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.EXPIRE_END_USER_ACCOUNT (
    p_user_name IN VARCHAR2
    );

パラメータ

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

表21-23 EXPIRE_END_USER_ACCOUNTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、EXPIRE_END_USER_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのOracle Application Expressアカウント(ワークスペース管理者、開発者またはエンド・ユーザー)を期限切れにします。このアクションは、開発されたアプリケーションへのエンド・ユーザーの認証に使用するアカウントを期限切れにしますが、ワークスペースへの開発者または管理者のログイン用に使用するアカウントも期限切れにします。

このプロシージャは、現行のワークスペースで管理権限を持つユーザーによって実行される必要があることに注意してください。

BEGIN
    FOR c1 IN (select user_name from wwv_flow_users) LOOP
        APEX_UTIL.EXPIRE_END_USER_ACCOUNT(p_user_name => c1.user_name);
        htp.p('End User Account:'||c1.user_name||' is now expired.');    
    END LOOP;
END;    

EXPIRE_WORKSPACE_ACCOUNTプロシージャ

開発者またはワークスペース管理者のログイン・アカウントを期限切れにします。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.EXPIRE_WORKSPACE_ACCOUNT (
    p_user_name IN VARCHAR2
    );

パラメータ

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

表21-24 EXPIRE_WORKSPACE_ACCOUNTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、EXPIRE_WORKSPACE_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressアカウント(ワークスペース管理者、開発者またはエンド・ユーザー)を期限切れにします。このアクションは、ワークスペースへのログイン用に開発者または管理者が使用するアカウントを期限切れにしますが、開発済のアプリケーションへの認証用にエンド・ユーザーが使用するアカウントも期限切れにします。

BEGIN
    FOR c1 IN (SELECT user_name FROM wwv_flow_users) LOOP
        APEX_UTIL.EXPIRE_WORKSPACE_ACCOUNT(p_user_name => c1.user_name);
        htp.p('Workspace Account:'||c1.user_name||' is now expired.');  
    END LOOP;
END;

EXPORT_USERSプロシージャ

このプロシージャは、ページからコールされると、現行のワークスペースの定義、ワークスペースユーザーおよびワークスペースグループのエクスポート・ファイルを作成します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.EXPORT_USERS(
    p_export_format IN VARCHAR2 DEFAULT 'UNIX');

パラメータ

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

表21-25 EXPORT_USERSのパラメータ

パラメータ 説明

p_export_format

エクスポート・ファイルの行を形式化する方法を指定します。UNIXを指定すると、ライン・フィードで区切られた行が含まれるファイルが生成されます。DOSを指定すると、キャリッジ・リターンおよびライン・フィードで区切られた行が含まれるファイルが生成されます。


次の例に、EXPORT_USERSプロシージャを使用する方法を示します。ページからこのプロシージャをコールして、現行のワークスペース定義、ワークスペースユーザーのリストおよびワークスペースグループのリストが含まれているエクスポート・ファイルを生成します。このファイルは、ライン・フィードで区切られた行で書式設定されます。

BEGIN
    APEX_UTIL.EXPORT_USERS;
END;

FETCH_APP_ITEMファンクション

このファンクションは、カレント・セッションまたは指定したセッション内のカレント・アプリケーションまたは指定したアプリケーションのセッション・ステートをフェッチします。

構文

APEX_UTIL.FETCH_APP_ITEM(
    p_item    IN VARCHAR2,
    p_app     IN NUMBER DEFAULT NULL,
    p_session IN NUMBER DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表21-26 FETCH_APP_ITEMのパラメータ

パラメータ 説明

p_item

現行の値がフェッチされるアプリケーション・レベル・アイテム(ページ・アイテムではない)の名前

p_app

アイテムを所有するアプリケーションのID (カレント・アプリケーションの場合はNULLのまま)

p_session

値を取得するセッションID (カレント・セッションの場合はNULLのまま)


次の例に、FETCH_APP_ITEMファンクションを使用して、アプリケーション300のアプリケーション・アイテムF300_NAMEの値を取得する方法を示します。p_sessionに値が渡されないため、カレント・セッションのステート値にデフォルト設定されます。

DECLARE
    VAL VARCHAR2(30);
BEGIN
    VAL := APEX_UTIL.FETCH_APP_ITEM(
        p_item => 'F300_NAME',
        p_app => 300);
END;

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

このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。このプロシージャには、オーバーロードされたバージョンが3つあり、許容されるパラメータやシグネチャはそれぞれ異なります。

シグネチャ1の構文

APEX_UTIL.FETCH_USER (
    p_user_id                       IN                    NUMBER,
    p_workspace                     OUT                   VARCHAR2,
    p_user_name                     OUT                   VARCHAR2,
    p_first_name                    OUT                   VARCHAR2,
    p_last_name                     OUT                   VARCHAR2,
    p_web_password                  OUT                   VARCHAR2,
    p_email_address                 OUT                   VARCHAR2,
    p_start_date                    OUT                   VARCHAR2,
    p_end_date                      OUT                   VARCHAR2,
    p_employee_id                   OUT                   VARCHAR2,
    p_allow_access_to_schemas       OUT                   VARCHAR2,
    p_person_type                   OUT                   VARCHAR2,
    p_default_schema                OUT                   VARCHAR2,
    p_groups                        OUT                   VARCHAR2,
    p_developer_role                OUT                   VARCHAR2,
    p_description                   OUT                   VARCHAR2 );

シグネチャ1のパラメータ

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

表21-27 FETCH_USERのパラメータのシグネチャ1

パラメータ 説明

p_user_id

ユーザー・アカウントの数値の主キー

p_workspace

ワークスペースの名前

p_user_name

ログインに使用する英数字の名前

参照: 「GET_USERNAMEファンクション」

p_first_name

情報

参照: 「GET_FIRST_NAMEファンクション」

p_last_name

情報

参照: 「GET_LAST_NAMEファンクション」

p_web_password

難読化されたアカウント・パスワード

p_email_address

電子メール・アドレス。

参照: 「GET_EMAILファンクション」

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト

p_person_type

未使用

p_default_schema

ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。

参照: 「GET_DEFAULT_SCHEMAファンクション」

p_groups

ユーザーがメンバーであるグループのリスト。

参照: 「GET_GROUPS_USER_BELONGS_TOファンクション」および「CURRENT_USER_IN_GROUPファンクション」

p_developer_role

コロンで区切られた開発者ロールのリスト。このパラメータで使用可能な値は、次のとおりです。

null: エンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)を示します。

CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: 開発者権限を持つユーザーを示します。

ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: ワークスペース管理者および開発者の完全な権限を持つユーザーを示します。

注意: 現在このパラメータの名前は一貫しておらず、CREATE_USEREDIT_USERおよびFETCH_USER APIと呼ばれています。ただし、これらのすべての名前が、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privsEDIT_USERではp_developer_rolesFETCH_USERではp_developer_roleが使用されます。

参照: 「GET_USER_ROLESファンクション」

p_description

情報


シグネチャ1の例

次の例に、シグネチャ1を使用してFETCH_USERプロシージャを使用する方法を示します。このプロシージャは、現在認証されているユーザーのIDを唯一のINパラメータp_user_idに渡します。その後、コードによって、他のすべてのOUTパラメータの値がローカル変数に格納されます。

DECLARE
    l_workspace                 VARCHAR2(255);
    l_user_name                 VARCHAR2(100);
    l_first_name                VARCHAR2(255);
    l_last_name                 VARCHAR2(255);
    l_web_password              VARCHAR2(255);
    l_email_address             VARCHAR2(240);
    l_start_date                DATE;
    l_end_date                  DATE;
    l_employee_id               NUMBER(15,0);
    l_allow_access_to_schemas   VARCHAR2(4000);
    l_person_type               VARCHAR2(1);
    l_default_schema            VARCHAR2(30);
    l_groups                    VARCHAR2(1000);
    l_developer_role            VARCHAR2(60);
    l_description               VARCHAR2(240);
BEGIN
    APEX_UTIL.FETCH_USER(
        p_user_id                   => APEX_UTIL.GET_CURRENT_USER_ID,
        p_workspace                 => l_workspace,
        p_user_name                 => l_user_name,
        p_first_name                => l_first_name,
        p_last_name                 => l_last_name,
        p_web_password              => l_web_password,
        p_email_address             => l_email_address,
        p_start_date                => l_start_date,
        p_end_date                  => l_end_date,
        p_employee_id               => l_employee_id,
        p_allow_access_to_schemas   => l_allow_access_to_schemas,
        p_person_type               => l_person_type,
        p_default_schema            => l_default_schema,
        p_groups                    => l_groups,
        p_developer_role            => l_developer_role,
        p_description               => l_description);
END;

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

このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。このプロシージャには、オーバーロードされたバージョンが3つあり、許容されるパラメータやシグネチャはそれぞれ異なります。

シグネチャ2の構文

APEX_UTIL.FETCH_USER (
    p_user_id                     IN                 NUMBER,
    p_user_name                   OUT                VARCHAR2,
    p_first_name                  OUT                VARCHAR2,
    p_last_name                   OUT                VARCHAR2,
    p_email_address               OUT                VARCHAR2,
    p_groups                      OUT                VARCHAR2,
    p_developer_role              OUT                VARCHAR2,
    p_description                 OUT                VARCHAR2 );

シグネチャ2のパラメータ

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

表21-28 FETCH_USERのパラメータのシグネチャ2

パラメータ 説明

p_user_id

ユーザー・アカウントの数値の主キー

p_user_name

ログインに使用する英数字の名前

参照: 「GET_USERNAMEファンクション」

p_first_name

情報

参照: 「GET_FIRST_NAMEファンクション」

p_last_name

情報

参照: 「GET_LAST_NAMEファンクション」

p_email_address

電子メール・アドレス。

参照: 「GET_EMAILファンクション」

p_groups

ユーザーがメンバーであるグループのリスト。

参照: 「GET_GROUPS_USER_BELONGS_TOファンクション」および「CURRENT_USER_IN_GROUPファンクション」

p_developer_role

コロンで区切られた開発者ロールのリスト。このパラメータで使用可能な値は、次のとおりです。

null: エンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)を示します。

CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: 開発者権限を持つユーザーを示します。

ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: ワークスペース管理者および開発者の完全な権限を持つユーザーを示します。

注意: 現在このパラメータの名前は一貫しておらず、CREATE_USEREDIT_USERおよびFETCH_USER APIと呼ばれています。ただし、これらのすべての名前が、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privsEDIT_USERではp_developer_rolesFETCH_USERではp_developer_roleが使用されます。

参照: 「GET_USER_ROLESファンクション」

p_description

情報


シグネチャ2の例

次の例に、シグネチャ2を使用してFETCH_USERプロシージャを使用する方法を示します。このプロシージャは、現在認証されているユーザーのIDを唯一のINパラメータp_user_idに渡します。その後、コードによって、他のすべてのOUTパラメータの値がローカル変数に格納されます。

DECLARE
    l_user_name         VARCHAR2(100);
    l_first_name        VARCHAR2(255);
    l_last_name         VARCHAR2(255);
    l_email_address     VARCHAR2(240);
    l_groups            VARCHAR2(1000);
    l_developer_role    VARCHAR2(60);
    l_description       VARCHAR2(240);
BEGIN
    APEX_UTIL.FETCH_USER(
        p_user_id           => APEX_UTIL.GET_CURRENT_USER_ID,
        p_user_name         => l_user_name,
        p_first_name        => l_first_name,
        p_last_name         => l_last_name,
        p_email_address     => l_email_address,
        p_groups            => l_groups,
        p_developer_role    => l_developer_role,
        p_description       => l_description);
END;

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

このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。このプロシージャには、オーバーロードされたバージョンが3つあり、許容されるパラメータやシグネチャはそれぞれ異なります。

シグネチャ3の構文

APEX_UTIL.FETCH_USER (
    p_user_id                           IN                   NUMBER,
    p_workspace                         OUT                  VARCHAR2,
    p_user_name                         OUT                  VARCHAR2,
    p_first_name                        OUT                  VARCHAR2,
    p_last_name                         OUT                  VARCHAR2,
    p_web_password                      OUT                  VARCHAR2,
    p_email_address                     OUT                  VARCHAR2,
    p_start_date                        OUT                  VARCHAR2,
    p_end_date                          OUT                  VARCHAR2,
    p_employee_id                       OUT                  VARCHAR2,
    p_allow_access_to_schemas           OUT                  VARCHAR2,
    p_person_type                       OUT                  VARCHAR2,
    p_default_schema                    OUT                  VARCHAR2,
    p_groups                            OUT                  VARCHAR2,
    p_developer_role                    OUT                  VARCHAR2,
    p_description                       OUT                  VARCHAR2,
    p_account_expiry                    OUT                  DATE,
    p_account_locked                    OUT                  VARCHAR2,
    p_failed_access_attempts            OUT                  NUMBER,
    p_change_password_on_first_use      OUT                  VARCHAR2,
    p_first_password_use_occurred       OUT                  VARCHAR2 );

シグネチャ3のパラメータ

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

表21-29 FETCH_USERのパラメータのシグネチャ3

パラメータ 説明

p_user_id

ユーザー・アカウントの数値の主キー

p_workspace

ワークスペースの名前

p_user_name

ログインに使用する英数字の名前

参照: 「GET_USERNAMEファンクション」

p_first_name

情報

参照: 「GET_FIRST_NAMEファンクション」

p_last_name

情報

参照: 「GET_LAST_NAMEファンクション」

p_web_password

難読化されたアカウント・パスワード

p_email_address

電子メール・アドレス。

参照: 「GET_EMAILファンクション」

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト

p_person_type

未使用

p_default_schema

ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。

参照: 「GET_DEFAULT_SCHEMAファンクション」

p_groups

ユーザーがメンバーであるグループのリスト。

参照: 「GET_GROUPS_USER_BELONGS_TOファンクション」および「CURRENT_USER_IN_GROUPファンクション」

p_developer_role

コロンで区切られた開発者ロールのリスト。このパラメータで使用可能な値は、次のとおりです。

null: エンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)を示します。

CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: 開発者権限を持つユーザーを示します。

ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL: ワークスペース管理者および開発者の完全な権限を持つユーザーを示します。

注意: 現在このパラメータの名前は一貫しておらず、CREATE_USEREDIT_USERおよびFETCH_USER APIと呼ばれています。ただし、これらのすべての名前が、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privsEDIT_USERではp_developer_rolesFETCH_USERではp_developer_roleが使用されます。

参照: 「GET_USER_ROLESファンクション」

p_description

情報

p_account_expiry

アカウント・パスワードが最後にリセットされた日付。

参照: 「END_USER_ACCOUNT_DAYS_LEFTファンクション」および「WORKSPACE_ACCOUNT_DAYS_LEFTファンクション」

p_account_locked

ロック/ロック解除を示すYまたはN

参照: 「GET_ACCOUNT_LOCKED_STATUSファンクション」

p_failed_access_attempts

ログインに連続して失敗した回数

p_change_password_on_first_use

最初の使用時にパスワード変更を強制する設定(YまたはN)

p_first_password_use_occurred

パスワードによるログインが行われたかどうかを示すYまたはN


シグネチャ3の例

次の例に、シグネチャ3を使用してFETCH_USERプロシージャを使用する方法を示します。このプロシージャは、現在認証されているユーザーのIDを唯一のINパラメータp_user_idに渡します。その後、コードによって、他のすべてのOUTパラメータの値がローカル変数に格納されます。

DECLARE
    l_workspace                     VARCHAR2(255);
    l_user_name                     VARCHAR2(100);
    l_first_name                    VARCHAR2(255);
    l_last_name                     VARCHAR2(255);
    l_web_password                  VARCHAR2(255);
    l_email_address                 VARCHAR2(240);
    l_start_date                    DATE;
    l_end_date                      DATE;
    l_employee_id                   NUMBER(15,0);
    l_allow_access_to_schemas       VARCHAR2(4000);
    l_person_type                   VARCHAR2(1);
    l_default_schema                VARCHAR2(30);
    l_groups                        VARCHAR2(1000);
    l_developer_role                VARCHAR2(60);
    l_description                   VARCHAR2(240);
    l_account_expiry                DATE;
    l_account_locked                VARCHAR2(1);
    l_failed_access_attempts        NUMBER;
    l_change_password_on_first_use  VARCHAR2(1);
    l_first_password_use_occurred   VARCHAR2(1);
BEGIN
    APEX_UTIL.FETCH_USER(
        p_user_id                       => APEX_UTIL.GET_CURRENT_USER_ID,
        p_workspace                     => l_workspace,
        p_user_name                     => l_user_name,
        p_first_name                    => l_first_name,
        p_last_name                     => l_last_name,
        p_web_password                  => l_web_password,
        p_email_address                 => l_email_address,
        p_start_date                    => l_start_date,
        p_end_date                      => l_end_date,
        p_employee_id                   => l_employee_id,
        p_allow_access_to_schemas       => l_allow_access_to_schemas,
        p_person_type                   => l_person_type,
        p_default_schema                => l_default_schema,
        p_groups                        => l_groups,
        p_developer_role                => l_developer_role,
        p_description                   => l_description,
        p_account_expiry                => l_account_expiry,
        p_account_locked                => l_account_locked,
        p_failed_access_attempts        => l_failed_access_attempts,
        p_change_password_on_first_use  => l_change_password_on_first_use,
        p_first_password_use_occurred   => l_first_password_use_occurred);
END;

FIND_SECURITY_GROUP_IDファンクション

このファンクションは、指定したワークスペースの数値のセキュリティ・グループIDを戻します。

構文

APEX_UTIL.FIND_SECURITY_GROUP_ID(
    p_workspace    IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表21-30 FIND_SECURITY_GROUP_IDのパラメータ

パラメータ 説明

p_workspace

ワークスペースの名前


次の例に、FIND_SECURITY_GROUP_IDファンクションを使用して、DEMOSというワークスペースのセキュリティ・グループIDを戻す方法を示します。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.FIND_SECURITY_GROUP_ID (p_workspace=>'DEMOS');
END;

FIND_WORKSPACEファンクション

このファンクションは、セキュリティ・グループIDに関連付けられたワークスペース名を戻します。

構文

APEX_UTIL.FIND_WORKSPACE(
    p_security_group_id    IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-31 FIND_WORKSPACEのパラメータ

パラメータ 説明

p_security_group_id

ワークスペースのセキュリティ・グループID


次の例に、FIND_WORKSPACEファンクションを使用して、セキュリティ・グループIDが20のワークスペースのワークスペース名を戻す方法を示します。

DECLARE
    VAL VARCHAR2(255);
BEGIN
    VAL := APEX_UTIL.FIND_WORKSPACE (p_security_group_id =>'20');
END;

GET_ACCOUNT_LOCKED_STATUSファンクション

アカウントがロック済の場合はTRUE、アカウントがロック解除済の場合はFALSEを戻します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS (
     p_user_name IN VARCHAR2
     ) RETURN BOOLEAN;

パラメータ

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

表21-32 GET_ACCOUNT_LOCKED_STATUSのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、GET_ACCOUNT_LOCKED_STATUSファンクションを使用する方法を示します。このファンクションを使用して、現行のワークスペースのApplication Expressユーザー・アカウント(ワークスペース管理者、開発者またはエンド・ユーザー)がロック済かどうかをチェックします。

BEGIN
    FOR c1 IN (SELECT user_name FROM wwv_flow_users) loop
        IF APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS(p_user_name => c1.user_name) THEN
            HTP.P('User Account:'||c1.user_name||' is locked.'); 
        END IF;   
    END LOOP;
END;

GET_ATTRIBUTEファンクション

このファンクションは、Application Expressアカウント表内の指定したユーザーのいずれかの属性値の値(1から10)を戻します。これらには、APIを使用してのみアクセスできることに注意してください。

構文

APEX_UTIL.GET_ATTRIBUTE(
    p_username                IN VARCHAR2,
    p_attribute_number        IN NUMBER)
RETURN VARCHAR2;

パラメータ

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

表21-33 GET_ATTRIBUTEのパラメータ

パラメータ 説明

p_username

アカウント内のユーザー名

p_attribute_number

ユーザー・レコードの属性番号(1から10)


次の例に、GET_ATTTIBUTEファンクションを使用して、ユーザーFRANKの1番目の属性の値を戻す方法を示します。

DECLARE
    VAL VARCHAR2(4000);
BEGIN
    VAL := APEX_UTIL.GET_ATTRIBUTE (
        p_username => 'FRANK',
        p_attribute_number => 1);
END;

GET_AUTHENTICATION_RESULTファンクション

このファンクションを使用して、カレント・セッションの認証結果を取得します。すべての認証済ユーザーは、ページ・リクエストのコンテキストでこのファンクションをコールできます。

構文

APEX_UTIL.GET_AUTHENTICATION_RESULT
RETURN NUMBER;

パラメータ

なし。

次の例に、アプリケーションの認証スキームの認証後プロセスを使用して、認証時に設定される認証結果コードを取得する方法を示します。

APEX_UTIL.SET_SESSION_STATE('MY_AUTH_STATUS',
    'Authentication result:'||APEX_UTIL.GET_AUTHENTICATION_RESULT);

GET_BLOB_FILE_SRCファンクション

ダウンロード・リンクを指定した組込み方式を使用するかわりに、APEX_UTIL.GET_BLOB_FILE_SRCファンクションを使用できます。この方法を使用すると、イメージの表示形式をより具体的に設定できます(高さタグおよび幅タグを使用)。この方法は、有効なOracle Application Expressセッションからコールされた場合のみ有効であることに注意してください。また、アプリケーション内に有効な項目の形式としてリスト表示されるために、BLOBを説明するパラメータが必要です。この項目は後でファンクションが参照します。


参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「フォームおよびレポートでのBLOBサポートについて」

構文

APEX_UTIL.GET_BLOB_FILE_SRC (
    p_item_name           IN VARCHAR2 DEFAULT NULL,
    p_v1                  IN VARCHAR2 DEFAULT NULL,
    p_v2                  IN VARCHAR2 DEFAULT NULL,
    p_content_disposition IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表21-34 GET_BLOB_FILE_SRCのパラメータ

パラメータ 説明

p_item_name

タイプがFILEで、DB列のソース・タイプを含む有効なアプリケーション・ページ・アイテムの名前。

p_v1

主キー列1の値。

p_v2

主キー列2の値。

p_content_disposition

inlineまたはattachmentを指定します(その他の値はすべて無視されます)


PL/SQLファンクションの本体として使用する場合:

RETURN '<img src="'||APEX_UTIL.GET_BLOB_FILE_SRC('P2_ATTACHMENT',:P2_EMPNO)||'" />';

SQLタイプのリージョン・ソースとして使用する場合:

SELECT ID, NAME,CASE WHEN NVL(dbms_lob.getlength(document),0) = 0
    THEN NULL 
    ELSE CASE WHEN attach_mimetype like 'image%'
    THEN '<img src="'||apex_util.get_blob_file_src('P4_DOCUMENT',id)||'" />' 
    ELSE 
    '<a href="'||apex_util.get_blob_file_src('P4_DOCUMENT',id)||'">Download</a>'
    end 
    END new_img
    FROM TEST_WITH_BLOB

前述の例は、BLOBを表示できる場合はレポート内に表示し、表示できない場合はダウンロード・リンクを提供する方法を示しています。


参照:

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「デモンストレーション・アプリケーションの実行」

GET_BUILD_OPTION_STATUSファンクションのシグネチャ1

このファンクションは、アプリケーションのビルド・オプションのIDを入力することによって、指定したアプリケーションのビルド・オプションのステータスを取得します。

構文

APEX_UTIL.GET_BUILD_OPTION_STATUS(
    p_application_id  IN NUMBER
    p_id              IN NUMBER;

パラメータ

表21-35では、GET_BUILD_OPTION_STATUSファンクションのシグネチャ1で使用可能なパラメータについて説明します。

表21-35 GET_BUILD_OPTION_STATUSファンクションのシグネチャ1のパラメータ

パラメータ 説明

p_application_id

共有コンポーネントの下にビルド・オプションを所有するアプリケーションのID。

p_id

アプリケーションのビルド・オプションのID。


次のコードは、IDで指定されたビルド・オプションの現在のステータスを取得します。

DECLARE
    l_status VARCHAR2(255);
BEGIN
    l_status := APEX_UTIL.GET_BUILD_OPTION_STATUS(
                    P_APPLICATION_ID => 101,
                    P_ID => 245935500311121039);
END;
/

GET_BUILD_OPTION_STATUSファンクションのシグネチャ2

このファンクションは、アプリケーションのビルド・オプション名を入力することによって、指定したアプリケーションのビルド・オプションのステータスを取得します。

構文

APEX_UTIL.GET_BUILD_OPTION_STATUS(
    p_application_id     IN NUMBER
    p_build_option_name IN VARCHAR2);

パラメータ

表21-36では、GET_BUILD_OPTION_STATUSファンクションのシグネチャ2で使用可能なパラメータについて説明します。

表21-36 GET_BUILD_OPTION_STATUSファンクションのシグネチャ2のパラメータ

パラメータ 説明

p_application_id

共有コンポーネントの下にビルド・オプションを所有するアプリケーションのID。

p_build_option_name

アプリケーションのビルド・オプションの名前。


次のコードは、名前で指定されたビルド・オプションの現在のステータスを取得します。

DECLARE
    l_status VARCHAR2(255);
BEGIN
    l_status := APEX_UTIL.GET_BUILD_OPTION_STATUS(
                    P_APPLICATION_ID => 101,
                    P_BUILD_OPTION_NAME => 'EXCLUDE_FROM_PRODUCTION');
END;
/

GET_CURRENT_USER_IDファンクション

このファンクションは、カレント・ユーザーの数値のユーザーIDを戻します。

構文

APEX_UTIL.GET_CURRENT_USER_ID
RETURN NUMBER;

パラメータ

なし。

次の例に、GET_CURRENT_USER_IDファンクションを使用する方法を示します。このファンクションは、カレント・ユーザーの数値のユーザーIDをローカル変数に戻します。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.GET_CURRENT_USER_ID;
END;

GET_DEFAULT_SCHEMAファンクション

このファンクションは、カレント・ユーザーに関連付けられたデフォルトのスキーマ名を戻します。

構文

APEX_UTIL.GET_DEFAULT_SCHEMA
RETURN VARCHAR2;

パラメータ

なし。

次の例に、GET_DEFAULT_SCHEMAファンクションを使用する方法を示します。このファンクションは、カレント・ユーザーに関連付けられているデフォルトのスキーマ名をローカル変数に戻します。

DECLARE
    VAL VARCHAR2(30);
BEGIN
    VAL := APEX_UTIL.GET_DEFAULT_SCHEMA;
END;

GET_EDITIONファンクション

このファンクションは、現在のページ・ビューのエディションを戻します。

構文

APEX_UTIL.GET_EDITION
RETURN VARCHAR2;

パラメータ

なし。

次の例に、GET_EDITIONファンクションを使用する方法を示します。このファンクションは、現在のページ・ビューのエディション名をローカル変数に戻します。

DECLARE
    VAL VARCHAR2(30);
BEGIN
    VAL := APEX_UTIL.GET_EDITION;
END;

GET_EMAILファンクション

このファンクションは、指定したユーザーに関連付けられた電子メール・アドレスを戻します。

構文

APEX_UTIL.GET_EMAIL(
   p_username IN VARCHAR2);
RETURN VARCHAR2;

パラメータ

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

表21-37 GET_EMAILのパラメータ

パラメータ 説明

p_username

アカウント内のユーザー名


次の例に、GET_EMAILファンクションを使用して、ユーザーFRANKの電子メール・アドレスを戻す方法を示します。

DECLARE
    VAL VARCHAR2(240);
BEGIN
    VAL := APEX_UTIL.GET_EMAIL(p_username => 'FRANK');
END;

GET_FEEDBACK_FOLLOW_UPファンクション

このファンクションを使用して、特定のフィードバックに関連付けられている残りのフォロー・アップを取得します。

構文

APEX_UTIL.GET_FEEDBACK_FOLLOW_UP (
    p_feedback_id    IN NUMBER,
    p_row            IN NUMBER DEFAULT 1,
    p_template       IN VARCHAR2 DEFAULT '<br />#CREATED_ON# (#CREATED_BY#) #FOLLOW_UP#')
RETURN VARCHAR2;

パラメータ

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

表21-38 GET_FEEDBACK_FOLLOW_UPパラメータ

パラメータ 説明

p_feedback_id

フィードバック・アイテムの一意の識別子。

p_row

取得するフォロー・アップで、created_on_descによって並べ替えるフォロー・アップを識別します。

p_template

フォロー・アップを戻すために使用するテンプレート。デフォルトのテンプレートに<br/>を指定すると、ループでファンクションを使用してすべてのフォロー・アップをフィードバックに戻すことができます。


次の例では、IDが123であるフィードバックの残りすべてのフォロー・アップを表示します。

declare
   l_feedback_count  number;
begin
   select count(*)
     into l_feedback_count
     from apex_team_feedback_followup
    where feedback_id = 123;
 
   for i in 1..l_feedback_count loop
      htp.p(apex_util.get_feedback_follow_up (
               p_feedback_id => 123,
               p_row         => i,
               p_template    => '<br />#FOLLOW_UP# was created on #CREATED_ON# by #CREATED_BY#') );
   end loop;
end;
/

GET_FILEプロシージャ

このプロシージャは、Oracle Application Expressファイル・リポジトリからファイルをダウンロードします。ページ処理時にこのプロシージャを起動する場合は、ページ・ブランチが同じ条件で起動されていないことを確認する必要があることに注意してください(ページ・ブランチがファイルの取得に影響を及ぼすためです)。このため、次の条件のブランチは、起動されないように設定してください。

構文

APEX_UTIL.GET_FILE (
    p_file_id    IN   VARCHAR2,
    p_inline     IN   VARCHAR2 DEFAULT 'NO');

パラメータ

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

表21-39 GET_FILEのパラメータ

パラメータ 説明

p_file_id

ダウンロードするファイルのAPEX_APPLICATION_FILES内のID。APEX_APPLICATION_FILESは、ワークスペースにアップロードされるすべてのファイルのビューです。次の例では、APEX_APPLICATION_FILESを使用する方法を示します。

DECLARE
    l_file_id NUMBER;
BEGIN
    SELECT id
        INTO l_file_id
        FROM APEX_APPLICATION_FILES
        WHERE filename = 'myxml';
        --
        APEX_UTIL.GET_FILE(
            p_file_id   => l_file_id, 
            p_inline    => 'YES');  
END;

p_inline

有効な値にはYESNOが含まれます。YESを選択すると、ブラウザでインライン表示されます。NOを選択すると、添付としてダウンロードされます。


次の例に、GET_FILEファンクションを使用して、ID 8675309で識別されるファイルを戻す方法を示します。これは、ブラウザにインラインで表示されます。

BEGIN
    APEX_UTIL.GET_FILE(
        p_file_id   => '8675309',
        p_inline    => 'YES');
END;

GET_FILE_IDファンクション

このファンクションは、Oracle Application Expressファイル・リポジトリ内のファイルの主キーを取得します。

構文

APEX_UTIL.GET_FILE_ID (
    p_name    IN   VARCHAR2)
RETURN NUMBER;

パラメータ

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

表21-40 GET_FILE_IDのパラメータ

パラメータ 説明

p_name

ダウンロードするファイルのAPEX_APPLICATION_FILES内の名前。APEX_APPLICATION_FILESは、ワークスペースにアップロードされるすべてのファイルのビューです。


次の例に、GET_FILE_IDファンクションを使用して、ファイル名がF125.sqlのファイルのデータベースIDを戻す方法を示します。

DECLARE
    l_name VARCHAR2(255);
    l_file_id NUMBER;
BEGIN
    SELECT name
        INTO l_name
        FROM APEX_APPLICATION_FILES
        WHERE filename = 'F125.sql';
        --
        l_file_id := APEX_UTIL.GET_FILE_ID(p_name => l_name);
END;

GET_FIRST_NAMEファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納されるFIRST_NAMEフィールドを戻します。

構文

APEX_UTIL.GET_FIRST_NAME
    p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-41 GET_FIRST_NAMEのパラメータ

パラメータ 説明

p_username

アカウント内のユーザー名を指定します。


次の例に、GET_FIRST_NAMEファンクションを使用してユーザーFRANKのFIRST_NAMEを戻す方法を示します。

DECLARE
    VAL VARCHAR2(255);
BEGIN
    VAL := APEX_UTIL.GET_FIRST_NAME(p_username => 'FRANK');
END;

GET_GROUPS_USER_BELONGS_TOファンクション

このファンクションは、指定したユーザーがメンバーであるグループ名のカンマとスペースで区切られたリストを戻します。

構文

APEX_UTIL.GET_GROUPS_USER_BELONGS_TO(
   p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-42 GET_GROUPS_USER_BELONGS_TOのパラメータ

パラメータ 説明

p_username

アカウント内のユーザー名を指定します。


次の例に、GET_GROUPS_USER_BELONGS_TOを使用して、ユーザーFRANKがメンバーであるグループのリストを戻す方法を示します。

DECLARE
    VAL VARCHAR2(32765);
BEGIN
    VAL := APEX_UTIL.GET_GROUPS_USER_BELONGS_TO(p_username => 'FRANK');
END;

GET_GROUP_IDファンクション

このファンクションは、ワークスペース内の指定したグループの数値のIDを戻します。

構文

APEX_UTIL.GET_GROUP_ID(
    p_group_name IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-43 GET_GROUP_IDのパラメータ

パラメータ 説明

p_group_name

アカウント内のユーザー名を指定します。


次の例に、GET_GROUP_IDファンクションを使用して、ManagersというグループのIDを戻す方法を示します。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.GET_GROUP_ID(p_group_name => 'Managers');
END;

GET_GROUP_NAMEファンクション

このファンクションは、数値のIDで指定したグループの名前を戻します。

構文

APEX_UTIL.GET_GROUP_NAME(
    p_group_id IN NUMBER)
RETURN VARCHAR2;

パラメータ

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

表21-44 GET_GROUP_NAMEのパラメータ

パラメータ 説明

p_group_id

ワークスペース内のグループの数値のIDを指定します。


次の例に、GET_GROUP_NAMEファンクションを使用して、ID 8922003のグループの名前を戻します。

DECLARE
    VAL VARCHAR2(255);
BEGIN
    VAL := APEX_UTIL.GET_GROUP_NAME(p_group_id => 8922003);
END;

GET_HIGH_CONTRAST_MODE_TOGGLEファンクション

このファンクションでは、現在のページへのリンクを戻すことで、モードのオンまたはオフの切替えを可能にします。たとえば、現在標準モードで表示している場合、このファンクションによってリンクが表示され、クリックするとハイ・コントラスト・モードがオンに切り替わります。

構文

APEX_UTIL.GET_HIGH_CONTRAST_MODE_TOGGLE (
    p_on_message  IN VARCHAR2 DEFAULT NULL,
    p_off_message IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;

パラメータ

表21-45に、GET_HIGH_CONTRAST_MODE_TOGGLEファンクションで使用可能なパラメータを示します。

表21-45 GET_HIGH_CONTRAST_MODE_TOGGLEのパラメータ

パラメータ 説明

p_on_message

標準モードの場合に、ハイ・コントラスト・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオンに設定」テキストがリンクに戻されます。

p_off_message

ハイ・コントラスト・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオフに設定」テキストがリンクに戻されます。


標準モードで実行中の場合、このファンクションは「ハイ・コントラスト・モードをオンに設定」というテキスト付きのリンクを戻します。リンクをクリックすると、現在のページがリフレッシュされ、ハイ・コントラスト・モードがオンになります。ハイ・コントラスト・モードで実行中の場合、「ハイ・コントラスト・モードをオフに設定」というテキスト付きのリンクが戻されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
    htp.p(apex_util.get_high_contrast_mode_toggle);
END;

注意:

また、このトグルに戻されるデフォルトのリンク・テキストを変更するための、アプリケーション・レベルでオーバーライドできる翻訳可能なシステム・メッセージが2つあります。これには次のものがあります。
  • APEX.SET_HIGH_CONTRAST_MODE_OFF - デフォルト・テキスト = ハイ・コントラスト・モードをオフに設定

  • APEX.SET_HIGH_CONTRAST_MODE_ON - デフォルト・テキスト = ハイ・コントラスト・モードをオンに設定


GET_LAST_NAMEファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納されるLAST_NAMEフィールドを戻します。

構文

APEX_UTIL.GET_LAST_NAME(
    p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-46 GET_LAST_NAMEのパラメータ

パラメータ 説明

p_username

ユーザー・アカウント・レコードのユーザー名


次の例に、このファンクションを使用してユーザーのFRANKのLAST_NAMEを戻す方法を示します。

DECLARE
    VAL VARCHAR2(255);
BEGIN
    VAL := APEX_UTIL.GET_LAST_NAME(p_username => 'FRANK');
END;

GET_NUMERIC_SESSION_STATEファンクション

このファンクションは、数値アイテムの数値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle Application Expressアプリケーションで使用できます。また、APEX_UTIL.GET_NUMERIC_SESSION_STATEのかわりに、短縮版のファンクションNVを使用できます。

構文

APEX_UTIL.GET_NUMERIC_SESSION_STATE (
    p_item     IN VARCHAR2) 
RETURN NUMBER;

パラメータ

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

表21-47 GET_NUMERIC_SESSION_STATEのパラメータ

パラメータ 説明

p_item

セッション・ステートをフェッチするアイテムの名前(大/小文字の区別なし)


次の例に、このファンクションを使用して、アイテムmy_itemのセッション・ステートに格納されている数値を戻す方法を示します。

DECLARE
    l_item_value    NUMBER;
BEGIN
    l_item_value := APEX_UTIL.GET_NUMERIC_SESSION_STATE('my_item');
END;

GET_PREFERENCEファンクション

このファンクションは、指定したユーザーについて、以前保存されたプリファレンスの値を取得します。

構文

APEX_UTIL.GET_PREFERENCE (
    p_preference  IN    VARCHAR2 DEFAULT NULL,
    p_user        IN    VARCHAR2 DEFAULT V('USER')) 
RETURN VARCHAR2;

パラメータ

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

表21-48 GET_PREFERENCEのパラメータ

パラメータ 説明

p_preference

値を取得するプリファレンスの名前

p_value

プリファレンスの値

p_user

プリファレンスが取得されるユーザー


次の例に、GET_PREFERENCEファンクションを使用して、現在認証されているユーザーのdefault_viewというプリファレンスの値を戻す方法を示します。

DECLARE
    l_default_view    VARCHAR2(255);
BEGIN
    l_default_view := APEX_UTIL.GET_PREFERENCE(      
        p_preference => 'default_view',
        p_user       => :APP_USER);
END;

参照:

「SET_PREFERENCEプロシージャ」「REMOVE_PREFERENCEプロシージャ」および『Oracle Application Express管理ガイド』の「ユーザー・プリファレンスの管理」

GET_PRINT_DOCUMENTファンクションのシグネチャ1

このファンクションは、XMLベースのレポート・データ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
    p_report_data         IN BLOB,
    p_report_layout       IN CLOB,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default NULL)
RETURN BLOB;

パラメータ

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

表21-49 GET_PRINT_DOCUMENTシグネチャ1のパラメータ

パラメータ 説明

p_report_data

XMLベースのレポート・データ

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。


GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ2

このファンクションは、事前定義されたレポート問合せおよび事前定義されたレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
    p_application_id      IN NUMBER,
    p_report_query_name   IN VARCHAR2,
    p_report_layout_name  IN VARCHAR2 default null,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default null)
RETURN BLOB;

パラメータ

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

表21-50 GET_PRINT_DOCUMENTシグネチャ2のパラメータ

パラメータ 説明

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_name

レポート・レイアウトの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。


GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ3

このファンクションは、事前定義されたレポート問合せ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
    p_application_id      IN NUMBER,
    p_report_query_name   IN VARCHAR2,
    p_report_layout       IN CLOB,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default null)
RETURN BLOB;

パラメータ

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

表21-51 GET_PRINT_DOCUMENTシグネチャ3のパラメータ

パラメータ 説明

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウトを定義します

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。


GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ4

このファンクションは、XMLベースのレポート・データ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
    p_report_data         IN CLOB,
    p_report_layout       IN CLOB,
    p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
    p_document_format     IN VARCHAR2 default 'pdf',
    p_print_server        IN VARCHAR2 default NULL)
RETURN BLOB;

パラメータ

表21-52に、GET_PRINT_DOCUMENTファンクションのシグネチャ4で使用可能なパラメータを示します。

表21-52 GET_PRINT_DOCUMENTシグネチャ4のパラメータ

パラメータ 説明

p_report_data

XMLベースのレポート・データ(UTF-8でエンコードされている必要があります)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます


シグネチャ4の例

次の例に、シグネチャ4を使用してGET_PRINT_DOCUMENTを使用する方法を示します(ドキュメントはXMLベースのレポート・データおよびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用してBLOBとして戻されます)。この例では、GET_PRINT_DOCUMENTAPEX_MAIL.SENDおよびAPEX_MAIL.ADD_ATTACHMENTとともに使用し、GET_PRINT_DOCUMENTによって戻されるファイルが添付された電子メールを送信します。レポート・データとレポート・レイアウトの両方に、ページ・アイテム(P1_XMLおよびP1_XSL)に格納されている値が適用されます。

DECLARE
    l_id number;
    l_document BLOB;
BEGIN
    l_document := APEX_UTIL.GET_PRINT_DOCUMENT (
        p_report_data         => :P1_XML,
        p_report_layout       => :P1_XSL,
        p_report_layout_type  => 'xsl-fo',
        p_document_format     => 'pdf');
 
   l_id := APEX_MAIL.SEND(
       p_to        => :P35_MAIL_TO,
       p_from      => 'noreplies@oracle.com',
       p_subj      => 'sending PDF by using print API',
       p_body      => 'Please review the attachment.',
       p_body_html => 'Please review the attachment');
 
   APEX_MAIL.ADD_ATTACHMENT (
       p_mail_id    => l_id,
       p_attachment => l_document,
       p_filename   => 'mydocument.pdf',
       p_mime_type  => 'application/pdf');
END;

GET_SCREEN_READER_MODE_TOGGLEファンクション

このファンクションは、モードのオンまたはオフを切り替える現在のページへのリンクを戻します。たとえば、標準モードの場合、このファンクションによって、クリックするとスクリーン・リーダー・モードをオンに切り替えるリンクが表示されます。

構文

APEX_UTIL.GET_SCREEN_READER_MODE_TOGGLE (
    p_on_message  IN VARCHAR2 DEFAULT NULL,
    p_off_message IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表21-53 GET_SCREEN_READER_MODE_TOGGLEパラメータ

パラメータ 説明

p_on_message

標準モードの場合に、スクリーン・リーダー・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオンに設定」テキストがリンクに戻されます。

p_off_message

スクリーン・リーダー・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオフに設定」テキストがリンクに戻されます。


標準モードで実行中の場合、このファンクションは「スクリーン・リーダー・モードをオンに設定」というテキスト付きのリンクを戻します。リンクをクリックすると、現在のページがリフレッシュされ、スクリーン・リーダー・モードがオンになります。スクリーン・リーダー・モードで実行中の場合、リンク'Set Screen Reader Mode Off'が戻されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
    htp.p(apex_util.get_screen_reader_mode_toggle);
END;

GET_SESSION_LANGファンクション

このファンクションは、Application Expressのカレント・セッションにおけるカレント・ユーザーの言語設定を戻します。

構文

APEX_UTIL.GET_SESSION_LANG
RETURN VARCHAR2;

パラメータ

なし。

次の例は、GET_SESSION_LANGファンクションの使用方法を示しています。Application Expressのカレント・セッションにおけるカレント・ユーザーのセッション言語をローカル変数に戻します。

DECLARE
    VAL VARCHAR2(5);
BEGIN
    VAL := APEX_UTIL.GET_SESSION_LANG;
END;

GET_SESSION_STATEファンクション

このファンクションはアイテムの値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle Application Expressアプリケーションで使用できます。また、APEX_UTIL.GET_SESSION_STATEのかわりに、短縮版のファンクションVを使用できます。

構文

APEX_UTIL.GET_SESSION_STATE (
    p_item    IN   VARCHAR2) 
RETURN VARCHAR2;

パラメータ

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

表21-54 GET_SESSION_STATEのパラメータ

パラメータ 説明

p_item

セッション・ステートをフェッチするアイテムの名前(大/小文字の区別なし)


次の例に、GET_SESSION_STATEファンクションを使用して、アイテムmy_itemのセッション・ステートに格納されている値を戻す方法を示します。

DECLARE
    l_item_value  VARCHAR2(255);
BEGIN
    l_item_value := APEX_UTIL.GET_SESSION_STATE('my_item');
END;

GET_SESSION_TERRITORYファンクション

このファンクションは、Application Expressのカレント・セッションにおけるカレント・ユーザーの地域設定を戻します。

構文

APEX_UTIL.GET_SESSION_TERRITORY
RETURN VARCHAR2;

パラメータ

なし。

次の例は、GET_SESSION_TERRITORYファンクションの使用方法を示しています。Application Expressのカレント・セッションにおけるカレント・ユーザーのセッション地域設定をローカル変数に戻します。

DECLARE
    VAL VARCHAR2(30);
BEGIN
    VAL := APEX_UTIL.GET_SESSION_TERRITORY;
END;

GET_SESSION_TIME_ZONEファンクション

このファンクションは、Application Expressのカレント・セッションにおけるカレント・ユーザーのタイムゾーンを戻します。タイムゾーンがAPEX_UTIL.SET_SESSION_TIME_ZONEを使用して明示的に設定されていない場合、またはアプリケーションの自動タイムゾーン属性が有効になっている場合、この値はnullです。

構文

APEX_UTIL.GET_SESSION_TIME_ZONE
RETURN VARCHAR2;

パラメータ

なし。

次の例は、GET_SESSION_TIME_ZONEファンクションの使用方法を示しています。Application Expressのカレント・セッションにおけるカレント・ユーザーのセッション・タイムゾーンをローカル変数に戻します。

BEGIN
    VAL := APEX_UTIL.GET_SESSION_TIME_ZONE;
END;

GET_USER_IDファンクション

このファンクションは、ワークスペース内の指定したユーザーの数値のIDを戻します。

構文

APEX_UTIL.GET_USER_ID(
    p_username   IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表21-55 GET_USER_IDのパラメータ

パラメータ 説明

p_username

ワークスペース内のユーザー名を指定します。


次の例に、GET_USER_IDファンクションを使用して、FRANKというユーザーのIDを戻す方法を示します。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.GET_USER_ID(p_username => 'FRANK');
END;

GET_USER_ROLESファンクション

このファンクションは、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドを戻します。現在このパラメータの名前は一貫しておらず、CREATE_USEREDIT_USERおよびFETCH_USER APIと呼ばれていることに注意してください。ただし、これらのすべての名前が、DEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privsEDIT_USERではp_developer_rolesFETCH_USERではp_developer_roleが使用されます。

構文

APEX_UTIL.GET_USER_ROLES(
   p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-56 GET_USER_ROLESのパラメータ

パラメータ 説明

p_username

アカウント内のユーザー名を指定します。


次の例に、GET_USER_ROLESファンクションを使用して、ユーザーFRANKのDEVELOPER_ROLEフィールドに格納されているコロンで区切られたロールのリストを戻す方法を示します。

DECLARE
    VAL VARCHAR2(4000);
BEGIN
    VAL := APEX_UTIL.GET_USER_ROLES(p_username=>'FRANK');
END;

GET_USERNAMEファンクション

このファンクションは、数値のIDで指定したユーザー・アカウントのユーザー名を戻します。

構文

APEX_UTIL.GET_USERNAME(
    p_userid IN NUMBER)
RETURN VARCHAR2;

パラメータ

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

表21-57 GET_USERNAMEのパラメータ

パラメータ 説明

p_userid

ワークスペース内のユーザー・アカウントの数値のIDを指定します。


次の例に、GET_USERNAMEファンクションを使用して、IDが228922003のユーザーのユーザー名を戻す方法を示します。

DECLARE
    VAL VARCHAR2(100);
BEGIN
    VAL := APEX_UTIL.GET_USERNAME(p_userid => 228922003);
END;

HOST_URLファンクション

このファンクションは、渡されたオプションに応じて、Application ExpressアプリケーションにURLを戻します。

構文

APEX_UTIL.HOST_URL (
    p_option IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表21-58に、HOST_URLファンクションで使用可能なパラメータを示します。

表21-58 HOST_URLのパラメータ

パラメータ 説明

p_option

含めるURLの部分を指定します。

p_optionに使用可能な値は次のとおりです。

  • NULL - ポート番号までのURLを戻します。次に例を示します。

    http://myserver.com:7778
    
  • SCRIPT - スクリプト名を含むURLを戻します。次に例を示します。

    https://myserver.com:7778/pls/apex/
    
  • IMGPRE - イメージ接頭辞を含むURLを戻します。次に例を示します。

    https://myserver.com:7778/i/
    

次の例では、HOST_URLファンクションを使用して、スクリプト名を含むURLを現在のApplication Expressインスタンスに戻す方法を示しています。

declare
    l_host_url      varchar2(4000);
    l_url           varchar2(4000);
    l_application   varchar2(30) := 'f?p=100:1';
    l_email_body    varchar2(32000);
begin
    l_host_url := apex_util.host_url('SCRIPT');
    l_url := l_host_url||l_application;
    l_email_body := 'The URL to the application is: '||l_url;
end;

HTML_PCT_GRAPH_MASKファンクション

このファンクションは、グラフの大きさを変更します。 このファンクションは、書式マスクがGRAPHのクラシック・レポートおよび対話モード・レポートでも使用できます。これによって、インライン形式で<div>タグが生成されます。

構文

APEX_UTIL.HTML_PCT_GRAPH_MASK (
    p_number         IN NUMBER    DEFAULT NULL,
    p_size           IN NUMBER    DEFAULT 100,
    p_background     IN VARCHAR2  DEFAULT NULL,
    p_bar_background IN VARCHAR2  DEFAULT NULL,
    p_format         IN VARCHAR2  DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表21-59 HTML_PCT_GRAPH_MASKパラメータ

パラメータ 説明

p_number

0から100の数値。

p_size

グラフの幅(ピクセル)。

p_background

6文字の16進文字列で表される、グラフの棒の背景色(棒の色ではない)。

p_bar_background

6文字の16進文字列で表される、グラフの棒の背景色(棒の色)。

p_format

このパラメータを指定すると、p_sizep_backgroundおよびp_bar_backgroundは無視されます。

このパラメータは次の書式を使用します。PCT_GRAPH:<BACKGROUND>:<FOREGROUND>:<CHART_WIDTH>1番目: PCT_GRAPH書式マスク・インジケータ。2番目: 6文字の16進数で表す背景色(オプション)。3番目: 6文字の16進数で表す棒の前面色(オプション)。4番目: チャートの幅(ピクセル)。数値でデフォルトは100。p_numberは、chart_widthの半分である50になるように自動的に調整されます(オプション)。


次にSQLの例を示します。

select apex_util.html_pct_graph_mask(33) from dual

次にレポートの数値列の書式マスクの例を示します。

PCT_GRAPH:777777:111111:200

INCREMENT_CALENDARプロシージャ

このプロシージャは、カレンダの日付セットを次に移動します。カレンダ・ビューによって、翌月、翌週または翌日に移動します。カスタム・カレンダの場合は、開始日から終了日までの総日数分、移動します。

構文

APEX_UTIL.INCREMENT_CALENDAR;

パラメータ

なし。

この例では、カレンダ・ページのNEXTというボタンを作成し、作成ボタンをクリックすると起動するプロセスを作成した場合、次のコードによってカレンダ内を移動します。

APEX_UTIL.INCREMENT_CALENDAR

IR_CLEARプロシージャ

このプロシージャは、レポート設定を消去します。


注意:

このプロシージャはページ発行プロセスでのみ使用されます。

構文

APEX_UTIL.IR_CLEAR(
    p_page_id IN NUMBER,
    p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-60 IR_CLEARパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートを消去するには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートを消去するには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'を消去するには、p_report_aliasを'1234'にする必要があります。


次の例では、IR_CLEARプロシージャを使用して、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポート設定を消去する方法を示します。

BEGIN
    APEX_UTIL.IR_CLEAR(
        p_page_id      => 1,
        p_report_alias => '8101021'
        );
END;

IR_DELETE_REPORTプロシージャ

このプロシージャは、保存した対話モード・レポートを削除します。プライマリ・デフォルト・レポート以外のすべての保存済レポートを削除します。

構文

APEX_UTIL.IR_DELETE_REPORT(
    p_report_id IN NUMBER);

パラメータ

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

表21-61 IR_DELETE_REPORTパラメータ

パラメータ 説明

p_report_id

Application Expressのカレント・アプリケーションで削除するレポートID。


次の例は、IR_DELETE_REPORTプロシージャを使用して、カレント・アプリケーションにあるIDが'880629800374638220'の保存済の対話モード・レポートを削除する方法を示しています。

BEGIN
    APEX_UTIL.IR_DELETE_REPORT(
        p_report_id => '880629800374638220');
END;

IR_DELETE_SUBSCRIPTIONプロシージャ

このプロシージャは、対話型サブスクリプションを削除します。

構文

APEX_UTIL.IR_DELETE_SUBSCRIPTION(
    p_subscription_id IN NUMBER);

パラメータ

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

表21-62 IR_DELETE_SUBSCRIPTIONパラメータ

パラメータ 説明

p_subscription_id

現行のワークスペース内の削除するサブスクリプションID。


次の例は、IR_DELETE_SUBSCRIPTIONプロシージャを使用して、現行のワークスペースにあるIDが'880629800374638220'のサブスクリプションを削除する方法を示しています。

BEGIN
    APEX_UTIL.IR_DELETE_SUBSCRIPTION(
        p_subscription_id => '880629800374638220');
END;

IR_FILTERプロシージャ

このプロシージャは、対話モード・レポートにフィルタを作成します。


注意:

このプロシージャはページ発行プロセスでのみ使用されます。

構文

APEX_UTIL.IR_FILTER(
    p_page_id       IN NUMBER,
    p_report_column IN VARCHAR2,
    p_operator_abbr IN VARCHAR2 DEFAULT NULL,
    p_filter_value  IN VARCHAR2,
    p_report_alias  IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-63 IR_FILTERパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_column

フィルタ処理されるレポートSQL列名または列の別名。

p_operator_abbr

フィルタ・タイプ。有効な値は次のとおりです。

  • EQ = 等しい

  • NEQ = 等しくない

  • LT = 未満

  • LTE = 以下

  • GT = より大きい

  • GTE = 以上

  • LIKE = SQLのLike演算子

  • N = Null

  • NN = NULLではない

  • C = 含む

  • NC = 含まない

  • IN = SQL In演算子

  • NIN = SQL Not In演算子

p_filter_value

フィルタ値。この値は'N'および'NN'には使用されません。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートにフィルタを作成するには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートにフィルタを作成するには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'にフィルタを作成するには、p_report_aliasを'1234'にする必要があります。


次の例では、IR_FILTERプロシージャを使用して、DEPTNOが30で、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポートをフィルタ処理する方法を示します。

BEGIN
    APEX_UTIL.IR_FILTER (   
        p_page_id        => 1,
        p_report_column  => 'DEPTNO',
        p_operator_abbr  => 'EQ',
        p_filter_value   => '30'
        p_report_alias   => '8101021'
        );
END;

IR_RESETプロシージャ

このプロシージャは、レポート設定をデフォルトに戻します。レポートをリセットすると、カスタマイズした設定はすべて削除されます。


注意:

このプロシージャはページ発行プロセスでのみ使用されます。

構文

APEX_UTIL.IR_RESET(
    p_page_id IN NUMBER,
    p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-64 IR_RESETパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートをリセットするには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートをリセットするには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'をリセットするには、p_report_aliasを'1234'にする必要があります。


次の例では、IR_RESETプロシージャを使用して、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポート設定をリセットする方法を示します。

BEGIN
    APEX_UTIL.IR_RESET(
        p_page_id      => 1,
        p_report_alias => '8101021'
        );
END;

IS_HIGH_CONTRAST_SESSIONファンクション

このファンクションは、セッションがハイ・コントラスト・モードの場合はブール値のtrueを戻し、ハイ・コントラスト・モードでない場合はブール値のfalseを戻します。

構文

APEX_UTIL.IS_HIGH_CONTRAST_SESSION
RETURN BOOLEAN;

パラメータ

なし。

この例では、現在のセッションがハイ・コントラスト・モードで実行されている場合、特定のハイ・コントラストCSSファイル「my_app_hc.css」がページのHTML出力に追加されます。

BEGIN
    IF apex_util.is_high_contrast_session THEN
        apex_css.add_file (
            p_name => 'my_app_hc');
    END IF;
END;

IS_HIGH_CONTRAST_SESSION_YNファンクション

このファンクションは、セッションがハイ・コントラスト・モードの場合はYを戻し、ハイ・コントラスト・モードでない場合はNを戻します。

構文

APEX_UTIL.IS_HIGH_CONTRAST_SESSION_YN
RETURN VARCHAR2;

パラメータ

なし。

この例では、現在のセッションがハイ・コントラスト・モードで実行されている場合、特定のハイ・コントラストCSSファイルmy_app_hc.cssがページのHTML出力に追加されます。

BEGIN
    IF apex_util.is_high_contrast_session_yn = 'Y' THEN
        apex_css.add_file (
            p_name => 'my_app_hc');
    END IF;
END;

IS_LOGIN_PASSWORD_VALIDファンクション

このファンクションは、現在のワークスペース内の指定したユーザー・アカウントのパスワードの検証に基づいてブール結果を戻します。パスワードが一致した場合はtrueを、パスワードが一致しない場合はfalseを戻します。

構文

APEX_UTIL.IS_LOGIN_PASSWORD_VALID(
    p_username IN VARCHAR2,
    p_password IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表21-65 IS_LOGIN_PASSWORD_VALIDのパラメータ

パラメータ 説明

p_username

アカウント内のユーザー名

p_password

アカウントに格納されているパスワードと比較されるパスワード


次の例に、IS_LOGIN_PASSWORD_VALIDファンクションを使用して、ユーザーFRANKのパスワードがtigerかどうかを確認する方法を示します。これがFRANKの有効なパスワードの場合はTRUE、そうでない場合はFALSEが戻されます。

DECLARE
    VAL BOOLEAN;
BEGIN
    VAL := APEX_UTIL.IS_LOGIN_PASSWORD_VALID (
        p_username=>'FRANK',
        p_password=>'tiger');
END;

IS_SCREEN_READER_SESSIONファンクション

このファンクションは、セッションがスクリーン・リーダー・モードも場合はブール値のtrueを戻し、スクリーン・リーダー・モードでない場合はブール値のfalseを戻します。

構文

APEX_UTIL.IS_SCREEN_READER_SESSION
RETURN BOOLEAN;

パラメータ

なし

BEGIN
    IF apex_util.is_screen_reader_session then
        htp.p('Screen Reader Mode');
    END IF;
END;

IS_SCREEN_READER_SESSION_YNファンクション

このファンクションは、セッションがスクリーン・リーダー・モードも場合は'Y'を戻し、スクリーン・リーダー・モードでない場合は'N'を戻します。

構文

APEX_UTIL.IS_SCREEN_READER_SESSION_YN
RETURN VARCHAR2;

パラメータ

なし

BEGIN
    IF apex_util.is_screen_reader_session_yn = 'Y' then
        htp.p('Screen Reader Mode');
    END IF;
END;

IS_USERNAME_UNIQUEファンクション

このファンクションは、指定したユーザー・アカウントがワークスペース内で一意であるかどうかに基づいてブール結果を戻します。

構文

APEX_UTIL.IS_USERNAME_UNIQUE(
    p_username IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表21-66 IS_USERNAME_UNIQUEのパラメータ

パラメータ 説明

p_username

テストするユーザー名を指定します。


次の例に、IS_USERNAME_UNIQUEファンクションを使用する方法を示します。現行のワークスペースにユーザーFRANKがすでに存在する場合はFALSE、存在しない場合はTRUEが戻されます。

DECLARE
    VAL BOOLEAN;
BEGIN
    VAL := APEX_UTIL.IS_USERNAME_UNIQUE(
        p_username=>'FRANK');
END;

KEYVAL_NUMファンクション

このファンクションは、APEX_UTIL.SAVEKEY_NUMによって設定されたパッケージ変数(wwv_flow_utilities.g_val_num)の値を取得します。

構文

APEX_UTIL.KEYVAL_NUM
RETURN NUMBER;

パラメータ

なし

次の例に、KEYVAL_NUMファンクションを使用して、パッケージ変数wwv_flow_utilities.g_val_numの現行の値を戻す方法を示します。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.KEYVAL_NUM;
END;

KEYVAL_VC2ファンクション

このファンクションは、APEX_UTIL.SAVEKEY_VC2によって設定されたパッケージ変数(wwv_flow_utilities.g_val_vc2)の値を取得します。

構文

APEX_UTIL.KEYVAL_VC2;

パラメータ

なし。

次の例に、KEYVAL_VC2ファンクションを使用して、パッケージ変数wwv_flow_utilities.g_val_vc2の現行の値を戻す方法を示します。

DECLARE
    VAL VARCHAR2(4000);
BEGIN
    VAL := APEX_UTIL.KEYVAL_VC2;
END;

LOCK_ACCOUNTプロシージャ

ユーザーのアカウント・ステータスを「ロック済」に設定します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.LOCK_ACCOUNT (
     p_user_name IN VARCHAR2); 

パラメータ

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

表21-67 LOCK_ACCOUNTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、LOCK_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressアカウント(ワークスペース管理者、開発者またはエンド・ユーザー)をロックします。このアクションは、管理者、開発者およびエンド・ユーザーが使用するアカウントをロックします。

BEGIN
    FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
        APEX_UTIL.LOCK_ACCOUNT(p_user_name => c1.user_name);
        htp.p('End User Account:'||c1.user_name||' is now locked.');    
    END LOOP;
END;

PASSWORD_FIRST_USE_OCCURREDファンクション

アカウント作成後にアカウント・パスワードが変更された場合は、TRUEを戻します。Oracle Application Express管理者が、アカウント保持者に新しいパスワードを電子メールで送信してパスワードのリセット操作を実行するか、あるいはユーザーがパスワードのリセット操作を開始します。このファンクションは、前述のイベントのどちらかが実行されてから、アカウントのパスワードが変更されていない場合は、FALSEを戻します。

このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.PASSWORD_FIRST_USE_OCCURRED (
    p_user_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表21-68 PASSWORD_FIRST_USE_OCCURREDのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、PASSWORD_FIRST_USE_OCCURREDファンクションを使用する方法を示します。このファンクションを使用して、現行のワークスペースのApplication Expressユーザー・アカウント(ワークスペース管理者、開発者またはエンド・ユーザー)のパスワードが、アカウント作成中にパスワードが最初に設定された後に最初のログイン時にユーザーによって変更されたか、または前述のパスワードのリセット操作の1つによって変更されたかをチェックします。これは、CHANGE_PASSWORD_ON_FIRST_USE属性が「はい」に設定されているアカウントでのみ有効です。

BEGIN
    FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
        IF APEX_UTIL.PASSWORD_FIRST_USE_OCCURRED(p_user_name => c1.user_name) THEN
            htp.p('User:'||c1.user_name||' has logged in and updated the password.');
        END IF;
    END LOOP;
END;    

PREPARE_URLファンクション

PREPARE_URLファンクションは、次の2つの目的で使用されます。

  1. 「セッション・ステート保護」チェックサム引数(&cs=)が指定されたf?p URLを戻すため(このf?p URLが必要な場合)

  2. セッションIDコンポーネントが0 (ゼロ)に置換されたf?p URLを戻すため(ゼロ・セッションID機能が使用され、他の条件が満たされている場合)


注意:

PREPARE_URLファンクションは、&cs=<large hex value>を追加したf?p URLを戻します。たとえば、この戻り値をJavaScriptで使用する場合、特定のコンテキストの構文規則に従うため、URLのアンパサンドをエスケープする必要があります。PREPARE_URLのコールを含むSVGチャートのSQL問合せでは、このエスケープが必要な場合があります。

構文

APEX_UTIL.PREPARE_URL (
    p_url           IN VARCHAR2,
    p_url_charset   IN VARCHAR2 default null,
    p_checksum_type IN VARCHAR2 default null)
RETURN VARCHAR2;

パラメータ

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

表21-69 PREPARE_URLのパラメータ

パラメータ 説明

p_url

すべての置換が解決されているf?p相対URL

p_url_charset

引数値に含まれている特殊文字をエスケープする場合に使用するキャラクタ・セット名(UTF-8など)

p_checksum_type

NULL、あるいは6つの値(SESSIONまたは3PRIVATE_BOOKMARKまたは2、あるいはPUBLIC_BOOKMARKまたは1)のいずれか


例1

次の例に、PREPARE_URLファンクションを使用して、有効なSESSIONレベルのチェックサム引数が指定されたURLを戻す方法を示します。このURLによって、P1_ITEMページ・アイテムの値がxyzに設定されます。

DECLARE
    l_url varchar2(2000);
    l_app number := v('APP_ID');
    l_session number := v('APP_SESSION');
BEGIN
    l_url := APEX_UTIL.PREPARE_URL(
        p_url => 'f?p=' || l_app || ':1:'||l_session||'::NO::P1_ITEM:xyz',
        p_checksum_type => 'SESSION');
END;

例2

次の例に、PREPARE_URLファンクションを使用して、セッションIDが0 (ゼロ)のURLを戻す方法を示します。f?p URL (アンカー)を生成する「PL/SQL動的コンテンツ」リージョンでは、PREPARE_URLをコールして、ゼロ・セッションID機能が使用されている場合、ユーザーが(認証されていない)パブリック・ユーザーの場合およびターゲット・ページがカレント・アプリケーションのパブリック・ページである場合にセッションIDが0 (ゼロ)に設定されることを確認します。

htp.p(APEX_UTIL.PREPARE_URL(p_url => 'f?p=' || :APP_ID || ':10:'|| :APP_SESSION
||'::NO::P10_ITEM:ABC');

この目的でPREPARE_URLを使用する場合は、p_url_charsetおよびp_checksum_type引数を省略できます。ただし、セッション・ステート保護機能とゼロ・セッションID機能の両方を適用できる場合は、これらの引数を使用できます。


参照:

「セッションIDにゼロを使用したブックマークの容易化」

PUBLIC_CHECK_AUTHORIZATIONファンクション

セキュリティ・スキーム名を指定すると、このファンクションによってカレント・ユーザーがセキュリティ・チェックを通過するかどうかが判断されます。

構文

APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION (
    p_security_scheme    IN    VARCHAR2) 
RETURN BOOLEAN;

パラメータ

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

表21-70 PUBLIC_CHECK_AUTHORIZATIONのパラメータ

パラメータ 説明

p_security_name

ユーザーがセキュリティ・チェックを通過するかどうかを判断するセキュリティ・スキームの名前


次の例に、PUBLIC_CHECK_AUTHORIZATIONファンクションを使用して、my_auth_scheme認証スキームに定義されているチェックをカレント・ユーザーが通過するかどうかを確認する方法を示します。

DECLARE
    l_check_security  BOOLEAN;
BEGIN
    l_check_security := APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION('my_auth_scheme');
END;

PURGE_REGIONS_BY_APPプロシージャ

アプリケーションのすべてのキャッシュされたリージョンを削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_APP (
    p_application IN NUMBER);

パラメータ

表21-71では、PURGE_REGIONS_BY_APPで使用可能なパラメータについて説明します。

表21-71 PURGE_REGIONS_BY_APPのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)


次の例に、APEX_UTIL.PURGE_REGIONS_BY_APPを使用して、アプリケーション番号123に対してキャッシュされたすべてのリージョンを削除する方法を示します。

BEGIN
    APEX_UTIL.PURGE_REGIONS_BY_APP(p_application=>123);
END;

PURGE_REGIONS_BY_NAMEプロシージャ

アプリケーションID、ページ番号およびリージョン名で識別されるリージョンに対してキャッシュされたすべての値を削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_NAME (
     p_application IN NUMBER,
     p_page        IN NUMBER,
     p_region_name IN VARCHAR2);

パラメータ

表21-72では、PURGE_REGIONS_BY_NAMEで使用可能なパラメータについて説明します。

表21-72 PURGE_REGIONS_BY_NAMEのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)

p_page

削除されるリージョンを含んだページ番号

p_region_name

削除されるリージョンの名前。


次の例に、PURGE_REGIONS_BY_NAMEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンmy_cached_regionに対してキャッシュされたすべての値を削除する方法を示します。

BEGIN
    APEX_UTIL.PURGE_REGIONS_BY_NAME(
        p_application => :APP_ID,
        p_page => 1,
        p_region_name => 'my_cached_region');
END;

PURGE_REGIONS_BY_PAGEプロシージャ

アプリケーションおよびページによってキャッシュされたリージョンすべてを削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_PAGE (
     p_application IN NUMBER,
     p_page     IN NUMBER);

パラメータ

表21-73では、PURGE_REGIONS_BY_PAGEで使用可能なパラメータについて説明します。

表21-73 PURGE_REGIONS_BY_PAGEのパラメータ

パラメータ 説明

p_application

アプリケーションの識別番号(ID)

p_page

リージョンを含んだページの識別番号


次の例に、PURGE_REGIONS_BY_PAGEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンに対してキャッシュされたすべての値を削除する方法を示します。

BEGIN
    APEX_UTIL.PURGE_REGIONS_BY_PAGE(
        p_application => :APP_ID,
        p_page => 1);
END;

REDIRECT_URLプロシージャ

このプロシージャはowa_util.redirect_urlをコールして、ブラウザに新しいURLにリダイレクトするよう伝えます。このプロシージャは、その後、自動的にapex_application.stop_apex_engineをコールして、Application Expressアプリケーションが処理を続けないよう中断します。

構文

APEX_UTIL.REDIRECT_URL (
    p_url              in varchar2,
    p_reset_htp_buffer in boolean default true );

パラメータ

表21-74に、REDIRECT_URLプロシージャで使用可能なパラメータを示します。

表21-74 REDIRECT_URLのパラメータ

パラメータ 説明

p_url

ブラウザによってリクエストされるURL。

p_reset_htp_buffer

ブラウザが新しいURLへのリダイレクトを理解し、HTPバッファにすでに書き込まれたデータによって混乱しないようにするため、TRUEに設定してHTPバッファをリセットします。アプリケーションに、応答時に使用する独自のクッキーがある場合は、FALSEに設定します。


次の例では、ブラウザがhttp://www.oracle.comにリダイレクトして、それ以降の処理をすぐに停止します。

apex_util.redirect_url (
    p_url => 'http://www.oracle.com/' );

REMOVE_PREFERENCEプロシージャ

このプロシージャは、指定したユーザーのプリファレンスを削除します。

構文

APEX_UTIL.REMOVE_PREFERENCE(
    p_preference    IN    VARCHAR2 DEFAULT NULL,
    p_user          IN    VARCHAR2 DEFAULT V('USER'));

パラメータ

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

表21-75 REMOVE_PREFERENCEのパラメータ

パラメータ 説明

p_preference

削除するプリファレンスの名前

p_user

プリファレンス定義の対象ユーザー


次の例に、REMOVE_PREFERENCEプロシージャを使用して、現在認証されているユーザーのプリファレンスdefault_viewを削除する方法を示します。

BEGIN
    APEX_UTIL.REMOVE_PREFERENCE(
        p_preference => 'default_view',
        p_user       => :APP_USER);    
END;

参照:

「GET_PREFERENCEファンクション」「SET_PREFERENCEプロシージャ」および『Oracle Application Express管理ガイド』の「セッション・ステートおよびユーザー・プリファレンスの管理」

REMOVE_SORT_PREFERENCESプロシージャ

このプロシージャは、ユーザーの列ヘッダーのソート・プリファレンスの値を削除します。

構文

APEX_UTIL.REMOVE_SORT_PREFERENCES (
    p_user  IN   VARCHAR2 DEFAULT V('USER'));

パラメータ

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

表21-76 REMOVE_SORT_PREFERENCESのパラメータ

パラメータ 説明

p_user

ソート・プリファレンスを削除するユーザーを指定します


次の例に、REMOVE_SORT_PREFERENCESプロシージャを使用して、現在認証されているユーザーの列ヘッダーのソート・プリファレンスを削除する方法を示します。

BEGIN
    APEX_UTIL.REMOVE_SORT_PREFERENCES(:APP_USER);
END;

REMOVE_USERプロシージャ

このプロシージャは、主キーまたはユーザー名で指定したユーザー・アカウントを削除します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.REMOVE_USER(
    p_user_id   IN NUMBER,
    p_user_name IN VARCHAR2);

パラメータ

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

表21-77 REMOVE_USERのパラメータ

パラメータ 説明

p_user_id

ユーザー・アカウント・レコードの数値の主キー

p_user_name

ユーザー・アカウントのユーザー名


次の例に、REMOVE_USERプロシージャを使用してユーザー・アカウントを削除する方法を示します。まず(p_user_idパラメータを使用して)主キーに基づいて、次に(p_user_nameパラメータを使用して)ユーザー名に基づいて削除します。

BEGIN
    APEX_UTIL.REMOVE_USER(p_user_id=> 99997);
END;

BEGIN
    APEX_UTIL.REMOVE_USER(p_user_name => 'FRANK');
END;

RESET_AUTHORIZATIONSプロシージャ

Oracle Application Expressは、パフォーマンスを向上させるために、認可スキームの評価後、その結果をキャッシュします。このプロシージャを使用すると、キャッシュを元に戻して、次にページ表示または受入れ処理中に認可スキームが適用された際に各認可スキームの再検証を要求できます。このプロシージャは、ユーザーがアプリケーション内で自らの信頼性(認可プロファイル)を変更できるようにする場合に使用できます。

構文

APEX_UTIL.RESET_AUTHORIZATIONS; 

パラメータ

なし。

次の例に、RESET_AUTHORIZATIONSプロシージャを使用して認証スキームのキャッシュをクリアする方法を示します。

BEGIN
    APEX_UTIL.RESET_AUTHORIZATIONS;
END;

RESET_PWプロシージャ

このプロシージャは、指定したユーザーのパスワードを再設定し、そのパスワードをメッセージとして現行のワークスペース内の指定したアカウントのアドレスに電子メールを送信します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.RESET_PW(
    p_user IN VARCHAR2,
    p_msg  IN VARCHAR2);

パラメータ

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

表21-78 RESET_PWのパラメータ

パラメータ 説明

p_user

ユーザー・アカウントのユーザー名

p_msg

ユーザーに電子メール送信するメッセージ・テキスト


次の例に、RESET_PWプロシージャを使用してユーザーFRANKのパスワードをリセットする方法を示します。

BEGIN
    APEX_UTIL.RESET_PW(
        p_user => 'FRANK',
        p_msg => 'Contact help desk at 555-1212 with questions');
END;

SAVEKEY_NUMファンクション

このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_num)を、ファンクションKEYVAL_NUMを使用して取得できるように設定します。

構文

APEX_UTIL.SAVEKEY_NUM(
    p_val IN NUMBER)
RETURN NUMBER;

パラメータ

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

表21-79 SAVEKEY_NUMのパラメータ

パラメータ 説明

p_val

保存する数値


次の例に、SAVEKEY_NUMファンクションを使用して、wwv_flow_utilities.g_val_numパッケージ変数の値を10に設定する方法を示します。

DECLARE
    VAL NUMBER;
BEGIN
    VAL := APEX_UTIL.SAVEKEY_NUM(p_val => 10);
END;

SAVEKEY_VC2ファンクション

このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_vc2)を、ファンクションKEYVAL_VC2を使用して取得できるように設定します。

構文

APEX_UTIL.SAVEKEY_VC2(
    p_val IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-80 SAVEKEY_VC2のパラメータ

パラメータ 説明

p_val

保存するVARCHAR2の値


次の例に、SAVEKEY_VC2ファンクションを使用して、wwv_flow_utilities.g_val_vc2パッケージ変数の値を'XXX'に設定する方法を示します。

DECLARE
    VAL VARCHAR2(4000);
BEGIN
    VAL := APEX_UTIL.SAVEKEY_VC2(p_val => 'XXX');
END;

SET_ATTRIBUTEプロシージャ

このプロシージャは、Application Expressアカウント表内のユーザーのいずれかの属性値の値(1から10)を設定します。

構文

APEX_UTIL.SET_ATTRIBUTE( 
    p_userid           IN NUMBER, 
    p_attribute_number IN NUMBER,
    p_attribute_value  IN VARCHAR2); 

パラメータ

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

表21-81 SET_ATTRIBUTEのパラメータ

パラメータ 説明

p_userid

ユーザー・アカウントの数値のID

p_attribute_number

ユーザー・レコードの属性番号(1から10)

p_attribute_value

ユーザー・レコードに設定する、p_attribute_numberで指定した属性の値


次の例に、SET_ATTRIBUTEプロシージャを使用して、値'foo'を指定してユーザーFRANKに対して番号1の属性を設定する方法を示します。

DECLARE  
    VAL VARCHAR2(4000);
BEGIN 
    APEX_UTIL.SET_ATTRIBUTE ( 
        p_userid => apex_util.get_user_id(p_username => 'FRANK'), 
        p_attribute_number => 1, 
        p_attribute_value => 'foo'); 
END; 

SET_AUTHENTICATION_RESULTプロシージャ

このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。


参照:

『Oracle Application Express管理ガイド』の「ワークスペース内のアクティビティの監視」

構文

APEX_UTIL.SET_AUTHENTICATION_RESULT(
    p_code IN NUMBER);

パラメータ

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

表21-82 SET_AUTHENTICATION_RESULTのパラメータ

パラメータ 説明

p_code

開発者が選択するすべての数値。このプロシージャを使用してセッションでこの値が設定された後、APEX_UTIL.GET_AUTHENTICATION_RESULTファンクションを使用して取得できます。


このプロシージャを使用する1つの方法に、アプリケーション認証スキームにプロシージャを含める方法があります。この例は、テキストおよび数値ステータス値がどのようにロギング用に登録できるかについて説明します。この例では、資格証明の検証は実行されません。テキストおよび数値ステータス値がどのようにロギング用に登録できるかについてのみ説明します。このプロシージャを使用するステータス設定は、ワークスペースおよびサイト管理者に対して使用可能であるこのビューのapex_user_access_logビューおよびレポートに表示されることに注意してください。

CREATE OR REPLACE FUNCTION MY_AUTH(
    p_username IN VARCHAR2,
    p_password IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
    APEX_UTIL.SET_CUSTOM_AUTH_STATUS(p_status=>'User:'||p_username||' is back.');
    IF UPPER(p_username) = 'GOOD' THEN
        APEX_UTIL.SET_AUTHENTICATION_RESULT(24567);
        RETURN TRUE;
    ELSE
        APEX_UTIL.SET_AUTHENTICATION_RESULT(-666);
        RETURN FALSE;
    END IF;
END;

SET_BUILD_OPTION_STATUSプロシージャ

このプロシージャは、指定されたアプリケーションのビルド・オプションのステータスを変更します。

構文

apex_util.set_build_option_status(p_application_id IN NUMBER,
                                  p_id IN NUMBER,
                                  p_build_status IN VARCHAR2);

パラメータ

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

表21-83 SET_BUILD_OPTION_STATUSのパラメータ

パラメータ 説明

p_application_id

共有コンポーネントの下にビルド・オプションを所有するアプリケーションのID。

p_id

アプリケーションのビルド・オプションのID。

p_build_status

ビルド・オプションの新しいステータス。可能な値は、INCLUDEおよびEXCLUDE(いずれも大文字)です。


次の例に、SET_BUILD_OPTION_STATUSプロシージャを使用して、ビルド・オプションの現在のステータスを変更する方法を示します。

BEGIN
APEX_UTIL.SET_BUILD_OPTION_STATUS(
    P_APPLICATION_ID => 101,
    P_ID => 245935500311121039, P_BUILD_STATUS=>'INCLUDE');
 
END;

SET_CUSTOM_AUTH_STATUSプロシージャ

このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。


参照:

『Oracle Application Express管理ガイド』の「ワークスペース内のアクティビティの監視」

構文

APEX_UTIL.SET_CUSTOM_AUTH_STATUS(
    p_status  IN VARCHAR2);

パラメータ

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

表21-84 SET_CUSTOM_AUTH_STATUSのパラメータ

パラメータ 説明

p_status

認証試行の結果を示す開発者が選択したすべてのテキスト(最大4,000字)


SET_CUSTOM_AUTH_STATUSプロシージャを使用する1つの方法に、アプリケーション認証スキームをプロシージャに含める方法があります。この例は、テキストおよび数値ステータス値がどのようにロギング用に登録できるかについて説明します。資格証明の認証は実行されないことに注意してください。このプロシージャを使用するステータス設定は、ワークスペースおよびサイト管理者に対して使用可能なこのビューのapex_user_access_logビューおよびレポートに表示されます。

CREATE OR REPLACE FUNCTION MY_AUTH(
    p_username IN VARCHAR2, 
    p_password IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
    APEX_UTIL.SET_CUSTOM_AUTH_STATUS(p_status=>'User:'||p_username||' is back.');
    IF UPPER(p_username) = 'GOOD' THEN
        APEX_UTIL.SET_AUTHENTICATION_RESULT(24567);
        RETURN TRUE;
    ELSE
        APEX_UTIL.SET_AUTHENTICATION_RESULT(-666);
        RETURN FALSE;
    END IF;
END;

SET_EDITIONプロシージャ

このプロシージャは、現在のページ・ビューまたはページ送信で解析されたすべてのアプリケーションSQLで使用されるエディションの名前を設定します。

構文

APEX_UTIL.SET_EDITION(
    p_edition IN VARCHAR2);

パラメータ

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

表21-85 SET_EDITIONパラメータ

パラメータ 説明

p_edition

エディション名。


次の例は、SET_EDITIONプロシージャの使用方法を示しています。現在のページ・ビューのデータベース・セッションのエディション名を設定します。

BEGIN
    APEX_UTIL.SET_EDITION( P_EDITION => 'Edition1' );
END;

注意:

エディション・ベースの再定義のサポートは、バージョン11.2.0.1以上のデータベースでのみ使用可能です。

SET_EMAILプロシージャ

このプロシージャは、新しい電子メール・アドレスを使用してユーザー・アカウントを更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_EMAIL(
    p_userid IN NUMBER,
    p_email  IN VARCHAR2);

パラメータ

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

表21-86 SET_EMAILのパラメータ

パラメータ 説明

p_userid

ユーザー・アカウントの数値のID

p_email

ユーザー・アカウントに保存する電子メール・アドレス


次の例に、SET_EMAILプロシージャを使用して、EMAILの値をユーザーFRANKの'frank.scott@somewhere.com'に設定する方法を示します。

BEGIN
    APEX_UTIL.SET_EMAIL(
        p_userid  => APEX_UTIL.GET_USER_ID('FRANK'),
        p_email   => 'frank.scott@somewhere.com');
END;

SET_FIRST_NAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいFIRST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_FIRST_NAME(
    p_userid      IN NUMBER,
    p_first_name  IN VARCHAR2);

パラメータ

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

表21-87 SET_FIRST_NAMEのパラメータ

パラメータ 説明

p_userid

ユーザー・アカウントの数値のID

p_first_name

ユーザー・アカウントに保存するFIRST_NAME


次の例に、SET_FIRST_NAMEプロシージャを使用して、FIRST_NAMEの値をユーザーFRANKの'FRANK'に設定する方法を示します。

BEGIN     
    APEX_UTIL.SET_FIRST_NAME(
        p_userid       => APEX_UTIL.GET_USER_ID('FRANK'),
        p_first_name   => 'FRANK');
END;

SET_LAST_NAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいLAST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_LAST_NAME(
    p_userid      IN NUMBER,
    p_last_name   IN VARCHAR2);

パラメータ

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

表21-88 SET_LAST_NAMEのパラメータ

パラメータ 説明

p_userid

ユーザー・アカウントの数値のID

p_last_name

ユーザー・アカウントに保存するLAST_NAME


次の例に、SET_LAST_NAMEプロシージャを使用して、LAST_NAMEの値をユーザーFRANKの'SMITH'に設定する方法を示します。

BEGIN     
    APEX_UTIL.SET_LAST_NAME(
        p_userid       => APEX_UTIL.GET_USER_ID('FRANK'),
        p_last_name   => 'SMITH');
END;

SET_PREFERENCEプロシージャ

このプロシージャは、ユーザーのカレント・セッション以降に保持されるプリファレンスを設定します。

構文

APEX_UTIL.SET_PREFERENCE (
    p_preference   IN    VARCHAR2 DEFAULT NULL,
    p_value        IN    VARCHAR2 DEFAULT NULL,
    p_user         IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-89 SET_PREFERENCEのパラメータ

パラメータ 説明

p_preference

プリファレンスの名前(大/小文字の区別あり)

p_value

プリファレンスの値

p_user

プリファレンスが設定されるユーザー


次の例に、SET_PREFERENCEプロシージャを使用して、default_viewというプリファレンスを現在認証されているユーザーのセッションを超えて存続する値'WEEKLY'に設定する方法を示します。

BEGIN
    APEX_UTIL.SET_PREFERENCE(        
        p_preference => 'default_view',
        p_value      => 'WEEKLY',      
        p_user       => :APP_USER); 
END;

SET_SECURITY_GROUP_IDプロシージャ

このプロシージャは、バッチ・モードでメール・パッケージを利用しやすくするために、apex_util.find_security_group_idで使用します。このプロシージャは、スキーマが複数のワークスペースに関連付けられている場合に特に便利です。たとえば、夜間ジョブで実行されるプロシージャを作成して、すべての未処理のタスクに電子メールを送信することができます。

構文

APEX_UTIL.SET_SECURITY_GROUP_ID ( 
    p_security_group_id  IN NUMBER);

パラメータ

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

表21-90 SET_SECURITY_GROUP_IDパラメータ

パラメータ 説明

p_security_group_id

これは、作業中のワークスペースのセキュリティ・グループIDです。


この例では、過去1日にタスクを割り当てた各ユーザーにアラートを送信します。

create or replace procedure new_tasks
is
    l_workspace_id      number;
    l_subject           varchar2(2000);
    l_body              clob;
    l_body_html         clob;
begin
    l_workspace_id := apex_util.find_security_group_id (p_workspace => 'PROJECTS');
    apex_util.set_security_group_id (p_security_group_id => l_workspace_id);
 
    l_body := ' ';
    l_subject := 'You have new tasks';
    for c1 in (select distinct(p.email_address) email_address, p.user_id
                 from teamsp_user_profile p, teamsp_tasks t
                where p.user_id = t.assigned_to_user_id
                  and t.created_on > sysdate - 1
                  and p.email_address is not null ) loop
        l_body_html := '<p />The following tasks have been added.';
        for c2 in (select task_name, due_date
                     from teamsp_tasks
                    where assigned_to_user_id = c1.user_id
                      and created_on > sysdate - 1 ) loop
            l_body_html := l_body_html || '<p />Task: '||c2.task_name||', due '||c2.due_date;
        end loop;
apex_mail.send (
            p_to        => c1.email_address,
            p_from      => c1.email_address,
            p_body      => l_body,
            p_body_html => l_body_html,
            p_subj      => l_subject );
    end loop;
end;

SET_SESSION_HIGH_CONTRAST_OFFプロシージャ

このプロシージャは、現在のセッションのハイ・コントラスト・モードをオフにします。

構文

APEX_UTIL.SET_SESSION_HIGH_CONTRAST_OFF;

パラメータ

なし。

この例では、現在のセッションのハイ・コントラスト・モードはオフです。

BEGIN
    apex_util.set_session_high_contrast_off;
END;

SET_SESSION_HIGH_CONTRAST_ONプロシージャ

このプロシージャは、現在のセッションのハイ・コントラスト・モードをオンにします。

構文

APEX_UTIL.SET_SESSION_HIGH_CONTRAST_ON;

パラメータ

なし。

この例では、現在のセッションがハイ・コントラスト・モードになります。

BEGIN
    apex_util.set_session_high_contrast_on;
END;

SET_SESSION_LANGプロシージャ

このプロシージャは、Application Expressのカレント・セッションで、現在のユーザーに使用する言語を設定します。言語は有効なIANA言語名である必要があります。

構文

APEX_UTIL.SET_SESSION_LANG(
    p_lang IN VARCHAR2);

パラメータ

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

表21-91 SET_SESSION_LANGパラメータ

パラメータ 説明

p_lang

これはIANA言語コードです。en、de、de-at、zh-cn、pt-brなどがあります。


この例は、SET_SESSION_LANGプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーの言語を設定します。

BEGIN
    APEX_UTIL.SET_SESSION_LANG( P_LANG => 'en');
END;

SET_SESSION_LIFETIME_SECONDSプロシージャ

このプロシージャは、現在のセッションの「最大セッションの長さ」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてセッションの存続期間を動的に短縮また延長できます。

構文

APEX_UTIL.SET_SESSION_LIFETIME_SECONDS (
    p_seconds  IN    NUMEBER,
    p_scope    IN    VARCHAR2 DEFAULT 'SESSION');

パラメータ

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

表21-92 SET_SESSION_LIFETIME_SECONDSのパラメータ

パラメータ 説明

p_seconds

このアプリケーションで使用されるセッションが存在可能な秒数を示す正の整数。

p_scope

このパラメータは廃止されています。このプロシージャは常に、セッション全体の存続期間を設定します。


例1

次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を7200秒(2時間)に設定する方法を示します。

p_scope入力パラメータで'SESSION'のデフォルト値が使用できるようになったため、次の例はカレント・セッションを使用するすべてのアプリケーションで実際に利用できます。複数のApplication Expressアプリケーションで共通の認証スキームが使用され、それらのアプリケーションが共通のセッションでスイートとして動作するように設計されている場合は、このユースケースが最も一般的なユースケースとなります。

BEGIN
   APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 7200);
END;

例2

次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を3600秒(1時間)に設定する方法を示します。

BEGIN
    APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 3600); 
END;

SET_SESSION_MAX_IDLE_SECONDSプロシージャ

カレント・セッションに対するカレント・アプリケーションの「最大セッション・アイドル時間」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてページ・リクエスト間で許容される最大アイドル時間を動的に短縮または延長できます。

構文

APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS (
    p_seconds  IN    NUMEBER,
    p_scope    IN    VARCHAR2 DEFAULT 'SESSION');

パラメータ

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

表21-93 SET_SESSION_MAX_IDLE_SECONDSのパラメータ

パラメータ 説明

p_seconds

ページ・リクエスト間で許容される秒数を示す正の整数。

p_scope

このパラメータは廃止されています。このプロシージャは常に、セッション全体の存続期間を設定します。


例1

次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を1200秒(20分)に設定する方法を示します。次の例は、カレント・セッションを使用するすべてのアプリケーションに適用されます。

BEGIN
   APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 1200);
END;

例2

次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を600秒(10分)に設定する方法を示します。次の例は、カレント・セッションを使用するすべてのアプリケーションに適用されます。

BEGIN
    APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 600); 
END;

SET_SESSION_SCREEN_READER_OFFプロシージャ

このプロシージャは、現在のセッションのスクリーン・リーダー・モードをオフにします。

構文

APEX_UTIL.SET_SESSION_SCREEN_READER_OFF;

パラメータ

なし

この例では、カレント・セッションが標準モードになります。

BEGIN
    apex_util.set_session_screen_reader_off;
END;

SET_SESSION_SCREEN_READER_ONプロシージャ

このプロシージャは、カレント・セッションをスクリーン・リーダー・モードにします。

構文

APEX_UTIL.SET_SESSION_SCREEN_READER_ON;

パラメータ

なし

この例では、カレント・セッションがスクリーン・リーダー・モードになります。

BEGIN
    apex_util.set_session_screen_reader_on;
END;

SET_SESSION_STATEプロシージャ

このプロシージャは、現在のOracle Application Expressセッションのセッション・ステートを設定します。

構文

APEX_UTIL.SET_SESSION_STATE (
    p_name     IN    VARCHAR2 DEFAULT NULL,
    p_value    IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-94 SET_SESSION_STATEのパラメータ

パラメータ 説明

p_name

セッション・ステートを設定する、アプリケーション・レベルまたはページ・レベルのアイテムの名前

p_value

設定するセッション・ステートの値


次の例に、SET_SESSION_STATEプロシージャを使用して、アイテムmy_itemの値をカレント・セッションの'myvalue'に設定する方法を示します。

BEGIN
    APEX_UTIL.SET_SESSION_STATE('my_item','myvalue');
END;

参照:

「GET_SESSION_STATEファンクション」「GET_NUMERIC_SESSION_STATEファンクション」および『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「セッション・ステートの管理の理解」

SET_SESSION_TERRITORYプロシージャ

このプロシージャは、Application Expressのカレント・セッションで、現在のユーザーに使用する地域を設定します。地域名は有効なOracle地域である必要があります。

構文

APEX_UTIL.SET_SESSION_TERRITORY(
    p_territory IN VARCHAR2);

パラメータ

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

表21-95 SET_SESSION_TERRITORYのパラメータ

パラメータ 説明

p_territory

有効なOracle地域名。AMERICA、UNITED KINGDOM、ISRAEL、AUSTRIA、UNITED ARAB EMIRATESなどがあります。


この例は、SET_SESSION_TERRITORYプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーの地域を設定します。

BEGIN
    APEX_UTIL.SET_SESSION_TERRITORY( P_TERRITORY => 'UNITED KINGDOM');
END;

SET_SESSION_TIME_ZONEプロシージャ

このプロシージャは、Application Expressのカレント・セッションにおける現在のユーザーに使用するタイムゾーンを設定します。

構文

APEX_UTIL.SET_SESSION_TIME_ZONE(
    p_time_zone IN VARCHAR2);

パラメータ

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

表21-96 SET_SESSION_TIME_ZONEパラメータ

パラメータ 説明

p_timezone

時間と分で構成されるタイムゾーン値。+09:00、04:00、-05:00などがあります。


この例は、SET_SESSION_TIME_ZONEプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーのタイムゾーンを設定します。

BEGIN
    APEX_UTIL.SET_SESSION_TIME_ZONE( P_TIME_ZONE => '-05:00');
END;

SET_USERNAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいUSER_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_USERNAME(
    p_userid   IN NUMBER,
    p_username IN VARCHAR2);

パラメータ

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

表21-97 SET_USERNAMEのパラメータ

パラメータ 説明

p_userid

ユーザー・アカウントの数値のID

p_username

ユーザー・アカウントに保存するUSER_NAME


次の例に、SET_USERNAMEプロシージャを使用して、USERNAMEの値をユーザーFRANKの'USER-XRAY'に設定する方法を示します。

BEGIN     
    APEX_UTIL.SET_USERNAME(
        p_userid     => APEX_UTIL.GET_USER_ID('FRANK'),
        P_username   => 'USER-XRAY');
END;

SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャ

このプロシージャは、モードのオンまたはオフを切り替える現在のページへのリンクを表示します。たとえば、標準モードの場合、このファンクションによって、クリックするとハイ・コントラスト・モードをオンに切り替えるリンクが表示されます。

構文

APEX_UTIL.SHOW_HIGH_CONTRAST_MODE_TOGGLE (
    p_on_message  in varchar2 default null,
    p_off_message in varchar2 default null);

パラメータ

表21-98に、SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャで使用可能なパラメータを示します。

表21-98 SHOW_HIGH_CONTRAST_MODE_TOGGLEのパラメータ

パラメータ 説明

p_on_message

標準モードの場合に、ハイ・コントラスト・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオンに設定」テキストが表示されます。

p_off_message

ハイ・コントラスト・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオフに設定」テキストが表示されます。


標準モードで実行中の場合、このプロシージャによって「ハイ・コントラスト・モードをオンに設定」というリンクが表示され、リンクをクリックすると、現在のページがリフレッシュされ、ハイ・コントラスト・モードがオンになります。ハイ・コントラスト・モードで実行中の場合、リンク「ハイ・コントラスト・モードをオフに設定」が表示され、リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
    apex_util.show_high_contrast_mode_toggle;
END;

注意:

また、このトグルに戻されるデフォルトのリンク・テキストを変更するための、アプリケーション・レベルでオーバーライドできる翻訳可能なシステム・メッセージが2つあります。これには次のものがあります。
  • APEX.SET_HIGH_CONTRAST_MODE_OFF - デフォルト・テキスト = ハイ・コントラスト・モードをオフに設定

  • APEX.SET_HIGH_CONTRAST_MODE_ON - デフォルト・テキスト = ハイ・コントラスト・モードをオンに設定


SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ

このプロシージャは、モードのオンまたはオフを切り替える現在のページへのリンクを表示します。たとえば、標準モードの場合、このファンクションによって、クリックするとスクリーン・リーダー・モードをオンに切り替えるリンクが表示されます。

構文

APEX_UTIL.SHOW_SCREEN_READER_MODE_TOGGLE (
    p_on_message  IN VARCHAR2 DEFAULT NULL,
    p_off_message IN VARCHAR2 DEFAULT NULL)

パラメータ

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

表21-99 SHOW_SCREEN_READER_MODE_TOGGLEパラメータ

パラメータ 説明

p_on_message

標準モードの場合に、スクリーン・リーダー・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオンに設定」テキストが表示されます。

p_off_message

スクリーン・リーダー・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオフに設定」テキストが表示されます。


標準モードで実行中の場合、このプロシージャによって「スクリーン・リーダー・モードをオンに設定」というリンクが表示され、リンクをクリックすると、現在のページがリフレッシュされ、スクリーン・リーダー・モードがオンになります。スクリーン・リーダー・モードで実行中の場合、リンク'Set Screen Reader Mode Off'が表示されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
    apex_util.show_screen_reader_mode_toggle;
END;

STRING_TO_TABLEファンクション

文字列を指定すると、このファンクションによって型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列が戻されます。この配列はVARCHAR2(32767)表です。

構文

APEX_UTIL.STRING_TO_TABLE (
    p_string       IN VARCHAR2,
    p_separator    IN VARCHAR2 DEFAULT ':') 
    RETURN APEX_APPLICATION_GLOBAL.VC_ARR2;

パラメータ

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

表21-100 STRING_TO_TABLEのパラメータ

パラメータ 説明

p_string

型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表に変換される文字列

p_separator

文字列のセパレータ。(デフォルトはコロン)


次の例に、STRING_TO_TABLEファンクションを使用する方法を示します。このファンクションは、p_stringパラメータの文字列'One:Two:Three'を渡され、型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列を戻します。この配列は3つの要素を含み、位置1の要素には値'One'、位置2の要素には値'Two'、位置3の要素には値'Three'が含まれています。次に、このファンクションは、HTP.Pファンクション・コールを使用してこのPL/SQL配列を出力します。

DECLARE
    l_vc_arr2    APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
    l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE('One:Two:Three');
    FOR z IN 1..l_vc_arr2.count LOOP
        htp.p(l_vc_arr2(z));
    END LOOP;
END;

STRONG_PASSWORD_CHECKプロシージャ

このプロシージャは、提示されたパスワードがOracle Application Expressサイト管理者によって定義されたパスワード強度要件を満たすかどうかに基づいて、Boolean OUT値を戻します。

構文

APEX_UTIL.STRONG_PASSWORD_CHECK(
    p_username                    IN  VARCHAR2,
    p_password                    IN  VARCHAR2,
    p_old_password                IN  VARCHAR2,
    p_workspace_name              IN  VARCHAR2,
    p_use_strong_rules            IN  BOOLEAN,
    p_min_length_err              OUT BOOLEAN,
    p_new_differs_by_err          OUT BOOLEAN,
    p_one_alpha_err               OUT BOOLEAN,
    p_one_numeric_err             OUT BOOLEAN,
    p_one_punctuation_err         OUT BOOLEAN,
    p_one_upper_err               OUT BOOLEAN,
    p_one_lower_err               OUT BOOLEAN,
    p_not_like_username_err       OUT BOOLEAN,
    p_not_like_workspace_name_err OUT BOOLEAN,
    p_not_like_words_err          OUT BOOLEAN,
    p_not_reusable_err            OUT BOOLEAN);

パラメータ

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

表21-101 STRONG_PASSWORD_CHECKのパラメータ

パラメータ 説明

p_username

現行のワークスペース内のアカウントを識別するユーザー名

p_password

パスワードの強度ルールを基準にチェックするパスワード

p_old_password

アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます)

p_workspace_name

現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます)

p_use_strong_rules

このAPIをコールする場合はFALSEを渡します

p_min_length_err

パスワードが、最小の長さの要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_new_differs_by_err

パスワードが「新しいパスワードは古いパスワードと異なること」という要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_alpha_err

パスワードが、アルファベットを1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_numeric_err

パスワードが、数字を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_punctuation_err

パスワードが、句読記号を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_upper_err

パスワードが、大文字を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_lower_err

パスワードが、小文字を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_like_username_err

パスワードが、ユーザー名を含まないことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_like_workspace_name_err

パスワードが、ワークスペース名を含まないことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_like_words_err

パスワードが、指定された単純な単語を含まないことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_reusable_err

パスワードが、パスワード履歴ルールに基づいて再利用できるかどうかに基づいて、TrueまたはFalseの結果が戻ります。


次の例に、STRONG_PASSWORD_CHECKプロシージャを使用する方法を示します。このプロシージャは、ユーザーSOMEBODYの新しいパスワードfooが、Oracle Application Expressのサイト管理者によって定義されたすべてのパスワードの強度要件を満たしていることをチェックします。いずれかのチェックが失敗した場合(関連するOUTパラメータがTRUEを戻した場合)、この例では、関連メッセージが出力されます。たとえば、Oracle Application Expressのサイト管理者がパスワードには1つ以上の数字が必要であると定義した場合にパスワードfooがチェックされると、p_one_numeric_err OUTパラメータによってTRUEが戻され、「Password must contain at least one numeric character」というメッセージが出力されます。

DECLARE
    l_username                    varchar2(30);
    l_password                    varchar2(30);
    l_old_password                varchar2(30);
    l_workspace_name              varchar2(30);
    l_min_length_err              boolean;
    l_new_differs_by_err          boolean;
    l_one_alpha_err               boolean;
    l_one_numeric_err             boolean;
    l_one_punctuation_err         boolean;
    l_one_upper_err               boolean;
    l_one_lower_err               boolean;
    l_not_like_username_err       boolean;
    l_not_like_workspace_name_err boolean;
    l_not_like_words_err          boolean;
    l_not_reusable_err            boolean;
    l_password_history_days       pls_integer;
BEGIN
    l_username := 'SOMEBODY';
    l_password := 'foo';
    l_old_password := 'foo';
    l_workspace_name := 'XYX_WS';
    l_password_history_days := 
        apex_instance_admin.get_parameter ('PASSWORD_HISTORY_DAYS');
 
    APEX_UTIL.STRONG_PASSWORD_CHECK(
        p_username                    => l_username,
        p_password                    => l_password,
        p_old_password                => l_old_password,
        p_workspace_name              => l_workspace_name,
        p_use_strong_rules            => false,
        p_min_length_err              => l_min_length_err,
        p_new_differs_by_err          => l_new_differs_by_err,
        p_one_alpha_err               => l_one_alpha_err,
        p_one_numeric_err             => l_one_numeric_err,
        p_one_punctuation_err         => l_one_punctuation_err,
        p_one_upper_err               => l_one_upper_err,
        p_one_lower_err               => l_one_lower_err,
        p_not_like_username_err       => l_not_like_username_err,
        p_not_like_workspace_name_err => l_not_like_workspace_name_err,
        p_not_like_words_err          => l_not_like_words_err,
        p_not_reusable_err            => l_not_reusable_err);

    IF l_min_length_err THEN
        htp.p('Password is too short');
    END IF;
 
    IF l_new_differs_by_err THEN
        htp.p('Password is too similar to the old password');
    END IF;
 
    IF l_one_alpha_err THEN
        htp.p('Password must contain at least one alphabetic character');
    END IF;
 
    IF l_one_numeric_err THEN
        htp.p('Password  must contain at least one numeric character');
    END IF;
 
    IF l_one_punctuation_err THEN
        htp.p('Password  must contain at least one punctuation character');
    END IF;
 
    IF l_one_upper_err THEN
        htp.p('Password must contain at least one upper-case character');
    END IF;
 
    IF l_one_lower_err THEN
        htp.p('Password must contain at least one lower-case character');
    END IF;
 
    IF l_not_like_username_err THEN
        htp.p('Password may not contain the username');
    END IF;
 
    IF l_not_like_workspace_name_err THEN
        htp.p('Password may not contain the workspace name');
    END IF;
 
    IF l_not_like_words_err THEN
        htp.p('Password contains one or more prohibited common words');
    END IF;

    IF l_not_reusable_err THEN
        htp.p('Password cannot be used because it has been used for the account within the last '||l_password_history_days||' days.');
    END IF;
END;

参照:

『Oracle Application Express管理ガイド』の「パスワード・ポリシーについて」

STRONG_PASSWORD_VALIDATIONファンクション

このファンクションは、提示されたパスワードがOracle Application Expressサイト管理者によって定義されたパスワード強度要件を満たすかどうかに基づいて、結果を書式化されたHTMLをVARCHAR2の結果で戻します。

構文

FUNCTION STRONG_PASSWORD_VALIDATION(
    p_username                    IN  VARCHAR2,
    p_password                    IN  VARCHAR2,
    P_OLD_PASSWORD                IN  VARCHAR2 DEFAULT NULL,
    P_WORKSPACE_NAME              IN  VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-102 STRONG_PASSWORD_VALIDATIONのパラメータ

パラメータ 説明

p_username

現行のワークスペース内のアカウントを識別するユーザー名

p_password

パスワードの強度ルールを基準にチェックするパスワード

p_old_password

アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます)

p_workspace_name

現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます)


次の例に、STRONG_PASSWORD_VALIDATIONプロシージャを使用する方法を示します。このプロシージャは、ユーザーSOMEBODYの新しいパスワードfooが、Oracle Application Expressのサイト管理者によって定義されたすべてのパスワードの強度要件を満たしていることをチェックします。いずれかのチェックが失敗した場合、この例では、新しいパスワードが要件を満たすことに失敗した詳細を示す書式設定されたHTMLが出力されます。

DECLARE
      l_username                    varchar2(30);
      l_password                    varchar2(30);
      l_old_password                varchar2(30);
      l_workspace_name              varchar2(30);
BEGIN
    l_username := 'SOMEBODY';
    l_password := 'foo';
    l_old_password := 'foo';
    l_workspace_name := 'XYX_WS';

    HTP.P(APEX_UTIL.STRONG_PASSWORD_VALIDATION(
        p_username                    => l_username,
        p_password                    => l_password,
        p_old_password                => l_old_password,
        p_workspace_name              => l_workspace_name));
END;

SUBMIT_FEEDBACKプロシージャ

このプロシージャを使用すると、フィードバックというタイプのページを作成して生成できるページを使用しなくても、フィードバックを送信するプロシージャを記述できます。

構文

APEX_UTIL.SUBMIT_FEEDBACK (
    p_comment          IN VARCHAR2 DEFAULT NULL,
    p_type             IN NUMBER   DEFAULT '1',
    p_application_id   IN VARCHAR2 DEFAULT NULL,
    p_page_id          IN VARCHAR2 DEFAULT NULL,
    p_email            IN VARCHAR2 DEFAULT NULL,
    p_screen_width     IN VARCHAR2 DEFAULT NULL,
    p_screen_height    IN VARCHAR2 DEFAULT NULL,
    p_attribute_01     IN VARCHAR2 DEFAULT NULL,
    p_attribute_02     IN VARCHAR2 DEFAULT NULL,
    p_attribute_03     IN VARCHAR2 DEFAULT NULL,
    p_attribute_04     IN VARCHAR2 DEFAULT NULL,
    p_attribute_05     IN VARCHAR2 DEFAULT NULL,
    p_attribute_06     IN VARCHAR2 DEFAULT NULL,
    p_attribute_07     IN VARCHAR2 DEFAULT NULL,
    p_attribute_08     IN VARCHAR2 DEFAULT NULL,
    p_label_01         IN VARCHAR2 DEFAULT NULL,
    p_label_02         IN VARCHAR2 DEFAULT NULLl,
    p_label_03         IN VARCHAR2 DEFAULT NULL,
    p_label_04         IN VARCHAR2 DEFAULT NULL,
    p_label_05         IN VARCHAR2 DEFAULT NULL,
    p_label_06         IN VARCHAR2 DEFAULT NULL,
    p_label_07         IN VARCHAR2 DEFAULT NULL,
    p_label_08         IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-103 SUBMIT_FEEDBACKパラメータ

パラメータ 説明

p_comment

送信するコメント。

p_type

フィードバックのタイプ(1は一般的なコメント、2は拡張リクエスト、3は不具合)

p_application_id

フィードバックに関連するアプリケーションのID

p_page_id

フィードバックに関連するページのID

p_email

フィードバックを提供するユーザーの電子メール

p_screen_width

フィードバックを提供したときの画面の幅

p_screen_height

フィードバックを提供したときの画面の高さ

p_attribute_01

フィードバックを収集するためのカスタム属性

p_attribute_02

フィードバックを収集するためのカスタム属性

p_attribute_03

フィードバックを収集するためのカスタム属性

p_attribute_04

フィードバックを収集するためのカスタム属性

p_attribute_05

フィードバックを収集するためのカスタム属性

p_attribute_06

フィードバックを収集するためのカスタム属性

p_attribute_07

フィードバックを収集するためのカスタム属性

p_attribute_08

フィードバックを収集するためのカスタム属性

p_label_01

対応するカスタム属性のラベル

p_label_02

対応するカスタム属性のラベル

p_label_03

対応するカスタム属性のラベル

p_label_04

対応するカスタム属性のラベル

p_label_05

対応するカスタム属性のラベル

p_label_06

対応するカスタム属性のラベル

p_label_07

対応するカスタム属性のラベル

p_label_08

対応するカスタム属性のラベル


次の例では、アプリケーション283のページ22に関する不具合を送信します。

begin
    apex_util.submit_feedback (
       p_comment        => 'This page does not render properly for me',
       p_type           => 3,
       p_application_id => 283,
       p_page_id        => 22,
       p_email          => 'user@xyz.corp',
       p_attribute_01   => 'Charting',
       p_label_01       => 'Component' );
end;
/

SUBMIT_FEEDBACK_FOLLOWUPプロシージャ

このプロシージャを使用すると、フィードバックにフォロー・アップを送信できます。

構文

APEX_UTIL.SUBMIT_FEEDBACK_FOLLOWUP (
    p_feedback_id      IN NUMBER,
    p_follow_up        IN VARCHAR2 DEFAULT NULL,
    p_email            IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-104 SUBMIT_FEEDBACK_FOLLOWUPパラメータ

パラメータ 説明

p_feedback_followup

フォロー・アップするフィードバックのID

p_follow_up

フォロー・アップのテキスト

p_email

フォロー・アップを提供するユーザーの電子メール


次の例では、以前に登録したフィードバックにフォロー・アップを送信します。

begin
   apex_util.submit_feedback_followup (
       p_feedback_id    => 12345,
       p_follow_up      => 'I tried this on another instance and it does not work there either',
       p_email          => 'user@xyz.corp' );
end;
/

TABLE_TO_STRINGファンクション

型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表を指定すると、このファンクションによって、指定したセパレータかデフォルトのセパレータ(コロン(:))で区切られた文字列が戻されます。

構文

APEX_UTIL.TABLE_TO_STRING (
    p_table       IN     APEX_APPLICATION_GLOBAL.VC_ARR2,
    p_string      IN     VARCHAR2 DEFAULT ':') 
RETURN VARCHAR2;

パラメータ

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

表21-105 TABLE_TO_STRINGのパラメータ

パラメータ 説明

p_string

文字列のセパレータ。(デフォルトはコロン(:))

p_table

区切られた文字列に変換されるPL/SQL表


次のファンクションは、指定されたcust_idに関連付けられている連絡先名のカンマ区切り文字列を戻します。

create or replace function get_contacts ( 
    p_cust_id  in  number ) 
    return varchar2 
is 
    l_vc_arr2   apex_application_global.vc_arr2; 
    l_contacts  varchar2(32000); 
begin 
 
    select contact_name 
        bulk collect 
        into l_vc_arr2 
        from contacts 
    where cust_id = p_cust_id 
        order by contact_name; 
 
    l_contacts :=  apex_util.table_to_string ( 
                       p_table => l_vc_arr2, 
                       p_string => ', '); 
 
   return l_contacts; 
 
end get_contacts;

UNEXPIRE_END_USER_ACCOUNTプロシージャ

期限切れのエンド・ユーザー・アカウントおよび関連付けられたパスワードを使用可能にして、エンド・ユーザーが開発済アプリケーションにログインできるようにします。

構文

APEX_UTIL.UNEXPIRE_END_USER_ACCOUNT (
    p_user_name IN VARCHAR2);

パラメータ

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

表21-106 UNEXPIRE_END_USER_ACCOUNTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、UNEXPIRE_END_USER_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressエンド・ユーザー・アカウントを更新(有効に)します。このアクションは、開発されたアプリケーションへの認証用にエンド・ユーザーが使用するアカウントを更新します。また、ワークスペースへのログイン用に開発者または管理者が使用するアカウントも更新できます。

このプロシージャは、現行のワークスペースで管理権限を持つユーザーによって実行される必要があります。

BEGIN
    FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
        APEX_UTIL.UNEXPIRE_END_USER_ACCOUNT(p_user_name => c1.user_name);
        htp.p('End User Account:'||c1.user_name||' is now valid.');   
    END LOOP;
END;   

UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ

開発者およびワークスペース管理者のアカウントおよび関連付けられたパスワードを有効にして、開発者または管理者がワークスペースへログインできるようにします。

構文

APEX_UTIL.UNEXPIRE_WORKSPACE_ACCOUNT (
    p_user_name IN VARCHAR2);

パラメータ

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

表21-107 UNEXPIRE_WORKSPACE_ACCOUNTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、UNEXPIRE_WORKSPACE_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressワークスペース管理者のアカウントを更新(有効に)します。このアクションは、開発者または管理者がワークスペースへのログインに使用するアカウントを更新し、開発されたアプリケーションへのエンド・ユーザーの認証に使用するアカウントも更新します。

このプロシージャは、現行のワークスペースで管理権限を持つユーザーによって実行される必要があります。

BEGIN
    FOR c1 IN (select user_name from wwv_flow_users) loop
        APEX_UTIL.UNEXPIRE_WORKSPACE_ACCOUNT(p_user_name => c1.user_name);
        htp.p('Workspace Account:'||c1.user_name||' is now valid.'); 
    END LOOP;
END;   

UNLOCK_ACCOUNTプロシージャ

ユーザーのアカウント・ステータスを「ロック解除済」に設定します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.UNLOCK_ACCOUNT (
     p_user_name IN VARCHAR2); 

パラメータ

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

表21-108 UNLOCK_ACCOUNTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例では、UNLOCK_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースでApplication Expressアカウントをロック解除します。このアクションは、管理者、開発者およびエンド・ユーザーが使用するアカウントをロック解除します。このプロシージャは、現行のワークスペースで管理権限を持つユーザーにより実行される必要があります。

BEGIN
    FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
        APEX_UTIL.UNLOCK_ACCOUNT(p_user_name => c1.user_name);
        htp.p('End User Account:'||c1.user_name||' is now unlocked.');    
    END LOOP;
END;

URL_ENCODEファンクション

特殊文字は、次のようにエンコードされます。

 Special       After 
Characters    Encoding
    %          %25
    +          %2B
  space         +
    .          %2E
    *          %2A
    ?          %3F
    \          %5C
    /          %2F
    >          %3E
    <          %3C
    }          %7B
    {          %7D
    ~          %7E
    [          %5B
    ]          %5D
    '          %60
    ;          %3B
    ?          %3F
    @          %40
    &          %26
    #          %23
    |          %7C
    ^          %5E
    :          %3A
    =          %3D
    $          %24

構文

APEX_UTIL.URL_ENCODE (
    p_url   IN    VARCHAR2) 
    RETURN VARCHAR2;

パラメータ

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

表21-109 URL_ENCODEのパラメータ

パラメータ 説明

p_url

エンコードする文字列


次の例に、URL_ENCODEファンクションを使用する方法を示します。

DECLARE
    l_url  VARCHAR2(255);
BEGIN
    l_url := APEX_UTIL.URL_ENCODE('http://www.myurl.com?id=1&cat=foo');
END;

この例では、次のURLを使用しています。

http://www.myurl.com?id=1&cat=foo

これは、次のように戻されます。

http%3A%2F%2Fwww%2Emyurl%2Ecom%3Fid%3D1%26cat%3Dfoo

WORKSPACE_ACCOUNT_DAYS_LEFTファンクション

開発者またはワークスペース管理者アカウント・パスワードの期限が切れるまでの残りの日数を戻します。このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.WORKSPACE_ACCOUNT_DAYS_LEFT (
    p_user_name IN VARCHAR2)
    RETURN NUMBER;

パラメータ

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

表21-110 WORKSPACE_ACCOUNT_DAYS_LEFTのパラメータ

パラメータ 説明

p_user_name

ユーザー・アカウントのユーザー名


次の例に、WORKSPACE_ACCOUNT_DAYS_LEFTファンクションを使用する方法を示します。現行のワークスペースでApplication Express管理者または開発者のアカウントの期限が切れるまでの残りの日数を検索するために使用できます。

DECLARE
    l_days_left NUMBER;
BEGIN
    FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
        l_days_left := APEX_UTIL.WORKSPACE_ACCOUNT_DAYS_LEFT(p_user_name => 
c1.user_name);
        htp.p('Workspace Account:'||c1.user_name||' expires in '||l_days_left||' days.');    
    END LOOP;
END;