APEX_UTILパッケージは、Oracle Application Express環境でプログラミングする際に使用可能なユーティリティを提供します。APEX_UTILパッケージを使用すると、セッション・ステートの取得と設定、ファイルの取得、ユーザーの認可の確認、ユーザーへの別のステートの再設定、キャッシュ情報の取得とパージおよびユーザーのプリファレンスの取得と設定を行うことができます。
このセクションの構成は次のとおりです。
このファンクションは、ページがユーザーにキャッシュされるように設定されていない場合、指定したアプリケーション・ページがコールを発行したユーザーまたはすべてのユーザーのいずれかに対してキャッシュされた時間および日付を戻します。
構文
APEX_UTIL.CACHE_GET_DATE_OF_PAGE_CACHE (
p_application IN NUMBER,
p_page IN NUMBER)
RETURN DATE;
パラメータ
表1-1に、CACHE_GET_DATE_OF_PAGE_CACHEプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
このファンクションは、ページがユーザーにキャッシュされるように設定されていない場合、指定したリージョンがコールを発行したユーザーまたはすべてのユーザーのいずれかに対してキャッシュされた日付および時間を戻します。
構文
APEX_UTIL.CACHE_GET_DATE_OF_REGION_CACHE (
p_application IN NUMBER,
p_page IN NUMBER,
p_region_name IN VARCHAR2)
RETURN DATE;
パラメータ
表1-2に、CACHE_GET_DATE_OF_REGION_CACHEファンクションで使用可能なパラメータを示します。
表1-2 CACHE_GET_DATE_OF_REGION_CACHEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
アプリケーションの識別番号(ID) |
|
|
ページ番号(ID) |
|
|
リージョン名 |
例
次の例に、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;
このプロシージャは、特定のアプリケーションのすべてのキャッシュされたページおよびリージョンを削除します。
構文
APEX_UTIL.CACHE_PURGE_BY_APPLICATION (
p_application IN NUMBER);
パラメータ
表1-3に、CACHE_PURGE_BY_APPLICATIONプロシージャで使用可能なパラメータを示します。
例
次の例に、CACHE_PURGE_BY_APPLICATIONプロシージャを使用して、現在実行されているアプリケーションに対してキャッシュされているすべてのページおよびリージョンをパージする方法を示します。
BEGIN
APEX_UTIL.CACHE_PURGE_BY_APPLICATION(p_application => :APP_ID);
END;
このプロシージャは、特定のアプリケーションおよびページのキャッシュをパージします。ページ自体がキャッシュされていなくても、ページに1つ以上のキャッシュされたリージョンが含まれている場合は、それらのキャッシュもパージされます。
構文
APEX_UTIL.CACHE_PURGE_BY_PAGE (
p_application IN NUMBER,
p_page IN NUMBER,
p_user_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表1-4に、CACHE_PURGE_BY_PAGEプロシージャで使用可能なパラメータを示します。
表1-4 CACHE_PURGE_BY_PAGEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
アプリケーションの識別番号(ID) |
|
|
ページ番号(ID) |
|
|
キャッシュされたページおよびリージョンと関連付けられたユーザー |
例
次の例に、CACHE_PURGE_BY_PAGEプロシージャを使用して、現在実行されているアプリケーションのページ9のキャッシュをパージする方法を示します。また、p_user_nameパラメータを指定すると、このプロシージャは特定のユーザーのキャッシュによって制限されます(キャッシュがユーザーごとに設定されている場合にのみ当てはまります)。
BEGIN
APEX_UTIL.CACHE_PURGE_BY_PAGE(
p_application => :APP_ID,
p_page => 9);
END;
このプロシージャは、定義済のアクティブな期間を渡した指定したアプリケーションに対してキャッシュされたページおよびリージョンすべてを削除します。ページまたはリージョンをキャッシュする際、アクティブな期間(または「キャッシュ・タイムアウト」)を指定します。一度期間が経過するとキャッシュは使用されなくなるため、キャッシュから使用できないページまたはリージョンを削除します。
構文
APEX_UTIL.CACHE_PURGE_STALE (
p_application IN NUMBER);
パラメータ
表1-5に、CACHE_PURGE_STALEプロシージャで使用可能なパラメータを示します。
例
次の例に、CACHE_PURGE_STALEプロシージャを使用して、現在実行されているアプリケーションのすべての失効ページおよび失効リージョンをパージする方法を示します。
BEGIN
APEX_UTIL.CACHE_PURGE_STALE(p_application => :APP_ID);
END;
このプロシージャは、Application Expressユーザー・アカウントが使用中であることを前提として、現在認証されているユーザーのパスワードを変更します。
構文
APEX_UTIL.CHANGE_CURRENT_USER_PW(
p_new_password IN VARCHAR2);
パラメータ
表1-6に、CHANGE_CURRENT_USER_PWプロシージャで使用可能なパラメータを示します。
例
次の例に、CHANGE_CURRENT_USER_PWプロシージャを使用して、現在認証されているユーザーのパスワードを変更する方法を示します。この例では、Application Expressアカウントが使用されていることを前提としています。
BEGIN
APEX_UTIL.CHANGE_CURRENT_USER_PW ('secret99');
END;
このプロパティがエンド・ユーザー・アカウントに対して有効か無効かを、管理者がチェックできるようにします。このファンクションは、パスワードが初期設定されてユーザーの編集ページの「管理サービス」で変更された後に、アカウント・パスワードを初回使用時に変更する必要がある場合(認証成功後)、TRUEを戻します。アカウントにこのプロパティが含まれていない場合は、FALSEを戻します。
このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。
構文
APEX_UTIL.CHANGE_PASSWORD_ON_FIRST_USE (
p_user_name IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
表1-7に、CHANGE_PASSWORD_ON_FIRST_USEファンクションで使用可能なパラメータを示します。
例
次の例に、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;
このプロシージャは、カレント・セッションに指定したアプリケーションのセッション・ステートを削除します。
構文
APEX_UTIL.CLEAR_APP_CACHE (
p_app_id IN VARCHAR2 DEFAULT NULL);
パラメータ
表1-8に、CLEAR_APP_CACHEプロシージャで使用可能なパラメータを示します。
例
次の例に、CLEAR_APP_CACHEプロシージャを使用して、IDが100のアプリケーションのすべてのカレント・セッションのステートをクリアする方法を示します。
BEGIN
APEX_UTIL.CLEAR_APP_CACHE('100');
END;
このプロシージャは、カレント・セッションに指定したページのセッション・ステートを削除します。
構文
APEX_UTIL.CLEAR_PAGE_CACHE (
p_page IN NUMBER DEFAULT NULL);
パラメータ
表1-9に、CLEAR_PAGE_CACHEプロシージャで使用可能なパラメータを示します。
例
次の例に、CLEAR_PAGE_CACHEプロシージャを使用して、IDが10のページのカレント・セッションのステートをクリアする方法を示します。
BEGIN
APEX_UTIL.CLEAR_PAGE_CACHE('10');
END;
このプロシージャは、カレント・ユーザー・セッションのセッション・ステートおよびアプリケーション・システムのプリファレンスを削除します。セッションIDを再利用し、既存のセッション・ステートを使用せずにアプリケーションを実行する場合にこのプロシージャを実行します。
構文
APEX_UTIL.CLEAR_USER_CACHE;
パラメータ
なし。
例
次の例に、CLEAR_USER_CACHEプロシージャを使用して、カレント・ユーザーのセッションのすべてのセッション・ステートおよびアプリケーション・システムのプリファレンスをクリアする方法を示します。
BEGIN
APEX_UTIL.CLEAR_USER_CACHE;
END;
このプロシージャは、アプリケーション・ビルダーに組み込まれたアプリケーションから外部サイトへのクリックをカウントします。また、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);
パラメータ
表1-10に、COUNT_CLICKプロシージャで使用可能なパラメータを示します。
表1-10 COUNT_CLICKのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
リダイレクト先のURL |
|
|
クリックを分類するためのカテゴリ |
|
|
クリックに関連付けられたセカンダリID (オプション) |
|
|
アプリケーション・ユーザーID (オプション) |
|
|
アプリケーションに関連付けられたワークスペース(オプション) |
例
次の例に、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;
このプロシージャは、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);
パラメータ
表1-11に、CREATE_USERプロシージャで使用可能なパラメータを示します。
表1-11 CREATE_USERプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値の主キー |
|
|
ログインに使用する英数字の名前 |
|
|
情報 |
|
|
情報 |
|
|
情報 |
|
|
電子メール・アドレス |
|
|
クリア・テキストのパスワード |
|
|
|
|
|
コロンで区切られた数値のグループIDのリスト |
|
|
コロンで区切られた開発者権限のリスト。このパラメータで使用可能な値は、次のとおりです。 null: エンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)を作成する場合。 CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL - 開発者権限を持つユーザーを作成する場合。 ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL - ワークスペース管理者および開発者の完全な権限を持つユーザーを作成する場合。 注意: 現在このパラメータの名前は一貫しておらず、 |
|
|
ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。 |
|
|
ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのコロンで区切られたリスト(すべての場合はNULLのまま)。 |
|
|
パスワードが最後に更新された日。作成時に、今日の日付にデフォルト設定されます。 |
|
|
アカウントがロックされているかどうかを示す'Y'または'N'。 |
|
|
ログインに連続して失敗した回数。作成時に、0 (ゼロ)にデフォルト設定されます。 |
|
|
パスワードを初めて使用するときに変更する必要があるかどうかを示す'Y'または'N'。作成時に、'Y'にデフォルト設定されます。 |
|
|
パスワードの変更後にログインが行われたかどうかを'Y'または'N'で示します。作成時に、'N'にデフォルト設定されます。 |
|
|
APIを使用してアクセスできる任意のテキスト |
例1
次の簡単な例では、パスワードがsecret99のNEWUSER1というエンド・ユーザーを作成します。エンド・ユーザーは、開発済アプリケーションに対してのみ認証できることに注意してください。
BEGIN
APEX_UTIL.CREATE_USER(
p_user_name => 'NEWUSER1',
p_web_password => 'secret99');
END;
例2
次の例では、NEWUSER2というワークスペース管理者を作成します。ユーザーNEWUSER2は次のように設定されています。
ワークスペース管理者および開発者の完全な権限を持っている(p_developer_privsパラメータが'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL'に設定されている)。
参照デフォルトMY_SCHEMA(p_default_schemaパラメータが'MY_SCHEMA'に設定されている)およびMY_SCHEMA2(p_allow_access_to_schemasパラメータが'MY_SCHEMA2'に設定されている)の2つのスキーマへのアクセス権を持っている。
最初のログイン時にパスワードを変更する必要がない(p_change_password_on_first_useパラメータが'N'に設定されている)。
最初の追加属性に電話番号が格納されている(p_attribute_01パラメータが'123 456 7890'に設定されている)。
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;
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);
パラメータ
表1-12に、CREATE_USER_GROUPプロシージャで使用可能なパラメータを示します。
表1-12 CREATE_USER_GROUPのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
グループの主キー |
|
|
グループの名前 |
|
|
ワークスペースID |
|
|
説明テキスト |
例
次の例に、CREATE_USER_GROUPプロシージャを使用して、説明に'text'を指定して'Managers'という新しいグループを作成する方法を示します。p_idパラメータにNULLを渡して、データベース・トリガーで新しい主キー値を割り当てることができるようにします。p_security_group_idパラメータにNULLを渡して、現行のワークスペースIDにデフォルト設定します。
BEGIN
APEX_UTIL.CREATE_USER_GROUP (
p_id => null, -- trigger will assign PK
p_group_name => 'Managers',
p_security_group_id => null, -- defaults to current workspace ID
p_group_desc => 'text');
END;
このファンクションは、カレント・ユーザーが指定したグループのメンバーかどうかに基づいてブール結果を戻します。グループの指定には、グループ名またはグループ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;
パラメータ
表1-13に、CURRENT_USER_IN_GROUPファンクションで使用可能なパラメータを示します。
表1-13 CURRENT_USER_IN_GROUPのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ワークスペース内の既存グループの名前を指定します。 |
|
|
ワークスペース内の既存グループの数値のIDを指定します。 |
例
次の例に、CURRENT_USER_IN_GROUPファンクションを使用して、現在認証されているユーザーがグループManagersに属しているかどうかを確認する方法を示します。
DECLARE
VAL BOOLEAN;
BEGIN
VAL := APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'Managers');
END;
このプロシージャは、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);
パラメータ
表1-14に、DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ1で使用可能なパラメータを示します。
表1-14 DOWNLOAD_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
印刷用ドキュメントのファイル名を定義します |
|
|
印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline") |
|
|
XMLベースのレポート・データ |
|
|
XSL-FO形式またはRTF形式のレポート・レイアウト |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーのURL。指定がない場合は、プリファレンスからプリント・サーバーが取得されます。 |
|
参照: 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」 |
このプロシージャは、事前定義されたレポート問合せと、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);
パラメータ
表1-15に、DOWNLOAD_PRINT_DOCUMENTファンクションで使用可能なパラメータを示します。
表1-15 DOWNLOAD_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
印刷用ドキュメントのファイル名を定義します |
|
|
印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline") |
|
|
レポート問合せのアプリケーションIDを定義します |
|
|
レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存) |
|
|
XSL-FO形式またはRTF形式のレポート・レイアウト |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーの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アプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」 |
このプロシージャは、事前定義されたレポート問合せおよび事前定義されたレポート・レイアウトを使用して、印刷用ドキュメントのダウンロードを開始します。
構文
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);
パラメータ
表1-16に、DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ3で使用可能なパラメータを示します。
表1-16 DOWNLOAD_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
印刷用ドキュメントのファイル名を定義します |
|
|
印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline") |
|
|
レポート問合せのアプリケーションIDを定義します |
|
|
レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存) |
|
|
レポート・レイアウトの名前(アプリケーションの共有コンポーネントの下に保存) |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーの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アプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」 |
このプロシージャは、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);
パラメータ
表1-16に、DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ4で使用可能なパラメータを示します。
表1-17 DOWNLOAD_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
印刷用ドキュメントのファイル名を定義します |
|
|
印刷用ドキュメントをダウンロードするのか、インライン表示するのかを指定します("attachment"、"inline") |
|
|
XMLベースのレポート・データ(UTF-8でエンコードされている必要があります) |
|
|
XSL-FO形式またはRTF形式のレポート・レイアウト |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーの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アプリケーション・ビルダー・ユーザーズ・ガイド』の「レポート・リージョンの印刷」 |
このプロシージャを使用すると、ユーザー・アカウント・レコードを変更できます。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
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');
パラメータ
表1-18に、EDIT_USERプロシージャで使用可能なパラメータを示します。
表1-18 EDIT_USERのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値の主キー |
|
|
ログインに使用する英数字の名前 |
|
|
情報 |
|
|
情報 |
|
|
クリア・テキストのパスワード。このプロシージャを使用してユーザーのパスワードを更新する場合は、 |
|
|
クリア・テキストの新しいパスワード。このプロシージャを使用してユーザーのパスワードを更新する場合は、 |
|
|
情報 |
|
|
未使用 |
|
|
未使用 |
|
|
未使用 |
|
|
ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト |
|
|
未使用 |
|
|
ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ |
|
|
コロンで区切られた数値のグループIDのリスト |
|
|
コロンで区切られた開発者権限のリスト。このパラメータで使用可能な値は、次のとおりです。 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が使用されます。 |
|
|
情報 |
|
|
パスワードが最後に更新された日。 参照: 「EXPIRE_END_USER_ACCOUNTプロシージャ」、「EXPIRE_WORKSPACE_ACCOUNTプロシージャ」、「UNEXPIRE_END_USER_ACCOUNTプロシージャ」、「UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ」 |
|
|
アカウントがロックされているかどうかを示す'Y'または'N'。 |
|
|
ログインに連続して失敗した回数。 |
|
|
パスワードを初めて使用するときに変更する必要があるかどうかを示す'Y'または'N'。 |
|
|
パスワードの変更後にログインが行われたかどうかを示す'Y'または'N'。 |
例
次の例に、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;
エンド・ユーザー・アカウント・パスワードの期限が切れるまでの残りの日数を返します。このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。
構文
APEX_UTIL.END_USER_ACCOUNT_DAYS_LEFT (
p_user_name IN VARCHAR2)
RETURN NUMBER;
パラメータ
表1-19に、END_USER_ACCOUNT_DAYS_LEFTファンクションで使用可能なパラメータを示します。
例
次の例に、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||' will expire in '||l_days_left||' days.');
END LOOP;
END;
ワークスペースエンド・ユーザーとして使用するログイン・アカウントを期限切れにします。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。
構文
APEX_UTIL.EXPIRE_END_USER_ACCOUNT (
p_user_name IN VARCHAR2
);
パラメータ
表1-21に、EXPIRE_END_USER_ACCOUNTプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
開発者またはワークスペース管理者のログイン・アカウントを期限切れにします。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。
構文
APEX_UTIL.EXPIRE_WORKSPACE_ACCOUNT (
p_user_name IN VARCHAR2
);
パラメータ
表1-21に、EXPIRE_WORKSPACE_ACCOUNTプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
このプロシージャは、ページからコールされると、現行のワークスペースの定義、ワークスペースユーザーおよびワークスペースグループのエクスポート・ファイルを作成します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.EXPORT_USERS(
p_export_format IN VARCHAR2 DEFAULT 'UNIX');
パラメータ
表1-22に、EXPORT_USERSプロシージャで使用可能なパラメータを示します。
表1-22 EXPORT_USERSのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
エクスポート・ファイルの行を形式化する方法を指定します。 |
例
次の例に、EXPORT_USERSプロシージャを使用する方法を示します。ページからこのプロシージャをコールして、現行のワークスペース定義、ワークスペースユーザーのリストおよびワークスペースグループのリストが含まれているエクスポート・ファイルを生成します。このファイルは、ライン・フィードで区切られた行で書式設定されます。
BEGIN
APEX_UTIL.EXPORT_USERS;
END;
このファンクションは、カレント・セッションまたは指定したセッション内のカレント・アプリケーションまたは指定したアプリケーションのセッション・ステートをフェッチします。
構文
APEX_UTIL.FETCH_APP_ITEM(
p_item IN VARCHAR2,
p_app IN NUMBER DEFAULT NULL,
p_session IN NUMBER DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表1-23に、FETCH_APP_ITEMファンクションで使用可能なパラメータを示します。
表1-23 FETCH_APP_ITEMのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
現行の値がフェッチされるアプリケーション・レベル・アイテム(ページ・アイテムではない)の名前 |
|
|
アイテムを所有するアプリケーションのID (カレント・アプリケーションの場合はNULLのまま) |
|
|
値を取得するセッション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;
このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。このプロシージャには、オーバーロードされたバージョンが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のパラメータ
表1-24に、FETCH_USERプロシージャのシグネチャ1で使用可能なパラメータを示します。
表1-24 FETCH_USERのパラメータのシグネチャ1
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値の主キー |
|
|
ワークスペースの名前 |
|
|
ログインに使用する英数字の名前 |
|
|
情報 |
|
|
情報 |
|
|
難読化されたアカウント・パスワード |
|
|
電子メール・アドレス。 |
|
|
未使用 |
|
|
未使用 |
|
|
未使用 |
|
|
ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト |
|
|
未使用 |
|
|
ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。 |
|
|
ユーザーがメンバーであるグループのリスト。 参照: 「GET_GROUPS_USER_BELONGS_TOファンクション」および「CURRENT_USER_IN_GROUPファンクション」 |
|
|
コロンで区切られた開発者ロールのリスト。このパラメータで使用可能な値は、次のとおりです。
注意: 現在このパラメータの名前は一貫しておらず、 |
|
|
情報 |
シグネチャ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;
このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。このプロシージャには、オーバーロードされたバージョンが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のパラメータ
表1-25に、FETCH_USERプロシージャのシグネチャ2で使用可能なパラメータを示します。
表1-25 FETCH_USERのパラメータのシグネチャ2
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値の主キー |
|
|
ログインに使用する英数字の名前 |
|
|
情報 |
|
|
情報 |
|
|
電子メール・アドレス。 |
|
|
ユーザーがメンバーであるグループのリスト。 参照: 「GET_GROUPS_USER_BELONGS_TOファンクション」および「CURRENT_USER_IN_GROUPファンクション」 |
|
|
コロンで区切られた開発者ロールのリスト。このパラメータで使用可能な値は、次のとおりです。
注意: 現在このパラメータの名前は一貫しておらず、 |
|
|
情報 |
シグネチャ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;
このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。このプロシージャには、オーバーロードされたバージョンが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のパラメータ
表1-26に、FETCH_USERプロシージャで使用可能なパラメータを示します。
表1-26 FETCH_USERのパラメータのシグネチャ3
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値の主キー |
|
|
ワークスペースの名前 |
|
|
ログインに使用する英数字の名前 |
|
|
情報 |
|
|
情報 |
|
|
難読化されたアカウント・パスワード |
|
|
電子メール・アドレス。 |
|
|
未使用 |
|
|
未使用 |
|
|
未使用 |
|
|
ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト |
|
|
未使用 |
|
|
ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。 |
|
|
ユーザーがメンバーであるグループのリスト。 参照: 「GET_GROUPS_USER_BELONGS_TOファンクション」および「CURRENT_USER_IN_GROUPファンクション」 |
|
|
コロンで区切られた開発者ロールのリスト。このパラメータで使用可能な値は、次のとおりです。
注意: 現在このパラメータの名前は一貫しておらず、 |
|
|
情報 |
|
|
アカウント・パスワードが最後にリセットされた日付。 参照: 「END_USER_ACCOUNT_DAYS_LEFTファンクション」および「WORKSPACE_ACCOUNT_DAYS_LEFTファンクション」 |
|
|
ロック/ロック解除を示す |
|
|
ログインに連続して失敗した回数 |
|
|
最初の使用時にパスワード変更を強制する設定( |
|
|
パスワードによるログインが行われたかどうかを示す |
シグネチャ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;
このファンクションは、指定したワークスペースの数値のセキュリティ・グループIDを戻します。
構文
APEX_UTIL.FIND_SECURITY_GROUP_ID(
p_workspace IN VARCHAR2)
RETURN NUMBER;
パラメータ
表1-27に、FIND_SECURITY_GROUP_IDファンクションで使用可能なパラメータを示します。
例
次の例に、FIND_SECURITY_GROUP_IDファンクションを使用して、DEMOSというワークスペースのセキュリティ・グループIDを戻す方法を示します。
DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.FIND_SECURITY_GROUP_ID (p_workspace=>'DEMOS');
END;
このファンクションは、セキュリティ・グループIDに関連付けられたワークスペース名を戻します。
構文
APEX_UTIL.FIND_WORKSPACE(
p_security_group_id IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表1-28に、FIND_WORKSPACEファンクションで使用可能なパラメータを示します。
例
次の例に、FIND_WORKSPACEファンクションを使用して、セキュリティ・グループIDが20のワークスペースのワークスペース名を戻す方法を示します。
DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.FIND_WORKSPACE (p_security_group_id =>'20');
END;
アカウントがロック済の場合はTRUE、アカウントがロック解除済の場合はFALSEを戻します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。
構文
APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS (
p_user_name IN VARCHAR2
) RETURN BOOLEAN;
パラメータ
表1-29に、GET_ACCOUNT_LOCKED_STATUSファンクションで使用可能なパラメータを示します。
例
次の例に、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;
このファンクションは、Application Expressアカウント表内の指定したユーザーのいずれかの属性値の値(1から10)を戻します。これらには、APIを介してのみアクセスできることに注意してください。
構文
APEX_UTIL.GET_ATTRIBUTE(
p_username IN VARCHAR2,
p_attribute_number IN NUMBER)
RETURN VARCHAR2;
パラメータ
表1-30に、GET_ATTRIBUTEファンクションで使用可能なパラメータを示します。
例
次の例に、GET_ATTTIBUTEファンクションを使用して、ユーザーFRANKの1番目の属性の値を戻す方法を示します。
DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.GET_ATTRIBUTE (
p_username => 'FRANK',
p_attribute_number => 1);
END;
このファンクションを使用して、カレント・セッションの認証結果を取得します。すべての認証済ユーザーは、ページ・リクエストのコンテキストでこのファンクションをコールできます。
構文
APEX_UTIL.GET_AUTHENTICATION_RESULT RETURN NUMBER;
パラメータ
なし。
例
次の例に、アプリケーションの認証スキームの認証後プロセスを使用して、認証時に設定される認証結果コードを取得する方法を示します。
APEX_UTIL.SET_SESSION_STATE('MY_AUTH_STATUS','Authentication result:'||APEX_UTIL.GET_AUTHENTICATION_RESULT);
ダウンロード・リンクを指定した組込み方式を使用するかわりに、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;
パラメータ
表1-31に、GET_BLOB_FILE_SRCファンクションで使用可能なパラメータを示します。
表1-31 GET_BLOB_FILE_SRCのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
タイプがFILEで、DB列のソース・タイプを含む有効なアプリケーション・ページ・アイテムの名前。 |
|
|
主キー列1の値。 |
|
|
主キー列2の値。 |
|
|
|
例
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アプリケーション・ビルダー・ユーザーズ・ガイド』の「デモンストレーション・アプリケーションの実行」 |
このファンクションは、カレント・ユーザーの数値のユーザー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;
このファンクションは、カレント・ユーザーに関連付けられたデフォルトのスキーマ名を戻します。
構文
APEX_UTIL.GET_DEFAULT_SCHEMA RETURN VARCHAR2;
パラメータ
なし。
例
次の例に、GET_DEFAULT_SCHEMAファンクションを使用する方法を示します。このファンクションは、カレント・ユーザーに関連付けられているデフォルトのスキーマ名をローカル変数に戻します。
DECLARE
VAL VARCHAR2(30);
BEGIN
VAL := APEX_UTIL.GET_DEFAULT_SCHEMA;
END;
このファンクションは、指定したユーザーに関連付けられた電子メール・アドレスを戻します。
構文
APEX_UTIL.GET_EMAIL( p_username IN VARCHAR2); RETURN VARCHAR2;
パラメータ
表1-32に、GET_EMAILファンクションで使用可能なパラメータを示します。
例
次の例に、GET_EMAILファンクションを使用して、ユーザーFRANKの電子メール・アドレスを戻す方法を示します。
DECLARE
VAL VARCHAR2(240);
BEGIN
VAL := APEX_UTIL.GET_EMAIL(p_username => 'FRANK');
END;
このプロシージャは、Oracle Application Expressファイル・リポジトリからファイルをダウンロードします。ページ処理時にこのプロシージャを起動する場合は、ページ・ブランチが同じ条件で起動されていないことを確認する必要があることに注意してください。ページ・ブランチがファイルの取得に影響を及ぼすためです。このため、次の条件のブランチは、起動されないように設定してください。
プロシージャを起動するボタンと同じ「対象ボタン」属性を持つブランチ。
プロシージャが起動されている場合に、ページ処理時に正常に実行される条件ロジックが定義されているブランチ。
無条件。
構文
APEX_UTIL.GET_FILE (
p_file_id IN VARCHAR2,
p_inline IN VARCHAR2 DEFAULT 'NO');
パラメータ
表1-33に、GET_FILEプロシージャで使用可能なパラメータを示します。
表1-33 GET_FILEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ダウンロードするファイルの
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;
|
|
|
有効な値には |
例
次の例に、GET_FILEファンクションを使用して、ID 8675309で識別されるファイルを戻す方法を示します。これは、ブラウザにインラインで表示されます。
BEGIN
APEX_UTIL.GET_FILE(
p_file_id => '8675309',
p_inline => 'YES');
END;
このファンクションは、Oracle Application Expressファイル・リポジトリ内のファイルの主キーを取得します。
構文
APEX_UTIL.GET_FILE_ID (
p_name IN VARCHAR2)
RETURN NUMBER;
パラメータ
表1-34に、GET_FILE_IDファンクションで使用可能なパラメータを示します。
表1-34 GET_FILE_IDのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ダウンロードするファイルの |
例
次の例に、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;
このファンクションは、指定したユーザー・アカウント・レコードに格納されるFIRST_NAMEフィールドを戻します。
構文
APEX_UTIL.GET_FIRST_NAME
p_username IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表1-35に、GET_FIRST_NAMEファンクションで使用可能なパラメータを示します。
例
次の例に、GET_FIRST_NAMEファンクションを使用してユーザーFRANKのFIRST_NAMEを戻す方法を示します。
DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.GET_FIRST_NAME(p_username => 'FRANK');
END;
このファンクションは、指定したユーザーがメンバーであるグループ名のカンマとスペースで区切られたリストを戻します。
構文
APEX_UTIL.GET_GROUPS_USER_BELONGS_TO( p_username IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表1-36に、GET_GROUPS_USER_BELONGS_TOファンクションで使用可能なパラメータを示します。
例
次の例に、GET_GROUPS_USER_BELONGS_TOを使用して、ユーザーFRANKがメンバーであるグループのリストを戻す方法を示します。
DECLARE
VAL VARCHAR2(32765);
BEGIN
VAL := APEX_UTIL.GET_GROUPS_USER_BELONGS_TO(p_username => 'FRANK');
END;
このファンクションは、ワークスペース内の指定したグループの数値のIDを戻します。
構文
APEX_UTIL.GET_GROUP_ID(
p_group_name IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表1-37に、GET_GROUP_IDファンクションで使用可能なパラメータを示します。
例
次の例に、GET_GROUP_IDファンクションを使用して、ManagersというグループのIDを戻す方法を示します。
DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.GET_GROUP_ID(p_group_name => 'Managers');
END;
このファンクションは、数値のIDで指定したグループの名前を戻します。
構文
APEX_UTIL.GET_GROUP_NAME(
p_group_id IN NUMBER)
RETURN VARCHAR2;
パラメータ
表1-38に、GET_GROUP_NAMEファンクションで使用可能なパラメータを示します。
例
次の例に、GET_GROUP_NAMEファンクションを使用して、ID 8922003のグループの名前を戻します。
DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.GET_GROUP_NAME(p_group_id => 8922003);
END;
このファンクションは、指定したユーザー・アカウント・レコードに格納されるLAST_NAMEフィールドを戻します。
構文
APEX_UTIL.GET_LAST_NAME(
p_username IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表1-39に、GET_LAST_NAMEファンクションで使用可能なパラメータを示します。
例
次の例に、このファンクションを使用してユーザーのFRANKのLAST_NAMEを戻す方法を示します。
DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.GET_LAST_NAME(p_username => 'FRANK');
END;
このファンクションは、数値アイテムの数値を戻します。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;
パラメータ
表1-40に、GET_NUMERIC_SESSION_STATEファンクションで使用可能なパラメータを示します。
例
次の例に、このファンクションを使用して、アイテムmy_itemのセッション・ステートに格納されている数値を戻す方法を示します。
DECLARE
l_item_value NUMBER;
BEGIN
l_item_value := APEX_UTIL.GET_NUMERIC_SESSION_STATE('my_item');
END;
このファンクションは、指定したユーザーについて、以前保存されたプリファレンスの値を取得します。
構文
APEX_UTIL.GET_PREFERENCE (
p_preference IN VARCHAR2 DEFAULT NULL,
p_user IN VARCHAR2 DEFAULT V('USER'))
RETURN VARCHAR2;
パラメータ
表1-41に、GET_PREFERENCEファンクションで使用可能なパラメータを示します。
表1-41 GET_PREFERENCEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
値を取得するプリファレンスの名前 |
|
|
プリファレンスの値 |
|
|
プリファレンスが取得されるユーザー |
例
次の例に、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管理ガイド』の「ユーザー・プリファレンスの管理」 |
このファンクションは、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;
パラメータ
表1-42に、GET_PRINT_DOCUMENTファンクションで使用可能なパラメータを示します。
表1-42 GET_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
XMLベースのレポート・データ |
|
|
XSL-FO形式またはRTF形式のレポート・レイアウト |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーのURL。指定がない場合は、プリファレンスからプリント・サーバーが取得されます。 |
GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。
このファンクションは、事前定義されたレポート問合せおよび事前定義されたレポート・レイアウトを使用して、ドキュメントを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;
パラメータ
表1-43に、GET_PRINT_DOCUMENTファンクションで使用可能なパラメータを示します。
表1-43 GET_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
レポート問合せのアプリケーションIDを定義します |
|
|
レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存) |
|
|
レポート・レイアウトの名前(アプリケーションの共有コンポーネントの下に保存) |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーのURL。指定がない場合は、プリファレンスからプリント・サーバーが取得されます。 |
GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。
このファンクションは、事前定義されたレポート問合せ、および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;
パラメータ
表1-44に、GET_PRINT_DOCUMENTファンクションで使用可能なパラメータを示します。
表1-44 GET_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
レポート問合せのアプリケーションIDを定義します |
|
|
レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存) |
|
|
XSL-FO形式またはRTF形式のレポート・レイアウトを定義します |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーのURL。指定がない場合は、プリファレンスからプリント・サーバーが取得されます。 |
GET_PRINT_DOCUMENTの例は、「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;
パラメータ
表1-45に、GET_PRINT_DOCUMENTファンクションのシグネチャ4で使用可能なパラメータを示します。
表1-45 GET_PRINT_DOCUMENTのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
XMLベースのレポート・データ(UTF-8でエンコードされている必要があります) |
|
|
XSL-FO形式またはRTF形式のレポート・レイアウト |
|
|
レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf") |
|
|
ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml") |
|
|
プリント・サーバーのURL。指定がない場合は、プリファレンスからプリント・サーバーが取得されます |
シグネチャ4の例
次の例に、シグネチャ4を使用してGET_PRINT_DOCUMENTを使用する方法を示します(ドキュメントはXMLベースのレポート・データおよびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用してBLOBとして戻されます)。この例では、GET_PRINT_DOCUMENTをAPEX_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 via 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;
このファンクションはアイテムの値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle Application Expressアプリケーションで使用できます。また、APEX_UTIL.GET_SESSION_STATEのかわりに、短縮版のファンクションVを使用できます。
構文
APEX_UTIL.GET_SESSION_STATE (
p_item IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表1-46に、GET_SESSION_STATEファンクションで使用可能なパラメータを示します。
例
次の例に、GET_SESSION_STATEファンクションを使用して、アイテムmy_itemのセッション・ステートに格納されている値を戻す方法を示します。
DECLARE
l_item_value VARCHAR2(255);
BEGIN
l_item_value := APEX_UTIL.GET_SESSION_STATE('my_item');
END;
このファンクションは、ワークスペース内の指定したユーザーの数値のIDを戻します。
構文
APEX_UTIL.GET_USER_ID(
p_username IN VARCHAR2)
RETURN NUMBER;
パラメータ
表1-47に、GET_USER_IDファンクションで使用可能なパラメータを示します。
例
次の例に、GET_USER_IDファンクションを使用して、FRANKというユーザーのIDを戻す方法を示します。
DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.GET_USER_ID(p_username => 'FRANK');
END;
このファンクションは、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドを戻します。現在このパラメータの名前は一貫しておらず、CREATE_USER、EDIT_USERおよびFETCH_USER APIと呼ばれていることに注意してください。ただし、これらのすべての名前が、DEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privs、EDIT_USERではp_developer_roles、FETCH_USERではp_developer_roleが使用されます。
構文
APEX_UTIL.GET_USER_ROLES( p_username IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表1-48に、GET_USER_ROLESファンクションで使用可能なパラメータを示します。
例
次の例に、GET_USER_ROLESファンクションを使用して、ユーザーFRANKのDEVELOPER_ROLEフィールドに格納されているコロンで区切られたロールのリストを戻す方法を示します。
DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.GET_USER_ROLES(p_username=>'FRANK');
END;
このファンクションは、数値のIDで指定したユーザー・アカウントのユーザー名を戻します。
構文
APEX_UTIL.GET_USERNAME(
p_userid IN NUMBER)
RETURN VARCHAR2;
パラメータ
表1-49に、GET_USERNAMEファンクションで使用可能なパラメータを示します。
例
次の例に、GET_USERNAMEファンクションを使用して、IDが228922003のユーザーのユーザー名を戻す方法を示します。
DECLARE
VAL VARCHAR2(100);
BEGIN
VAL := APEX_UTIL.GET_USERNAME(p_userid => 228922003);
END;
このファンクションは、現在のワークスペース内の指定したユーザー・アカウントのパスワードの検証に基づいてブール結果を戻します。パスワードが一致した場合はtrueを、パスワードが一致しない場合はfalseを戻します。
構文
APEX_UTIL.IS_LOGIN_PASSWORD_VALID(
p_username IN VARCHAR2,
p_password IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
表1-50に、IS_LOGIN_PASSWORD_VALIDファンクションで使用可能なパラメータを示します。
表1-50 IS_LOGIN_PASSWORD_VALIDのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
アカウント内のユーザー名 |
|
|
アカウントに格納されているパスワードと比較されるパスワード |
例
次の例に、IS_LOGIN_PASSWORD_VALIDファンクションを使用して、ユーザーFRANKのパスワードがtigerかどうかを確認する方法を示します。tigerがFRANKの有効なパスワードの場合はTRUE、そうでない場合はFALSEが戻されます。
DECLARE
VAL BOOLEAN;
BEGIN
VAL := APEX_UTIL.IS_LOGIN_PASSWORD_VALID (
p_username=>'FRANK',
p_password=>'tiger');
END;
このファンクションは、指定したユーザー・アカウントがワークスペース内で一意であるかどうかに基づいてブール結果を戻します。
構文
APEX_UTIL.IS_USERNAME_UNIQUE(
p_username IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
表1-51に、IS_USERNAME_UNIQUEファンクションで使用可能なパラメータを示します。
例
次の例に、IS_USERNAME_UNIQUEファンクションを使用する方法を示します。現行のワークスペースにユーザーFRANKがすでに存在する場合はFALSE、存在しない場合はTRUEが戻されます。
DECLARE
VAL BOOLEAN;
BEGIN
VAL := APEX_UTIL.IS_USERNAME_UNIQUE(
p_username=>'FRANK');
END;
このファンクションは、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;
このファンクションは、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;
ユーザーのアカウント・ステータスを「ロック済」に設定します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。
構文
APEX_UTIL.LOCK_ACCOUNT (
p_user_name IN VARCHAR2);
パラメータ
表1-52に、LOCK_ACCOUNTプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
アカウント作成後にアカウント・パスワードが変更された場合は、TRUEを戻します。Oracle Application Express管理者が、アカウント保持者に新しいパスワードを電子メールで送信してパスワードのリセット操作を実行するか、あるいはユーザーがパスワードのリセット操作を開始します。このファンクションは、前述のイベントのどちらかが実行されてから、アカウントのパスワードが変更されていない場合は、FALSEを戻します。
このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。
構文
APEX_UTIL.PASSWORD_FIRST_USE_OCCURRED (
p_user_name IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
表1-53に、PASSWORD_FIRST_USE_OCCURREDプロシージャで使用可能なパラメータを示します。
例
次の例に、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ファンクションは、次の2つの目的で使用されます。
「セッション・ステート保護」チェックサム引数(&cs=)が指定されたf?p URLを戻すため(このf?p URLが必要な場合)
セッション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;
パラメータ
表1-54に、PREPARE_URLファンクションで使用可能なパラメータを示します。
表1-54 PREPARE_URLのパラメータ
| パラメータ | 説明 |
|---|---|
|
p_url |
すべての置換が解決されているf?p相対URL |
|
p_url_charset |
引数値に含まれている特殊文字をエスケープする場合に使用するキャラクタ・セット名( |
|
p_checksum type |
NULL、あるいは6つの値( |
例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機能の両方を適用できる場合は、これらの引数を使用できます。
|
参照: Oracle Application Expressアドバンスト・チュートリアルの「セッションIDにゼロを使用したブックマークの容易化」および「セッション・ステート保護の理解」 |
セキュリティ・スキーム名を指定すると、このファンクションによってカレント・ユーザーがセキュリティ・チェックを通過するかどうかが判断されます。
構文
APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION (
p_security_scheme IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
表1-55に、PUBLIC_CHECK_AUTHORIZATIONファンクションで使用可能なパラメータを示します。
表1-55 PUBLIC_CHECK_AUTHORIZATIONのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ユーザーがセキュリティ・チェックを通過するかどうかを判断するセキュリティ・スキームの名前 |
例
次の例に、PUBLIC_CHECK_AUTHORIZATIONファンクションを使用して、my_auth_scheme認証スキームに定義されているチェックをカレント・ユーザーが通過するかどうかを確認する方法を示します。
DECLARE
l_check_security BOOLEAN;
BEGIN
l_check_security := APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION('my_auth_scheme');
END;
アプリケーションのすべてのキャッシュされたリージョンを削除します。
構文
APEX_UTIL.PURGE_REGIONS_BY_APP (
p_application IN NUMBER);
パラメータ
表1-56に、PURGE_REGIONS_BY_APPで使用可能なパラメータを示します。
例
次の例に、APEX_UTIL.PURGE_REGIONS_BY_APPを使用して、アプリケーション番号123に対してキャッシュされたすべてのリージョンを削除する方法を示します。
BEGIN
APEX_UTILITIES.PURGE_REGIONS_BY_APP(p_application=>123);
END;
アプリケーションID、ページ番号およびリージョン名で識別されるリージョンに対してキャッシュされたすべての値を削除します。
構文
APEX_UTIL.PURGE_REGIONS_BY_NAME (
p_application IN NUMBER,
p_page IN NUMBER,
p_region_name IN VARCHAR2);
パラメータ
表1-57に、PURGE_REGIONS_BY_NAMEで使用可能なパラメータを示します。
表1-57 PURGE_REGIONS_BY_NAMEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
アプリケーションの識別番号(ID) |
|
|
削除されるリージョンを含んだページ番号 |
|
|
削除されるリージョンの名前。 |
例
次の例に、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;
アプリケーションおよびページによってキャッシュされたリージョンすべてを削除します。
構文
APEX_UTIL.PURGE_REGIONS_BY_PAGE (
p_application IN NUMBER,
p_page IN NUMBER);
パラメータ
表1-58に、PURGE_REGIONS_BY_PAGEで使用可能なパラメータを示します。
例
次の例に、PURGE_REGIONS_BY_PAGEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンに対してキャッシュされたすべての値を削除する方法を示します。
BEGIN
APEX_UTIL.PURGE_REGIONS_BY_PAGE(
p_application => :APP_ID,
p_page => 1);
END;
このプロシージャは、指定したユーザーのプリファレンスを削除します。
構文
APEX_UTIL.REMOVE_PREFERENCE(
p_preference IN VARCHAR2 DEFAULT NULL,
p_user IN VARCHAR2 DEFAULT V('USER'));
パラメータ
表1-59に、REMOVE_PREFERENCEプロシージャで使用可能なパラメータを示します。
例
次の例に、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管理ガイド』の「セッション・ステートおよびユーザー・プリファレンスの管理」 |
このプロシージャは、ユーザーの列ヘッダーのソート・プリファレンスの値を削除します。
構文
APEX_UTIL.REMOVE_SORT_PREFERENCES (
p_user IN VARCHAR2 DEFAULT V('USER'));
パラメータ
表1-60に、REMOVE_SORT_PREFERENCESファンクションで使用可能なパラメータを示します。
例
次の例に、REMOVE_SORT_PREFERENCESプロシージャを使用して、現在認証されているユーザーの列ヘッダーのソート・プリファレンスを削除する方法を示します。
BEGIN
APEX_UTIL.REMOVE_SORT_PREFERENCES(:APP_USER);
END;
このプロシージャは、主キーまたはユーザー名で指定したユーザー・アカウントを削除します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.REMOVE_USER(
p_user_id IN NUMBER,
p_user_name IN VARCHAR2);
パラメータ
表1-61に、REMOVE_USERプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
Oracle Application Expressは、パフォーマンスを向上させるために、認可スキームの評価後、その結果をキャッシュします。このプロシージャを使用すると、キャッシュを元に戻して、次にページ表示または受入れ処理中に認可スキームが適用された際に各認可スキームの再検証を要求できます。このプロシージャは、ユーザーがアプリケーション内で自らの信頼性(認可プロファイル)を変更できるようにする場合に使用できます。
構文
APEX_UTIL.RESET_AUTHORIZATIONS;
パラメータ
なし。
例
次の例に、RESET_AUTHORIZATIONSプロシージャを使用して認証スキームのキャッシュをクリアする方法を示します。
BEGIN
APEX_UTIL.RESET_AUTHORIZATIONS;
END;
このプロシージャは、指定したユーザーのパスワードを再設定し、そのパスワードをメッセージとして現行のワークスペース内の指定したアカウントのアドレスに電子メールを送信します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.RESET_PW(
p_user IN VARCHAR2,
p_msg IN VARCHAR2);
パラメータ
表1-62に、RESET_PWプロシージャで使用可能なパラメータを示します。
例
次の例に、RESET_PWプロシージャを使用してユーザーFRANKのパスワードをリセットする方法を示します。
BEGIN
APEX_UTIL.RESET_PW(
p_user => 'FRANK',
p_msg => 'Contact help desk at 555-1212 with questions');
END;
このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_num)を、ファンクションKEYVAL_NUMを使用して取得できるように設定します。
構文
APEX_UTIL.SAVEKEY_NUM(
p_val IN NUMBER)
RETURN NUMBER;
パラメータ
表1-63に、SAVEKEY_NUMプロシージャで使用可能なパラメータを示します。
例
次の例に、SAVEKEY_NUMファンクションを使用して、wwv_flow_utilities.g_val_numパッケージ変数の値を10に設定する方法を示します。
DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.SAVEKEY_NUM(p_val => 10);
END;
このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_vc2)を、ファンクションKEYVAL_VC2を使用して取得できるように設定します。
構文
APEX_UTIL.SAVEKEY_VC2(
p_val IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
表1-64に、SAVEKEY_VC2ファンクションで使用可能なパラメータを示します。
例
次の例に、SAVEKEY_VC2ファンクションを使用して、wwv_flow_utilities.g_val_vc2パッケージ変数の値を'XXX'に設定する方法を示します。
DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.SAVEKEY_VC2(p_val => 'XXX');
END;
このプロシージャは、Application Expressアカウント表内のユーザーのいずれかの属性値の値(1から10)を設定します。
構文
APEX_UTIL.SET_ATTRIBUTE(
p_userid IN NUMBER,
p_attribute_number IN NUMBER,
p_attribute_value IN VARCHAR2);
パラメータ
表1-65に、SET_ATTRIBUTEプロシージャで使用可能なパラメータを示します。
表1-65 SET_ATTRIBUTEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値のID |
|
|
ユーザー・レコードの属性番号(1から10) |
|
|
ユーザー・レコードに設定する、 |
例
次の例に、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;
このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。
|
参照: 『Oracle Application Express管理ガイド』の「ワークスペース内のアクティビティの監視」 |
構文
APEX_UTIL.SET_AUTHENTICATION_RESULT(
p_code IN NUMBER);
パラメータ
表1-21に、SET_AUTHENTICATION_RESULTプロシージャで使用可能なパラメータを示します。
表1-66 SET_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;
このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。
|
参照: 『Oracle Application Express管理ガイド』の「ワークスペース内のアクティビティの監視」 |
構文
APEX_UTIL.SET_CUSTOM_AUTH_STATUS(
p_status IN VARCHAR2);
パラメータ
表1-67に、SET_CUSTOM_AUTH_STATUSプロシージャで使用可能なパラメータを示します。
例
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;
このプロシージャは、新しい電子メール・アドレスを使用してユーザー・アカウントを更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.SET_EMAIL(
p_userid IN NUMBER,
p_email IN VARCHAR2);
パラメータ
表1-68に、SET_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;
このプロシージャは、ユーザー・アカウントを新しいFIRST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.SET_FIRST_NAME(
p_userid IN NUMBER,
p_first_name IN VARCHAR2);
パラメータ
表1-69に、SET_FIRST_NAMEプロシージャで使用可能なパラメータを示します。
表1-69 SET_FIRST_NAMEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ユーザー・アカウントの数値のID |
|
|
ユーザー・アカウントに保存する |
例
次の例に、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;
このプロシージャは、ユーザー・アカウントを新しいLAST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.SET_LAST_NAME(
p_userid IN NUMBER,
p_last_name IN VARCHAR2);
パラメータ
表1-70に、SET_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;
このプロシージャは、ユーザーのカレント・セッション以降に保持されるプリファレンスを設定します。
構文
APEX_UTIL.SET_PREFERENCE (
p_preference IN VARCHAR2 DEFAULT NULL,
p_value IN VARCHAR2 DEFAULT NULL,
p_user IN VARCHAR2 DEFAULT NULL);
パラメータ
表1-71に、SET_PREFERENCEプロシージャで使用可能なパラメータを示します。
表1-71 SET_PREFERENCEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
プリファレンスの名前(大/小文字の区別あり) |
|
|
プリファレンスの値 |
|
|
プリファレンスが設定されるユーザー |
例
次の例に、SET_PREFERENCEプロシージャを使用して、default_viewというプリファレンスを現在認証されているユーザーのセッションを超えて存続する値'WEEKLY'に設定する方法を示します。
BEGIN
APEX_UTIL.SET_PREFERENCE(
p_preference => 'default_view',
p_value => 'WEEKLY',
p_user => :APP_USER);
END;
このプロシージャは、カレント・セッションに対するカレント・アプリケーションの「最大セッションの長さ」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてセッションの存続期間を動的に短縮また延長できます。
|
注意: このプロシージャを機能させるには、アプリケーションの「最大セッションの長さ」属性がアプリケーション定義で0 (ゼロ)以外の値に設定されている必要があります。開発者がこの属性を設定しなかった場合、このプロシージャは機能しません。 |
構文
APEX_UTIL.SET_SESSION_LIFETIME_SECONDS (
p_seconds IN NUMEBER,
p_scope IN VARCHAR2 DEFAULT 'SESSION');
パラメータ
表1-72に、SET_SESSION_LIFETIME_SECONDSプロシージャで使用可能なパラメータを示します。
表1-72 SET_SESSION_LIFETIME_SECONDSのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
このアプリケーションで使用されるセッションが存在可能な秒数を示す正の整数。 |
|
|
'SESSION'にデフォルト設定されます。また、'APPLICATION'に設定される場合もあります。'SESSION'の場合は、このセッションを使用しているすべてのアプリケーションが影響を受けます。''APPLICATION'の場合は、カレント・セッションを使用しているカレント・アプリケーションのみが影響を受けます。 |
例1
次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を7200秒(2時間)に設定する方法を示します。開発者がアプリケーションの「最大セッションの長さ」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータでデフォルト値の'SESSION'を使用できるようにすると、次の例は、カレント・セッションを使用しているすべてのアプリケーションに実際に適用されます。複数のApplication Expressアプリケーションで共通の認証スキームが使用され、それらのアプリケーションが共通のセッションでスイートとして動作するように設計されている場合は、このユースケースが最も一般的なユースケースとなります。
BEGIN APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 7200); END;
例2
次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を3600秒(1時間)に設定する方法を示します。開発者がアプリケーションの「最大セッションの長さ」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータのデフォルト値を上書きして'APPLICATION'に設定すると、次の例は、他のアプリケーションで同じセッションが使用されている場合でも、カレント・セッションを使用しているカレント・アプリケーションにのみ実際に適用されます。
BEGIN
APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 3600,
p_scope => 'APPLICATION');
END;
カレント・セッションに対するカレント・アプリケーションの「最大セッション・アイドル時間」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてページ・リクエスト間で許容される最大アイドル時間を動的に短縮または延長できます。
|
注意: このプロシージャを機能させるには、アプリケーションの「最大セッション・アイドル時間」属性がアプリケーション定義で0 (ゼロ)以外の値に設定されている必要があります。開発者がこの属性を設定しなかった場合、このプロシージャは機能しません。 |
構文
APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS (
p_seconds IN NUMEBER,
p_scope IN VARCHAR2 DEFAULT 'SESSION');
パラメータ
表1-73に、SET_SESSION_MAX_IDLE_SECONDSプロシージャで使用可能なパラメータを示します。
表1-73 SET_SESSION_MAX_IDLE_SECONDSのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
ページ・リクエスト間で許容される秒数を示す正の整数。 |
|
|
'SESSION'にデフォルト設定されます。また、'APPLICATION'に設定される場合もあります。'SESSION'の場合は、このセッションを使用しているすべてのアプリケーションにこのアイドル時間が適用されます。'APPLICATION'の場合は、カレント・セッションを使用しているカレント・アプリケーションにのみこのアイドル時間が適用されます。 |
例1
次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を1200秒(20分)に設定する方法を示します。開発者がアプリケーションの「最大セッション・アイドル時間」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータでデフォルト値の'SESSION'を使用できるようにすると、次の例は、カレント・セッションを使用しているすべてのアプリケーションに実際に適用されます。複数のApplication Expressアプリケーションで共通の認証スキームが使用され、それらのアプリケーションが共通のセッションでスイートとして動作するように設計されている場合は、このユースケースが最も一般的なユースケースとなります。
BEGIN APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 1200); END;
例2
次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を600秒(10分)に設定する方法を示します。開発者がアプリケーションの「最大セッション・アイドル時間」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータのデフォルト値を上書きして'APPLICATION'に設定すると、次の例は、他のアプリケーションで同じセッションが使用されている場合でも、カレント・セッションを使用しているカレント・アプリケーションにのみ実際に適用されます。
BEGIN
APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 600,
p_scope => 'APPLICATION');
END;
このプロシージャは、現在のOracle Application Expressセッションのセッション・ステートを設定します。
構文
APEX_UTIL.SET_SESSION_STATE (
p_name IN VARCHAR2 DEFAULT NULL,
p_value IN VARCHAR2 DEFAULT NULL);
パラメータ
表1-74に、SET_SESSION_STATEプロシージャで使用可能なパラメータを示します。
表1-74 SET_SESSION_STATEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
セッション・ステートを設定する、アプリケーション・レベルまたはページ・レベルのアイテムの名前 |
|
|
設定するセッション・ステートの値 |
例
次の例に、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アプリケーション・ビルダー・ユーザーズ・ガイド』の「セッション・ステートの管理の理解」 |
このプロシージャは、ユーザー・アカウントを新しいUSER_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。
構文
APEX_UTIL.SET_USERNAME(
p_userid IN NUMBER,
p_username IN VARCHAR2);
パラメータ
表1-75に、SET_USERNAMEプロシージャで使用可能なパラメータを示します。
例
次の例に、SET_USERNAMEプロシージャを使用して、USERNAMEの値をユーザーFRANKの'USER-XRAY'に設定する方法を示します。
BEGIN
APEX_UTIL.SET_USERNAME(
p_userid => APEX_UTIL.GET_USER_ID('FRANK'),
P_username => 'USER-XRAY');
END;
このプロシージャは、提示されたパスワードが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);
パラメータ
表1-76に、STRONG_PASSWORD_CHECKプロシージャで使用可能なパラメータを示します。
表1-76 STRONG_PASSWORD_CHECKのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
現行のワークスペース内のアカウントを識別するユーザー名 |
|
|
パスワードの強度ルールを基準にチェックするパスワード |
|
|
アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます) |
|
|
現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます) |
|
|
このAPIをコールする場合は |
|
|
パスワードが、最小の長さの要件を満たすかどうかに基づいて、 |
|
|
パスワードが「新しいパスワードは古いパスワードと異なること」という要件を満たすかどうかに基づいて、 |
|
|
パスワードが、アルファベットを1文字以上含むことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、数字を1文字以上含むことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、句読記号を1文字以上含むことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、大文字を1文字以上含むことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、小文字を1文字以上含むことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、ユーザー名を含まないことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、ワークスペース名を含まないことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、指定された単純な単語を含まないことという要件を満たすかどうかに基づいて、 |
|
|
パスワードが、パスワード履歴ルールに基づいて再利用できるかどうかに基づいて、 |
例
次の例に、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管理ガイド』の「パスワード・ポリシーについて」 |
このファンクションは、提示されたパスワードが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;
パラメータ
表1-77に、STRONG_PASSWORD_VALIDATIONファンクションで使用可能なパラメータを示します。
表1-77 STRONG_PASSWORD_VALIDATIONのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
現行のワークスペース内のアカウントを識別するユーザー名 |
|
|
パスワードの強度ルールを基準にチェックするパスワード |
|
|
アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます) |
|
|
現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます) |
例
次の例に、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;
文字列を指定すると、このファンクションによって型が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;
パラメータ
表1-78に、STRING_TO_TABLEファンクションで使用可能なパラメータを示します。
表1-78 STRING_TO_TABLEのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
型が |
|
|
文字列のセパレータ。(デフォルトはコロン) |
例
次の例に、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;
型が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;
パラメータ
表1-79に、TABLE_TO_STRINGファンクションで使用可能なパラメータを示します。
表1-79 TABLE_TO_STRINGのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
文字列のセパレータ。(デフォルトはコロン(:)) |
|
|
区切られた文字列に変換されるPL/SQL表 |
例
次の例に、TABLE_TO_STRINGファンクションを使用する方法を示します。この例では、まずp_stringパラメータの文字列'One:Two:Three'を渡されるSTRING_TO_TABLEをコールし、型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列を戻します。この配列は3つの要素を含み、位置1の要素には値'One'、位置2の要素には値'Two'、位置3の要素には値'Three'が含まれています。次に、この配列がTABLE_TO_STRINGファンクションのp_stringパラメータに渡され、これによって元の文字列'One:Two:Three'が戻されます。
DECLARE
l_string VARCHAR2(255);
l_vc_arr2 APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE('One:Two:Three');
l_string := APEX_UTIL.TABLE_TO_STRING(l_vc_arr2);
END;
期限切れのエンド・ユーザー・アカウントおよび関連付けられたパスワードを使用可能にして、エンド・ユーザーが開発済アプリケーションにログインできるようにします。
構文
APEX_UTIL.UNEXPIRE_END_USER_ACCOUNT (
p_user_name IN VARCHAR2);
パラメータ
表1-80に、UNEXPIRE_END_USER_ACCOUNTプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
開発者およびワークスペース管理者のアカウントおよび関連付けられたパスワードを有効にして、開発者または管理者がワークスペースへログインできるようにします。
構文
APEX_UTIL.UNEXPIRE_WORKSPACE_ACCOUNT (
p_user_name IN VARCHAR2);
パラメータ
表1-81に、UNEXPIRE_WORKSPACE_ACCOUNTプロシージャで使用可能なパラメータを示します。
例
次の例に、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;
ユーザーのアカウント・ステータスを「ロック解除済」に設定します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。
構文
APEX_UTIL.UNLOCK_ACCOUNT (
p_user_name IN VARCHAR2);
パラメータ
表1-82に、UNLOCK_ACCOUNTプロシージャで使用可能なパラメータを示します。
例
次の例では、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;
特殊文字は、次のようにエンコードされます。
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;
パラメータ
表1-83に、URL_ENCODEファンクションで使用可能なパラメータを示します。
例
次の例に、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
開発者またはワークスペース管理者アカウント・パスワードの期限が切れるまでの残りの日数を戻します。このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。
構文
APEX_UTIL.WORKSPACE_ACCOUNT_DAYS_LEFT (
p_user_name IN VARCHAR2)
RETURN NUMBER;
パラメータ
表1-84に、WORKSPACE_ACCOUNT_DAYS_LEFTプロシージャで使用可能なパラメータを示します。
例
次の例に、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||' will expire in '||l_days_left||' days.');
END LOOP;
END;