このセクションでは、Oracle HTML DBで使用可能なAPIについて説明します。
内容は次のとおりです。
HTMLDB_UTILパッケージは、Oracle HTML DB環境でプログラミングする際に使用可能なユーティリティを提供します。HTMLDB_UTILを使用すると、セッション・ステートの取得と設定、ファイルの取得、ユーザーの認可の確認、ユーザーへの別のステートの再設定、およびユーザーのプリファレンスの取得と設定を行うことができます。
このセクションの構成は次のとおりです。
このプロシージャは、HTML DBユーザー・アカウントが使用中であることを前提として、現在認証されているユーザーのパスワードを変更します。
構文
HTMLDB_UTIL.CHANGE_CURRENT_USER_PW(
p_new_password IN VARCHAR2);
パラメータ
表16-1に、CHANGE_CURRENT_USER_PWプロシージャで使用可能なパラメータを示します。
例
BEGIN
HTMLDB_UTIL.CHANGE_CURRENT_USER_PW ('secret99');
END;
このプロシージャは、カレント・セッションに指定したアプリケーションのセッション・ステートを削除します。
構文
HTMLDB_UTIL.CLEAR_APP_CACHE (
p_app_id IN VARCHAR2 DEFAULT NULL);
パラメータ
p_app_idは、セッション・ステートを消去するカレント・セッションのアプリケーションのIDです。
例
BEGIN
HTMLDB_UTIL.CLEAR_APP_CACHE('100');
END;
このプロシージャは、カレント・セッションに指定したページのセッション・ステートを削除します。
構文
HTMLDB_UTIL.CLEAR_PAGE_CACHE (
p_page_id IN NUMBER DEFAULT NULL);
パラメータ
p_page_idは、セッション・ステートを消去するカレント・セッションのカレント・アプリケーションでのページのIDです。
例
BEGIN
HTMLDB_UTIL.CLEAR_PAGE_CACHE('10');
END;
このプロシージャは、カレント・ユーザー・セッションのセッション・ステートおよびアプリケーション・システムのプリファレンスを削除します。セッションIDを再利用し、既存のセッション・ステートを使用せずにアプリケーションを実行する場合にこのプロシージャを実行します。
構文
HTMLDB_UTIL.CLEAR_USER_CACHE;
例
BEGIN
HTMLDB_UTIL.CLEAR_USER_CACHE;
END;
このプロシージャは、Oracle HTML DBアプリケーションから外部サイトへのクリックをカウントします。また、HTMLDB_UTIL.COUNT_CLICKのかわりに、短縮版のプロシージャZを使用できます。
構文
HTMLDB_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);
パラメータ
表16-2に、COUNT_CLICKプロシージャで使用可能なパラメータを示します。
表16-2 COUNT_CLICKパラメータ
| パラメータ | 説明 |
|---|---|
p_url
|
リダイレクト先のURL |
p_cat
|
クリックを分類するためのカテゴリ |
p_id
|
クリックに関連付けられたセカンダリID(オプション) |
p_user
|
アプリケーション・ユーザーID(オプション) |
p_workspace
|
アプリケーションに関連付けられた作業領域(オプション) |
例
BEGIN
htp.p('<a href=HTMLDB_UTIL.COUNT_CLICK?p_url=http://yahoo.com&p_cat=yahoo&p_workspace=NNN> Click</a>'); end;
ここで、NNNは作業領域IDです。
このプロシージャは、HTML DBユーザー・アカウント表に新しいアカウント・レコードを作成します。このプロシージャを実行するには、カレント・ユーザーに管理権限が必要です。
構文
HTMLDB_UTIL.CREATE_USER(
p_user_id NUMBER IN DEFAULT NULL
p_user_name VARCHAR2 IN
p_first_name VARCHAR2 IN DEFAULT NULL
p_last_name VARCHAR2 IN DEFAULT NULL
p_description VARCHAR2 IN DEFAULT NULL
p_email_address VARCHAR2 IN DEFAULT NULL
p_web_password VARCHAR2 IN
p_web_password_format VARCHAR2 IN DEFAULT NULL
p_group_ids VARCHAR2 IN DEFAULT NULL
p_developer_privs VARCHAR2 IN DEFAULT NULL
p_default_schema VARCHAR2 IN DEFAULT NULL
p_allow_access_to_schemas VARCHAR2 IN DEFAULT NULL
p_attribute_01 VARCHAR2 IN DEFAULT NULL
p_attribute_02 VARCHAR2 IN DEFAULT NULL
p_attribute_03 VARCHAR2 IN DEFAULT NULL
p_attribute_04 VARCHAR2 IN DEFAULT NULL
p_attribute_05 VARCHAR2 IN DEFAULT NULL
p_attribute_06 VARCHAR2 IN DEFAULT NULL
p_attribute_07 VARCHAR2 IN DEFAULT NULL
p_attribute_08 VARCHAR2 IN DEFAULT NULL
p_attribute_09 VARCHAR2 IN DEFAULT NULL
p_attribute_10 VARCHAR2 IN DEFAULT NULL)
パラメータ
表16-3に、CREATE_USERプロシージャで使用可能なパラメータを示します。
表16-3 CREATE_USERプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
p_user_id
|
ユーザー・アカウントの数値の主キー |
p_user_name
|
ログインに使用する英数字の名前 |
p_first_name
|
情報 |
p_last_name
|
情報 |
p_description
|
情報 |
p_email_address
|
電子メール・アドレス |
p_web_address
|
クリア・テキストのパスワード |
p_group_ID
|
コロンで区切られた数値のグループIDのリスト |
p_developer_privs
|
コロンで区切られた開発者権限(Oracle HTML DB管理者のみに適用)のリスト |
p_default_schema
|
ユーザーの作業領域に割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ |
p_allow_access_to_schemas
|
ユーザーの作業領域に割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト |
p_attribute_01
|
APIを使用してアクセスできる任意のテキスト |
例
BEGIN
HTMLDB_UTIL.CREATE_USER
P_USER_NAME => 'NEWUSER1',
P_WEB_PASSWORD => 'secret99');
END;
このプロシージャは、HTML DBユーザー・アカウントが使用中であることを前提として、現在認証されているユーザーのパスワードを変更します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.CREATE_USER_GROUP(
p_id NUMBER IN
p_group_name VARCHAR2 IN
p_security_group_id NUMBER IN
p_group_desc VARCHAR2 IN);
パラメータ
表16-4に、CREATE_USER_GROUPプロシージャで使用可能なパラメータを示します。
表16-4 CREATE_USER_GROUPパラメータ
| パラメータ | 説明 |
|---|---|
p_id
|
グループの主キー |
p_group_name
|
任意の名前 |
p_security_group_id
|
作業領域ID |
p_group_desc
|
説明テキスト |
例
BEGINHTMLDB_UTIL.CREATE_USER_GROUP (
p_id => 0 - trigger will assign PK,
p_group_name => 'Managers',
p_security_group_id => null, -- defaults to current workspace ID
p_group_desc => 'text');
END;
このファンクションは、カレント・ユーザーが指定したグループのメンバーかどうかに基づいてブール結果を戻します。グループの指定には、グループ名またはグループIDを使用できます。
構文
HTMLDB_UTIL.CURRENT_USER_IN_GROUP(
p_group_name IN VARCHAR2)
RETURN BOOLEAN;
HTMLDB_UTIL.CURRENT_USER_IN_GROUP(
p_group_id IN NUMBER)
RETURN BOOLEAN;
パラメータ
表16-5に、CURRENT_USER_IN_GROUPファンクションで使用可能なパラメータを示します。
表16-5 CURRENT_USER_IN_GROUPパラメータ
| パラメータ | 説明 |
|---|---|
p_group_name
|
作業領域内の既存グループの名前を指定します。 |
p_group_id
|
作業領域内の既存グループの数値のIDを指定します。 |
例
DECLARE VAL BOOLEAN; BEGIN VAL := HTMLDB_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'Managers'); END;
このプロシージャを使用すると、ユーザー・アカウント・レコードを変更できます。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
EDIT_USER (
p_user_id NUMBER IN
p_user_name VARCHAR2 IN
p_first_name VARCHAR2 IN DEFAULT
p_last_name VARCHAR2 IN DEFAULT
p_web_password VARCHAR2 IN DEFAULT
p_new_password VARCHAR2 IN DEFAULT
p_email_address VARCHAR2 IN DEFAULT
p_start_date VARCHAR2 IN DEFAULT
p_end_date VARCHAR2 IN DEFAULT
p_employee_id VARCHAR2 IN DEFAULT
p_allow_access_to_schemas VARCHAR2 IN DEFAULT
p_person_type VARCHAR2 IN DEFAULT
p_default_schema VARCHAR2 IN DEFAULT
p_group_idS VARCHAR2 IN DEFAULT
P_DEVELOPER_ROLES VARCHAR2 IN DEFAULT
P_DESCRIPTION VARCHAR2 IN DEFAULTIN);
パラメータ
表16-6に、EDIT_USERプロシージャで使用可能なパラメータを示します。
表16-6 EDIT_USERパラメータ
| パラメータ | 説明 |
|---|---|
p_user_id
|
ユーザー・アカウントの数値の主キー |
p_user_name
|
ログインに使用する英数字の名前 |
p_first_name
|
情報 |
p_last_name
|
情報 |
p_web_password
|
クリア・テキストのパスワード |
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_privs
|
コロンで区切られた開発者権限(HTML DBではADMINのみが有効)のリスト |
p_description
|
情報 |
このプロシージャは、Oracle HTML DBページからコールされると、現行の作業領域の定義、作業領域ユーザーおよび作業領域グループのエクスポート・ファイルを作成します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.EXPORT_USERS(
p_export_format in VARCHAR2 DEFAULT 'UNIX')
パラメータ
表16-7に、EXPORT_USERSプロシージャで使用可能なパラメータを示します。
表16-7 EXPORT_USERSパラメータ
| パラメータ | 説明 |
|---|---|
p_export_format
|
エクスポート・ファイルの行を形式化する方法を指定します。「UNIX」を指定すると、改行で区切られた行が含まれるファイルが生成されます。「DOS」を指定すると、キャリッジ・リターンと改行で区切られた行が含まれるファイルが生成されます。
|
例
BEGIN HTMLDB_UTIL.EXPORT_USERS; END;
このファンクションは、カレント・セッションまたは指定したセッション内のカレント・アプリケーションまたは指定したアプリケーションのセッション・ステートをフェッチします。
構文
HTMLDB_UTIL.FETCH_APP_ITEM(
p_item IN VARCHAR2,
p_app IN NUMBER DEFAULT NULL,
p_session IN NUMBER DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表16-8に、FETCH_APP_ITEMファンクションで使用可能なパラメータを示します。
表16-8 FETCH_APP_ITEMパラメータ
| パラメータ | 説明 |
|---|---|
p_item
|
現行の値がフェッチされるアプリケーション・レベル・アイテム(ページ・アイテムではない)の名前 |
p_app
|
アイテムを所有するアプリケーションのID(カレント・アプリケーションの場合はNULLのまま) |
p_session
|
値を取得するセッションID(カレント・セッションの場合はNULLのまま) |
例
DECLARE VAL VARCHAR2(30); BEGIN VAL := HTMLDB_UTIL.FETCH_APP_ITEM (p_item=>'F300_NAME',p_app=>300); END;
このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
FETCH_USER (
P_USER_ID NUMBER IN
P_WORKSPACE VARCHAR2 OUT
P_USER_NAME VARCHAR2 OUT
P_FIRST_NAME VARCHAR2 OUT
P_LAST_NAME VARCHAR2 OUT
P_WEB_PASSWORD VARCHAR2 OUT
P_EMAIL_ADDRESS VARCHAR2 OUT
P_START_DATE VARCHAR2 OUT
P_END_DATE VARCHAR2 OUT
P_EMPLOYEE_ID VARCHAR2 OUT
P_ALLOW_ACCESS_TO_SCHEMAS VARCHAR2 OUT
P_PERSON_TYPE VARCHAR2 OUT
P_DEFAULT_SCHEMA VARCHAR2 OUT
P_GROUPS VARCHAR2 OUT
P_DEVELOPER_ROLE VARCHAR2 OUT);
パラメータ
表16-9に、FETCH_USERプロシージャで使用可能なパラメータを示します。
表16-9 FETCH_USERパラメータ
| パラメータ | 説明 |
|---|---|
p_user_id
|
ユーザー・アカウントの数値の主キー |
p_workspace
|
作業領域の名前 |
p_user_name
|
ログインに使用する英数字の名前 |
p_first_name
|
情報 |
p_last_name
|
情報 |
p_description
|
情報 |
p_email_address
|
電子メール・アドレス |
p_start_date
|
未使用 |
p_end_date
|
未使用 |
p_employee_id
|
未使用 |
p_allow_access_to_schemas
|
ユーザーの作業領域に割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト |
p_person_type
|
未使用 |
p_default_schema
|
ユーザーの作業領域に割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ |
p_groups
|
未使用 |
p_developer_role
|
未使用 |
このファンクションは、指定した作業領域の数値のセキュリティ・グループIDを戻します。
構文
HTMLDB_UTIL.FIND_SECURITY_GROUP_ID(
p_workspace IN VARCHAR2
RETURN NUMBER;
パラメータ
p_workspaceは、作業領域の名前です。
例
DECLARE VAL NUMBER; BEGIN VAL := HTMLDB_UTIL.FIND_SECURITY_GROUP_ID (p_workspace=>'DEMOS'); END;
このファンクションは、セキュリティ・グループIDに関連付けられた作業領域名を戻します。
構文
HTMLDB_UTIL.FIND_WORKSPACE(
p_security_group_id IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
p_security_group_idは、作業領域のセキュリティ・グループIDです。
例
DECLARE VAL NUMBER; BEGIN VAL := HTMLDB_UTIL.FIND_ FIND_WORKSPACE (p_security_group_id =>'20'); END;
このファンクションは、HTML DBアカウント表内の指定したユーザーの1つの属性値(1から10)を戻します。
構文
HTMLDB_UTIL.GET_ATTRIBUTE(
p_username IN VARCHAR2
p_attribute_number IN NUMBER)
RETURN VARCHAR2;
パラメータ
表16-10に、GET_ATTRIBUTEファンクションで使用可能なパラメータを示します。
例
DECLARE VAL VARCHAR2(30);
BEGIN
VAL := HTMLDB_UTIL.GET_ATTRIBUTE (
p_username => 'SCOTT',
p_attribute_number => 1);
END;
このファンクションは、カレント・ユーザーの数値のユーザーIDを戻します。
構文
HTMLDB_UTIL.GET_CURRENT_USER_ID; RETURN NUMBER;
例
DECLARE VAL NUMBER; BEGIN VAL := HTMLDB_UTIL.GET_CURRENT_USER_ID; END;
このファンクションは、カレント・ユーザーに関連付けられたデフォルトのスキーマ名を戻します。
構文
HTMLDB_UTIL.GET_DEFAULT_SCHEMA; RETURN VARCHAR2;
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL. GET_DEFAULT_SCHEMA; END;
このファンクションは、指定したユーザーに関連付けられた電子メール・アドレスを戻します。
構文
HTMLDB_UTIL.GET_EMAIL( p_username IN VARCHAR2); RETURN VARCHAR2;
パラメータ
p_usernameは、アカウント内のユーザー名です。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_EMAIL(p_username => 'SCOTT'); END;
このプロシージャは、Oracle HTML DBファイル・リポジトリからファイルをダウンロードします。
構文
HTMLDB_UTIL.GET_FILE (
p_file_id IN VARCHAR2,
p_mime_type IN VARCHAR2 DEFAULT NULL,
p_inline IN VARCHAR2 DEFAULT 'NO');
パラメータ
表16-11に、GET_FILEプロシージャで使用可能なパラメータを示します。
表16-11 GET_FILEパラメータ
| パラメータ | 説明 |
|---|---|
p_file_id
|
ダウンロードするファイルのHTMLDB_APPLICATION_FILES内のID。HTMLDB_APPLICATION_FILESは、作業領域にアップロードされるすべてのファイルのビューです。次の例では、HTMLDB_APPLICATION_FILESを使用する方法を示します。
DECLARE
l_file_id NUMBER;
BEGIN
SELECT id INTO l_file_id FROM HTMLDB_APPLICATION_FILES
WHERE filename = 'myxml';
--
HTMLDB_UTIL.GET_FILE(
p_file_id => l_file_id,
p_mime_type => 'text/xml',
p_inline => 'YES');
END;
|
p_mime_type
|
ダウンロードするファイルのMIMEタイプ。 |
p_inline
|
有効値はYESおよびNOです。YESを選択すると、ブラウザでインライン表示されます。NOを選択すると、添付としてダウンロードされます。
|
例
BEGIN
HTMLDB_UTIL.GET_FILE(
p_file_id => '8675309',
p_mime_type => 'text/xml',
p_inline => 'YES');
END;
このファンクションは、Oracle HTML DBファイル・リポジトリ内のファイルの主キーを取得します。
構文
HTMLDB_UTIL.GET_FILE_ID (
p_fname IN VARCHAR2)
RETURN NUMBER;
パラメータ
p_fnameは、ダウンロードするファイルのHTMLDB_APPLICATION_FILES内の名前です。HTMLDB_APPLICATION_FILESは、作業領域にアップロードされるすべてのファイルのビューです。
例
DECLARE
l_name VARCHAR2(255);
l_file_id NUMBER;
BEGIN
SELECT name INTO l_name FROM HTMLDB_APPLICATION_FILES
WHERE filename = 'F125.sql';
--
l_file_id := HTMLDB_UTIL.GET_FILE_ID(p_fname => );
END;
このファンクションは、指定したユーザー・アカウント・レコードに格納されるFIRST_NAMEフィールドを戻します。
構文
HTMLDB_UTIL.GET_FIRST_NAME p_username IN VARCHAR2); RETURN VARCHAR2;
パラメータ
p_usernameは、アカウント内のユーザー名を示します。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_FIRST_NAME(p_username => 'SCOTT'); END;
このファンクションは、指定したユーザーがメンバーであるグループ名のコロンで区切られたリストを戻します。
構文
HTMLDB_UTIL.GET_GROUPS_USER_BELONGS_TO( p_username IN VARCHAR2); RETURN VARCHAR2;
パラメータ
p_usernameは、アカウント内のユーザー名を示します。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_GROUPS_USER_BELONGS_TO(p_username => 'SCOTT'); END;
このファンクションは、作業領域内の指定したグループの数値のIDを戻します。
構文
HTMLDB_UTIL.GET_GROUP_ID( p_group_name); RETURN VARCHAR2;
パラメータ
p_group_nameは、アカウント内のユーザー名を示します。
例
DECLARE VAL NUMBER; BEGIN VAL := HTMLDB_UTIL.GET_GROUP_ID(p_group_name => 'Managers'); END;
このファンクションは、数値のIDで指定したグループの名前を戻します。
構文
HTMLDB_UTIL.GET_GROUP_NAME( p_group_id); RETURN NUMBER;
パラメータ
p_group_idは、作業領域内のグループの数値のIDを示します。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_GROUP_NAME(p_group_id => 8922003); END;
このファンクションは、指定したユーザー・アカウント・レコードに格納されるLAST_NAMEフィールドを戻します。
構文
HTMLDB_UTIL.GET_LAST_NAME( p_username IN VARCHAR2); RETURN VARCHAR2;
パラメータ
p_usernameは、ユーザー・アカウント・レコード内のユーザー名です。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_LAST_NAME(p_username => 'SCOTT'); END;
このファンクションは、数値のIDで指定したユーザー・アカウントのユーザー名を戻します。
構文
HTMLDB_UTIL.GET_USERNAME( p_userid); RETURN NUMBER;
パラメータ
p_useridは、作業領域内のユーザー・アカウントの数値のIDを示します。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_USERNAME(p_userid => 228922003); END;
このファンクションは、数値アイテムの数値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle HTML DBアプリケーションで使用できます。また、HTMLDB_UTIL.GET_NUMERIC_SESSION_STATEのかわりに、短縮版のファンクションNVを使用できます。
構文
HTMLDB_UTIL.GET_NUMERIC_SESSION_STATE (
p_item IN VARCHAR2)
RETURN NUMBER;
パラメータ
p_itemは、セッション・ステートをフェッチするアイテムの大/小文字が区別されない名前です。
例
DECLARE
l_item_value Number;
BEGIN
l_item_value := HTMLDB_UTIL.GET_NUMERIC_SESSION_STATE('my_item');
END;
このファンクションは、指定したユーザーについて、以前保存されたプリファレンスの値を取得します。
構文
HTMLDB_UTIL.GET_PREFERENCE (
p_preference IN VARCHAR2 DEFAULT NULL,
p_user IN VARCHAR2 DEFAULT V('USER'))
RETURN VARCHAR2;
パラメータ
表16-12に、GET_PREFERENCEファンクションで使用可能なパラメータを示します。
表16-12 GET_PREFERENCEパラメータ
| パラメータ | 説明 |
|---|---|
p_preference
|
値を取得するプリファレンスの名前 |
p_value
|
プリファレンスの値 |
p_user
|
プリファレンスが取得されるユーザー |
例
DECLARE
l_default_view VARCHAR2(255);
BEGIN
l_default_view := HTMLDB_UTIL.GET_PREFERENCE(
p_preference => 'default_view',
p_user => :APP_USER);
END;
このファンクションはアイテムの値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle HTML DBアプリケーションで使用できます。また、HTMLDB_UTIL.GET_SESSION_STATEのかわりに、短縮版のファンクションVを使用できます。
構文
HTMLDB_UTIL.GET_SESSION_STATE (
p_item IN VARCHAR2)
RETURN VARCHAR2;
パラメータ
p_itemは、セッション・ステートをフェッチするアイテムの大/小文字が区別されない名前です。
例
DECLARE
l_item_value VARCHAR2(255);
BEGIN
l_item_value := HTMLDB_UTIL.GET_SESSION_STATE('my_item');
END;
このファンクションは、作業領域内の指定したユーザーの数値のIDを戻します。
構文
HTMLDB_UTIL.GET_USER_ID( p_username); RETURN VARCHAR2;
パラメータ
p_usernameは、作業領域内のユーザーの名前を示します。
例
DECLARE VAL NUMBER; BEGIN VAL := HTMLDB_UTIL.GET_USER_ID(p_username => 'Managers');END;
このファンクションは、指定したユーザー・アカウント・レコードに格納されるDEVELOPER_ROLEフィールドを戻します。
構文
HTMLDB_UTIL.GET_USER_ROLES( p_username IN VARCHAR2); RETURN VARCHAR2;
パラメータ
p_usernameは、アカウント内のユーザー名を示します。
例
DECLARE VAL VARCHAR2; BEGIN VAL := HTMLDB_UTIL.GET_USER_ROLES(p_username=>'SCOTT'); END;
このファンクションは、現行の作業領域内の指定したユーザー・アカウントのパスワードの検証に基づいてブール結果を戻します。パスワードが一致した場合はtrueを、パスワードが一致しない場合はfalseを戻します。
構文
HTMLDB_UTIL.IS_LOGIN_PASSWORD_VALID( p_username IN VARCHAR2, p_password IN VARCHAR2); RETURN BOOLEAN;
パラメータ
表16-13に、IS_LOGIN_PASSWORD_VALIDファンクションで使用可能なパラメータを示します。
表16-13 IS_LOGIN_PASSWORD_VALIDパラメータ
| パラメータ | 説明 |
|---|---|
p_username
|
アカウント内のユーザー名 |
p_password
|
アカウントに格納されているパスワードと比較されるパスワード |
例
DECLARE VAL BOOLEAN;
BEGIN
VAL := HTMLDB_UTIL. IS_LOGIN_PASSWORD_VALID (
p_username=>'SCOTT'
p_password=>'tiger');
END;
このファンクションは、指定したユーザー・アカウントが作業領域内で一意であるかどうかに基づいてブール結果を戻します。
構文
HTMLDB_UTIL.IS_USERNAME_UNIQUE( P_username IN VARCHAR2); RETURN BOOLEAN;
パラメータ
p_usernameは、テストするユーザー名を示します。
例
DECLARE VAL BOOLEAN;
BEGIN
VAL := HTMLDB_UTIL.IS_USERNAME_UNIQUE(
p_username=>'SCOTT');
END;
このファンクションは、HTMLDB_UTIL.SAVEKEY_NUMによって設定されたパッケージ変数(wwv_flow_utilities.g_val_num)の値を取得します。
構文
HTMLDB_UTIL.KEYVAL_NUM;
パラメータ
p_valは以前に保存された数値です。
例
DECLARE
BEGIN
VAL := HTMLDB_UTIL.KEYVAL_NUM;
END;
このファンクションは、HTMLDB_UTIL.SAVEKEY_VC2によって設定されたパッケージ変数(wwv_flow_utilities.g_val_vc2)の値を取得します。
構文
HTMLDB_UTIL.KEYVAL_VC2;
パラメータ
p_valは以前に保存されたVARCHAR2値です。
例
DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := HTMLDB_UTIL.KEYVAL_VC2;
END;
このファンクションは、レンダリング可能なf?p相対URLを指定すると、セッション・ステート保護チェックサム引数(&cs=)が必要な場合に追加します。
構文
HTMLDB_UTIL.PREPARE_URL ( p_url IN VARCHAR2 p_url_charset IN VARCHAR2 default null, p_checksum_type IN VARCHAR2 default null) RETURN VARCHAR2;
パラメータ
表16-14に、PREPARE_URLファンクションで使用可能なパラメータを示します。
表16-14 PREPARE_URLパラメータ
| パラメータ | 説明 |
|---|---|
| p_url | すべての置換が解決されているf?p相対URL |
| p_url_charset | 引数値に含まれている特殊文字をエスケープする場合に使用するキャラクタ・セット名(UTF-8など)
|
| p_checksum type | NULL、あるいは6つの値(SESSIONまたは3、 PRIVATE_BOOKMARKまたは2、あるいはPUBLIC_BOOKMARKまたは1)のいずれか
|
例
DECLARE
l_url varchar2(2000);
l_session number := v('APP_SESSION');
BEGIN
l_url :=
HTMLDB_UTIL.PREPARE_URL('f?p=100:1:'||l_session||'::NO::P1_ITEM:xyz');
END;
セキュリティ・スキーム名を指定すると、このファンクションによってカレント・ユーザーがセキュリティ・チェックを通過するかどうかが判断されます。
構文
HTMLDB_UTIL.PUBLIC_CHECK_AUTHORIZATION (
p_security_scheme IN VARCHAR2)
RETURN BOOLEAN;
パラメータ
p_security_nameは、ユーザーがセキュリティ・チェックを通過するかどうかを判断するセキュリティ・スキームの名前です。
例
DECLARE
l_check_security BOOLEAN;
BEGIN
l_check_security := HTMLDB_UTIL.PUBLIC_CHECK_AUTHORIZATION('my_auth_scheme');
END;
このファンクションは指定したユーザーのプリファレンスを削除します。
構文
HTMLDB_UTIL.REMOVE_PREFERENCE(
p_preference IN VARCHAR2 DEFAULT NULL,
p_user IN VARCHAR2 DEFAULT V('USER'));
パラメータ
表16-15に、REMOVE_PREFERENCEプロシージャで使用可能なパラメータを示します。
例
BEGIN
HTMLDB_UTIL.REMOVE_PREFERENCE(
p_preference => 'default_view',
p_user => :APP_USER);
END;
このプロシージャは、ユーザーの列ヘッダーのソート・プリファレンスの値を削除します。
構文
HTMLDB_UTIL.REMOVE_SORT_PREFERENCES (
p_user IN VARCHAR2 DEFAULT V('USER'));
パラメータ
p_userは、ソート・プリファレンスを削除するユーザーを示します。
例
BEGIN
HTMLDB_UTIL.REMOVE_SORT_PREFERENCES(:APP_USER);
END;
このプロシージャは、主キーまたはユーザー名で指定したユーザー・アカウントを削除します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.REMOVE_USER(
p_user_id IN NUMBER,
p_user_name IN VARCHAR2);
パラメータ
表16-16に、REMOVE_USERプロシージャで使用可能なパラメータを示します。
例
BEGIN HTMLDB_UTIL.REMOVE_USER(p_user_id=>'99997'); END; BEGIN HTMLDB_UTIL.REMOVE_USER(p_user_name => 'SCOTT'); END;
このプロシージャは、指定したユーザーのパスワードを再設定し、そのパスワードをメッセージとして現行の作業領域内の指定したアカウントの電子メール・アドレスに電子メール送信します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.RESET_PW(
p_user IN VARCHAR2,
p_msg IN VARCHAR2);
パラメータ
表16-17に、RESET_PWプロシージャで使用可能なパラメータを示します。
例
BEGIN
HTMLDB_UTIL.RESET_PW(
p_user => 'SCOTT',
p_msg => 'Contact help desk at 555-1212 with questions');
END;
Oracle HTML DBは、パフォーマンスを向上させるために、認可スキームの評価後、その結果をキャッシュします。 このプロシージャを使用すると、キャッシュを元に戻して、ページ表示または受入れプロセス中に次回認可スキームが適用された場合に各認可スキームの再検証を要求できます。このプロシージャは、アプリケーション内でユーザーの信頼性(認可プロファイル)を変更できるようにする場合に使用できます。
構文
HTMLDB_UTIL.RESET_AUTHORIZATIONS;
例
BEGIN HTMLDB_UTIL.RESET_AUTHORIZATIONS; END;
このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_num)を、ファンクションKEYVAL_NUMを使用して取得できるように設定します。
構文
HTMLDB_UTIL.SAVEKEY_NUM(
p_val IN NUMBER);
パラメータ
p_valは保存する数値です。
例
DECLARE
VAL NUMBER;
BEGIN
VAL := HTMLDB_UTIL.SAVEKEY_NUM(
p_val => 10);
END;
このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_vc2)を、ファンクションKEYVAL_VC2を使用して取得できるように設定します。
構文
HTMLDB_UTIL.SAVEKEY_VC2
p_val IN VARCHAR2);
パラメータ
p_valは保存するVARCHAR2値です。
例
DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := HTMLDB_UTIL.SAVEKEY_VC2(
p_val => 'XXX');
END;
このプロシージャは、HTML DBアカウント表内のユーザーのいずれかの属性値の値(1から10)を設定します。
構文
HTMLDB_UTIL.SET_ATTRIBUTE(
p_userid IN NUMBER,
p_attribute_number IN NUMBER,
p_attribute_value IN VARCHAR2);
パラメータ
表16-18に、SET_ATTRIBUTEプロシージャで使用可能なパラメータを示します。
表16-18 SET_ATTRIBUTEパラメータ
| パラメータ | 説明 |
|---|---|
p_userid
|
ユーザー・アカウントの数値のID |
p_attribute_number
|
ユーザー・レコードの属性番号(1から10) |
| p_attribute_value | ユーザー・レコードに設定する、p_attribute_numberで指定した属性の値
|
例
DECLARE VAL VARCHAR2(30);
BEGIN
HTMLDB_UTIL.SET_ATTRIBUTE (
p_userid => htmldb_util.get_user_id(p_username => 'SCOTT'),
p_attribute_number => 1,
p_attribute_value => 'foo');
END;
このプロシージャは、ユーザー・アカウントを新しい電子メール・アドレスに更新します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.SET_EMAIL(
p_userid IN NUMBER,
p_email IN VARCHAR2);
パラメータ
表16-19に、SET_EMAILプロシージャで使用可能なパラメータを示します。
例
BEGIN
HTMLDB_UTIL.SET_EMAIL(
p_userid => '888883232',
P_email => 'scott.scott@oracle.com');
END;
このプロシージャは、ユーザー・アカウントを新しいFIRST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.SET_FIRST_NAME(
p_userid IN NUMBER,
p_first_name IN VARCHAR2);
パラメータ
表16-20に、SET_FIRST_NAMEプロシージャで使用可能なパラメータを示します。
表16-20 SET_FIRST_NAMEパラメータ
| パラメータ | 説明 |
|---|---|
p_userid
|
ユーザー・アカウントの数値のID |
p_first_name
|
ユーザー・アカウントに保存するFIRST_NAME値
|
例
BEGIN
HTMLDB_UTIL.SET_FIRST_NAME(
p_userid => '888883232',
P_first_name => 'Scott');
END;
このプロシージャは、ユーザー・アカウントを新しいLAST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.SET_LAST_NAME(
p_userid IN NUMBER,
p_last_name IN VARCHAR2);
パラメータ
表16-21に、SET_LAST_NAMEプロシージャで使用可能なパラメータを示します。
例
BEGIN
HTMLDB_UTIL.SET_LAST_NAME(
p_userid => '888883232',
p_last_name => 'SMITH');
END;
このプロシージャは、ユーザー・アカウントを新しいUSER_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。
構文
HTMLDB_UTIL.USERNAME( p_userid IN NUMBER, p_username IN VARCHAR2);
パラメータ
表16-22に、SET_USERNAMEプロシージャで使用可能なパラメータを示します。
例
BEGIN
HTMLDB_UTIL.SET_USERNAME(
p_userid => '888883232',
P_username => 'USER-XRAY');
END;
このプロシージャは、ユーザーのカレント・セッション以降に保持されるプリファレンスを設定します。
構文
HTMLDB_UTIL.SET_PREFERENCE (
p_preference IN VARCHAR2 DEFAULT NULL,
p_value IN VARCHAR2 DEFAULT NULL,
p_user IN VARCHAR2 DEFAULT NULL);
パラメータ
表16-23に、SET_PREFERENCEプロシージャで使用可能なパラメータを示します。
表16-23 SET_PREFERENCEパラメータ
| パラメータ | 説明 |
|---|---|
p_preference
|
プリファレンスの名前(大/小文字が区別される) |
p_value
|
プリファレンスの値 |
p_user
|
プリファレンスが設定されるユーザー |
例
BEGIN
HTMLDB_UTIL.SET_PREFERENCE(
p_preference => 'default_view',
p_value => 'WEEKLY',
p_user => :APP_USER);
END;
このプロシージャは、現行のOracle HTML DBセッションのセッション・ステートを設定します。
構文
HTMLDB_UTIL.SET_SESSION_STATE (
p_name IN VARCHAR2 DEFAULT NULL,
p_value IN VARCHAR2 DEFAULT NULL);
パラメータ
表16-24に、SET_SESSION_STATEプロシージャで使用可能なパラメータを示します。
表16-24 SET_SESSION_STATEパラメータ
| パラメータ | 説明 |
|---|---|
p_name
|
セッション・ステートを設定する、アプリケーションまたはページ・レベルのアイテムの名前 |
p_value
|
設定するセッション・ステートの値 |
例
BEGIN
HTMLDB_UTIL.SET_SESSION_STATE('my_item','myvalue');
END;
文字列を指定すると、このファンクションによって型がHTMLDB_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列が戻されます。この配列はVARCHAR2(32767)表です。
構文
HTMLDB_UTIL.STRING_TO_TABLE (
p_string IN VARCHAR2,
p_separator IN VARCHAR2 DEFAULT ':')
RETURN HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
パラメータ
表16-25に、STRING_TO_TABLEファンクションで使用可能なパラメータを示します。
表16-25 STRING_TO_TABLEパラメータ
| パラメータ | 説明 |
|---|---|
p_string
|
型がHTMLDB_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表に変換される文字列。
|
p_separator
|
文字列のセパレータ。デフォルトはコロンです。 |
例
DECLARE
l_vc_arr2 HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := HTMLDB_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;
型がHTMLDB_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表を指定すると、このファンクションによって、指定したセパレータかデフォルトのセパレータ(コロン(:))で区切られた文字列が戻されます。
構文
HTMLDB_UTIL.TABLE_TO_STRING (
p_table IN HTMLDB_APPLICATION_GLOBAL.VC_ARR2,
p_string IN VARCHAR2 DEFAULT ':')
RETURN VARCHAR2;
パラメータ
表16-26に、TABLE_TO_STRINGファンクションで使用可能なパラメータを示します。
表16-26 TABLE_TO_STRINGパラメータ
| パラメータ | 説明 |
|---|---|
p_string
|
文字列のセパレータ。デフォルトのセパレータはコロンです。 |
p_table
|
区切られた文字列に変換されるPL/SQL表。 |
例
DECLARE
l_string VARCHAR2(255);
l_vc_arr2 HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := HTMLDB_UTIL.STRING_TO_TABLE('One:Two:Three');
l_string := HTMLDB_UTIL.TABLE_TO_STRING(l_vc_arr2);
END;
HTMLDB_MAILパッケージを使用してOracle HTML DBアプリケーションから電子メールを送信できます。このパッケージは、Oracleで提供されるUTL_SMTPパッケージをベースとして構築されています。このような依存性があるため、HTMLDB_MAILを使用するには、UTL_SMTPパッケージがインストール済で機能している必要があります。
|
参照: UTL_SMTPパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 |
HTMLDB_MAILには2つのプロシージャが含まれています。アプリケーションから外部へ電子メール・メッセージを送信するには、HTMLDB_MAIL.SENDを使用します。HTMLDB_MAIL_QUEUEに格納されたメール・メッセージを配信するには、 HTMLDB_MAIL.PUSH_QUEUEを使用します。
このセクションの構成は次のとおりです。
|
注意: 電子メールを送信するための最も有効な方法は、バックグラウンド・ジョブ(DBMS_JOBパッケージを使用)を作成して、アクティブなメール・キューに格納されているすべてのメール・メッセージを定期的に送信することです。 |
このプロシージャは、アプリケーションから外部へ電子メール・メッセージを送信します。このプロシージャを使用してVARCHAR2またはCLOBをp_bodyおよびp_body_htmlに渡すことができますが、データ型は同じである必要があります。つまり、CLOBをP_BODYに、VARCHAR2をp_body_htmlに渡すことはできません。
HTMLDB_MAIL.SENDを使用する際は、次の点に注意してください。
1行は1000文字以下にしてください。 SMTP/MIME仕様によると、1行は1000文字以下にしてください。この制限に準拠するには、キャリッジ・リターンまたは改行文字を追加してp_bodyまたはp_body_htmlパラメータを1000文字以下のチャンクに分割する必要があります。そうしないと、不完全なメッセージ、不要な感嘆符を含むメッセージなど、電子メール・メッセージにエラーが発生します。
プレーン・テキストおよびHTML電子メール・コンテンツ。値をp_body_htmlではなくp_bodyに渡すと、プレーン・テキスト・メッセージが作成されます。値をp_bodyおよびp_body_htmlに渡すと、プレーン・テキストとHTMLの両方のコンテンツを含むマルチパート・メッセージが作成されます。受信者の電子メール・クライアントの設定および機能によって表示内容が決定されます。ほとんどの最新の電子メール・クライアントはHTML形式の電子メールを読むことができますが、セキュリティ問題に対処するため、この機能を無効にしているユーザーがいることに注意してください。
イメージを使用しないでください。<img />タグを使用してp_body_htmlでイメージを参照する場合、受信者がそのイメージを表示するには、受信者の電子メール・クライアントがそのイメージにアクセスできる必要があることに注意してください。
たとえば、次のようにネットワーク上にあるhello.gifというイメージを参照すると想定します。
<img src="http://someserver.com/hello.gif" alt="Hello" />]
この例では、イメージは電子メールに添付されるのではなく、電子メールによって参照されます。受信者がこのイメージを表示するには、Webブラウザを使用してこのイメージにアクセスできる必要があります。イメージがファイアウォールの内側にあり、受信者がファイアウォールの外側にいる場合、イメージは表示されません。このため、イメージは使用しないでください。イメージを含める必要がある場合は、イメージにアクセスできない場合にテキストの説明を提供できるようにALT属性を含めるようにしてください。
構文
HTMLDB_MAIL.SEND(
p_to IN VARCHAR2,
p_from IN VARCHAR2,
p_body IN [ VARCHAR2 | CLOB ],
p_body_html IN [ VARCHAR2 | CLOB ] DEFAULT,
p_subj IN VARCHAR2 DEFAULT)
p_cc IN VARCHAR2 DEFAULT)
p_bcc IN VARCHAR2 DEFAULT);
パラメータ
表16-27に、SENDプロシージャで使用可能なパラメータを示します。
表16-27 SENDパラメータ
| パラメータ | 説明 |
|---|---|
p_to
|
電子メールの送信先となる有効な電子メール・アドレス(必須)。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。 |
p_from
|
電子メールの送信元となる電子メール・アドレス(必須)。この電子メール・アドレスは有効なアドレスである必要があります。有効でない場合、メッセージは送信されません。 |
p_body
|
HTML形式ではなく、プレーン・テキスト形式の電子メールの本文(必須)。値がp_body_htmlに渡された場合、受信者に表示されるテキストはこれだけになります。値がp_body_htmlに渡されなかった場合、このテキストは、HTMLをサポートしていない電子メール・クライアント、またはHTMLが無効になっている電子メール・クライアントに対してのみ表示されます。キャリッジ・リターンまたは改行(CRLF)を1000文字ごとに含める必要があります。
|
p_body_html
|
HTML形式の電子メールの本文。これは、<html>タグおよび<body>タグを含む完全なHTMLドキュメントである必要があります。キャリッジ・リターンまたは改行(CRLF)を使用しない場合、1行は1000文字以下にする必要があります。
|
p_subj
|
電子メールの件名。 |
p_cc
|
電子メールの内容のコピー先となる有効な電子メール・アドレス。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。 |
p_bcc
|
電子メールの内容のブラインド・コピー先となる有効な電子メール・アドレス。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。 |
例
次の例では、HTMLDB_MAIL.SENDを使用してアプリケーションからプレーン・テキスト電子メール・メッセージを送信する方法を示します。
-- Example One: Plain Text only message
DECLARE
l_body CLOB;
BEGIN
l_body := 'Thank you for your interest in the HTMLDB_MAIL
package.'||utl_tcp.crlf||utl_tcp.crlf;
l_body := l_body ||' Sincerely,'||utl_tcp.crlf;
l_body := l_body ||' The HTMLDB Dev Team'||utl_tcp.crlf;
htmldb_mail.send(
p_to => 'some_user@somewhere.com', -- change to your email address
p_from => 'some_sender@somewhere.com', -- change to a real senders email address
p_body => l_body,
p_subj => 'HTMLDB_MAIL Package - Plain Text message');
END;
/
次の例では、HTMLDB_MAIL.SENDを使用してアプリケーションからHTML電子メール・メッセージを送信する方法を示します。キャリッジ・リターンまたは改行(CRLF)を1000文字ごとに含める必要があります。次の例では、utl_tcp.crlfを使用します。
-- Example Two: Plain Text / HTML message
DECLARE
l_body CLOB;
l_body_html CLOB;
BEGIN
l_body := 'To view the content of this message, please use an HTML enabled mail client.'||utl_tcp.crlf;
l_body_html := '<html>
<head>
<style type="text/css">
body{
font-size:10pt;
margin:30px;
background-color:#ffffff;}
span.sig{font-style:italic;
font-weight:bold;
color:#811919;}
</style>
</head>
<body>'||utl_tcp.crlf;
l_body_html := l_body_html ||'<p>Thank you for your interest in the <strong>HTMLDB_MAIL</strong> package.</p>'||utl_tcp.crlf;
l_body_html := l_body_html ||' Sincerely,<br />'||utl_tcp.crlf;
l_body_html := l_body_html ||' <span class="sig">The HTMLDB Dev Team</span><br />'||utl_tcp.crlf;
htmldb_mail.send(
p_to => 'some_user@somewhere.com', -- change to your email address
p_from => 'some_sender@somewhere.com', -- change to a real senders email address
p_body => l_body,
p_body_html => l_body_html,
p_subj => 'HTMLDB_MAIL Package - HTML formatted message');
END;
/
Oracle HTML DBでは、未送信の電子メール・メッセージは、HTMLDB_MAIL_QUEUEという表に格納されます。HTMLDB_MAIL.PUSH_QUEUEプロシージャを起動することによって、このキューに格納されたメール・メッセージを指定したSMTPゲートウェイに手動で配信できます。このプロシージャには、2つの入力パラメータが必要です。
p_smtp_hostname: SMTPゲートウェイのホスト名を定義します。
p_smtp_portno: SMTPゲートウェイのポート番号を定義します(25など)。
Oracle HTML DBによって、正常に送信されたメッセージのログが、サーバーのローカル時間でのタイムスタンプとともにHTMLDB_MAIL_LOGに作成されます。電子メールを送信するための最も有効な方法は、バックグラウンド・ジョブ(DBMS_JOBパッケージを使用)を作成して、アクティブなメール・キューに格納されているすべてのメール・メッセージを定期的に送信することです。
構文
HTMLDB_MAIL.PUSH_QUEUE(
p_smtp_hostname IN VARCHAR2 DEFAULT,
p_smtp_portno IN NUMBER DEFAULT;
パラメータ
表16-28に、PUSH_QUEUEプロシージャで使用可能なパラメータを示します。
例
次に、シェル・スクリプトを使用したHTMLDB_MAIL.PUSH_QUEUEプロシージャの使用例を示します。この例は、UNIXまたはLinuxの使用環境にのみ適用されます。この例では、SMTPゲートウェイのホスト名はsmtp01.oracle.com、SMTPゲートウェイのポート番号は25として定義されています。
SQLPLUS / <<EOF
FLOWS_020000.HTMLDB_MAIL.PUSH_QUEUE('smtp01.oracle.com','25');
DISCONNECT
EXIT
EOF
HTMLDB_ITEMパッケージを使用すると、ページごとに別々にアイテムを作成するかわりに、SQL問合せに基づいてフォーム要素を動的に作成できます。
このセクションの構成は次のとおりです。
このファンクションはチェック・ボックスを作成します。
構文
HTMLDB_ITEM.CHECKBOX(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_checked_values IN VARCHAR2 DEFAULT,
p_checked_values_delimiter IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-29に、CHECKBOXファンクションで使用可能なパラメータを示します。
表16-29 CHECKBOXパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
どのHTMLDB_APPLICATIONグローバルを使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。
|
p_value
|
チェック・ボックス、非表示フィールドまたは入力フォーム・アイテムの値。 |
p_attributes
|
HTMLタグ属性を制御(無効にするなど)します。 |
p_checked_values
|
デフォルトで選択される値。 |
p_checked_values_delimiter
|
前述のパラメータp_checked_valuesの値を区切ります。
|
デフォルトのチェック・ボックスの動作
次の例に、emp表の各従業員に対して選択された状態のチェック・ボックスを作成する方法を示します。
SELECT HTMLDB_ITEM.CHECKBOX(1,empno,'CHECKED') " ",
ename,
job
FROM emp
ORDER BY 1
次の例に、従業員のすべてのチェック・ボックスを選択されていない状態で表示する方法を示します。
SELECT HTMLDB_ITEM.CHECKBOX(1,empno) " ",
ename,
job
FROM emp
ORDER BY 1
次の例に、部門10の従業員のチェック・ボックスを選択する方法を示します。
SELECT HTMLDB_ITEM.CHECKBOX(1,empno,DECODE(deptno,10,'CHECKED',null)) " ",
ename,
job
FROM emp
ORDER BY 1
次の例に、部門10または20の従業員のチェック・ボックスを選択する方法を示します。
SELECT HTMLDB_ITEM.CHECKBOX(1,deptno,NULL,'10:20',':') " ",
ename,
job
FROM emp
ORDER BY 1
送信時プロセスの作成
アプリケーションでチェック・ボックスを使用する場合、送信時プロセスを作成して、選択した行で特定のタイプのアクションを実行する必要がある場合があります。たとえば、次のロジックを使用する「削除」ボタンを使用できます。
SELECT HTMLDB_ITEM.CHECKBOX(1,empno) " ",
ename,
job
FROM emp
ORDER by 1
次に送信時プロセスの例を示します。
FOR I in 1..HTMLDB_APPLICATION.G_F01.COUNT LOOP
DELETE FROM emp WHERE empno = to_number(HTMLDB_APPLICATION.G_F01(i));
END LOOP;
日付フィールドを含むフォームでこのファンクションを使用します。DATE_POPUPは、「カレンダ」ポップアップ・ボタンがある日時フィールドを動的に生成します。
構文
HTMLDB_ITEM.DATE_POPUP(
p_idx IN NUMBER,
p_row IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_date_format IN DATE DEFAULT,
p_size IN NUMBER DEFAULT,
p_maxlength IN NUMBER DEFAULT,
p_attributes IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-30に、DATE_POPUPファンクションで使用可能なパラメータを示します。
表16-30 DATE_POPUPパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
どのHTMLDB_APPLICATIONグローバルを使用するかを決定する番号。値の有効範囲は1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。
|
p_row
|
p_rowは使用できません。この値を指定しても無視されます。 |
p_value
|
フィールド・アイテムの値。 |
p_date_format
|
有効なデータベースの日付書式。 |
p_size
|
HTMLタグ属性を制御(無効にするなど)します。 |
p_maxlength
|
入力可能な最大文字数を決定します。<input> HTMLタグの最大長の属性になります。 |
p_attributes
|
追加するHTMLパラメータ。 |
|
参照: TO_CHARまたはTO_DATEファンクションについては、『Oracle Database SQLリファレンス』を参照してください。
|
例
次の例に、HTMLDB_ITEM.DATE_POPUPを使用して、hiredate列の「カレンダ」ポップアップ・ボタンを作成する方法を示します。
SELECT empno, HTMLDB_ITEM.HIDDEN(1,empno)|| HTMLDB_ITEM.TEXT(2,ename) ename, HTMLDB_ITEM.TEXT(3,job) job, mgr, HTMLDB_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hd, HTMLDB_ITEM.TEXT(5,sal) sal, HTMLDB_ITEM.TEXT(6,comm) comm, deptno FROM emp ORDER BY 1
このファンクションを使用して、アイテムをテキストとして表示します。ただし、その値はセッション・ステートに保存されます。
構文
HTMLDB_ITEM.DISPLAY_AND_SAVE(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT NULL
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表16-31に、DISPLAY_AND_SAVEで使用可能なパラメータを示します。
表16-31 DISPLAY_AND_SAVEパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
どのHTMLDB_APPLICATIONグローバルを使用するかを決定する番号。値の有効範囲は1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。
|
p_value
|
現行の値。 |
p_item_id
|
<input>タグのHTML属性のID。
|
p_item_label
|
テキスト・フィールド・アイテムのラベル。 |
例
次の例では、HTMLDB_ITEM.DISPLAY_AND_SAVEを使用する方法を示します。
SELECT HTMLDB_ITEM.DISPLAY_AND_SAVE(10,empno) c FROM emp
このファンクションは、非表示のフォーム・アイテムを動的に生成します。
構文
HTMLDB_ITEM.HIDDEN(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-32に、HIDDENファンクションで使用可能なパラメータを示します。
表16-32 HIDDENパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
生成するアイテムの識別番号。この番号によって、どのG_FXXグローバルが移入されるかが決定されます。
|
p_value
|
非表示の入力フォーム・アイテムの値。 |
例
通常、表の主キーは非表示列として格納され、後続の更新処理で使用されます。次にSLQ問合せの例を示します。
SELECT empno, HTMLDB_ITEM.HIDDEN(1,empno)|| HTMLDB_ITEM.TEXT(2,ename) ename, HTMLDB_ITEM.TEXT(3,job) job, mgr, HTMLDB_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hiredate, HTMLDB_ITEM.TEXT(5,sal) sal, HTMLDB_ITEM.TEXT(6,comm) comm, deptno FROM emp ORDER BY 1
前述の問合せは、次のページ・プロセスを使用して結果を処理します。
BEGIN
FOR i IN 1..HTMLDB_APPLICATION.G_F01.COUNT LOOP
UPDATE emp
SET
ename=HTMLDB_APPLICATION.G_F02(i),
job=HTMLDB_APPLICATION.G_F03(i),
hiredate=to_date(HTMLDB_APPLICATION.G_F04(i),'dd-mon-yyyy'),
sal=HTMLDB_APPLICATION.G_F05(i),
comm=HTMLDB_APPLICATION.G_F06(i)
WHERE empno=to_number(HTMLDB_APPLICATION.G_F01(i));
END LOOP;
END;
G_F01列(非表示のEMPNOに対応)は、各行を更新するキーとして使用されることに注意してください。
このファンクションは、HTMLDB_ITEM.MULTI_ROW_UPDATEに値を渡し、ロストした更新の検出に使用されます。ロストした更新の検出によって、データに同時にアクセスできるアプリケーションのデータ整合性が保証されます。
構文
HTMLDB_ITEM.MD5_CHECKSUM(
p_value01 IN VARCHAR2 DEFAULT,
p_value02 IN VARCHAR2 DEFAULT,
p_value03 IN VARCHAR2 DEFAULT,
...
p_value50 IN VARCHAR2 DEFAULT,
p_col_sep IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-33に、MD5_CHECKSUMファンクションで使用可能なパラメータを示します。
表16-33 MD5_CHECKSUMパラメータ
| パラメータ | 説明 |
|---|---|
p_value01
...
|
50個の値が入力可能です。このパラメータを指定しない場合、デフォルトはNULLになります。 |
p_col_sep
|
p_valueの入力を区切るために使用する文字列。デフォルトは縦線(|)です。
|
例
SELECT HTMLDB_ITEM.MD5_CHECKSUM(ename,job,sal) FROM emp
このファンクションは、ロストした更新の検出に使用されます。これによって、データに同時にアクセスできるアプリケーションのデータの整合性が保証されます。
このファンクションは、非表示のフォーム・フィールドを作成し、50個の入力値を含みます。HTMLDB_ITEM.MD5_HIDDENでも、OracleデータベースのDBMS_OBFUSCATION_TOOLKITを使用して、MD5チェックサムが生成されます。
UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.MD5())
MD5チェックサムでは、データがネットワークを介して転送されるときに、データが変更または盗用されていないことを保証するために、ハッシュやシーケンスによってデータ整合性が提供されます。
構文
HTMLDB_ITEM.MD5_HIDDEN(
p_idx IN NUMBER,
p_value01 IN VARCHAR2 DEFAULT,
p_value02 IN VARCHAR2 DEFAULT,
p_value03 IN VARCHAR2 DEFAULT,
...
p_value50 IN VARCHAR2 DEFAULT,
p_col_sep IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-34に、MD5_HIDDENファンクションで使用可能なパラメータを示します。
表16-34 MD5_HIDDENパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
生成されるフォーム要素を示します。たとえば、1はF01、2はF02です。通常、p_idxパラメータは指定した列の定数です。
|
p_value01
...
|
50個の値が入力可能です。このパラメータを指定しない場合、デフォルトはNULLになります。 |
p_col_sep
|
p_valueの入力を区切るために使用する文字列。デフォルトは縦線(|)です。
|
例
p_idxは生成されるFXXフォーム要素を指定します。次の例では、7はF07を生成します。また、HTML非表示フォーム要素が生成されることにも注意してください。
SELECT HTMLDB_ITEM.MD5_HIDDEN(7,ename,job,sal), ename, job, sal FROM emp
このプロシージャは、複数行を更新するプロセス・タイプ内で使用します。このプロシージャでは、次の形式で複数行の更新定義を含む文字列を指定します。
OWNER:TABLE:pk_column1,pk_idx:pk_column2,pk_idx2|col,idx:col,idx...
構文
HTMLDB_ITEM.MULTI_ROW_UPDATE(
p_mru_string IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
例
このプロシージャをアプリケーション・レベルのプロセスで間接的に使用するには、問合せを作成して、データベース・データのフォームを生成する必要があります。次の例に、emp表で複数行の更新を作成する方法を示します。
SELECT empno, HTMLDB_ITEM.HIDDEN(1,empno), HTMLDB_ITEM.HIDDEN(2,deptno), HTMLDB_ITEM.TEXT(3,ename), HTMLDB_ITEM.SELECT_LIST_FROM_QUERY(4,job,'SELECT DISTINCT job FROM emp'), HTMLDB_ITEM.TEXT(5,sal), HTMLDB_ITEM.TEXT(7,comm), HTMLDB_ITEM.MD5_CHECKSUM(ename,job,sal,comm), deptno FROM emp WHERE deptno = 20
HTMLDB_ITEM.MD5_HIDDENではなく、HTMLDB_ITEM.MD5_CHECKSUMをコールすることに注意してください。HTMLDB_ITEM.MULTI_ROW_UPDATEはHTMLDB_APPLICATION.G_FCSからチェックサムを取得するため、ページを送信する際に、HTMLDB_APPLICATION.G_FCSを移入するためにHTMLDB_ITEM.MD5_CHECKSUMをコールする必要があります。また、HTMLDB_ITEM.MD5_CHECKSUMの列の順序は、MULTI_ROW_UPDATEプロセスでの順序と同一である必要があります。これらの更新は、次のような文字列の複数の行の更新の送信後ページ・プロセスを使用して、処理(またはデータベースに適用)できます。
SCOTT:emp:empno,1:deptno,2|ename,3:job,4:sal,5:comm,7:,:,:,:,
このファンクションは、アプリケーションLOVからHTMLポップアップ選択リストを生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションと同様に、POPUP_FROM_LOVは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.POPUP_FROM_LOV(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_lov_name IN VARCHAR2,
p_width IN VARCHAR2 DEFAULT,
p_max_length IN VARCHAR2 DEFAULT,
p_form_index IN VARCHAR2 DEFAULT,
p_escape_html IN VARCHAR2 DEFAULT,
p_max_elements IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_ok_to_query IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表16-35に、POPUP_FROM_LOVファンクションで使用可能なパラメータを示します。
表16-35 POPUP_FROM_LOVパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxは指定した列の定数です。
|
p_value
|
フォーム要素の現行の値。この値は、p_lov_nameパラメータのいずれかの値である必要があります。
|
p_lov_name
|
このポップアップで使用される名前付きLOV。 |
p_width
|
テキスト・ボックスの幅。 |
p_max_length
|
テキスト・ボックスに入力可能な最大文字数。 |
p_form_index
|
アイテムが含まれるページのHTMLフォーム。デフォルトは0ですが、ほとんど使用しません。
このパラメータは、ページ・テンプレートにカスタム・フォーム(別のWebサイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが |
p_escape_html
|
同等のものにエスケープする必要がある特殊文字の置換文字。
値の範囲はYESおよびNOです。YESの場合は、特殊文字がエスケープされます。このパラメータは、問合せが無効なHTMLを戻すことがわかっている場合に有効です。 |
p_max_elements
|
問合せで戻せる行数の制限。ユーザー検索によるパフォーマンスの影響を制限します。このパラメータに値を入力すると、ユーザーがより限定された結果セットを検索するように強制します。 |
p_attributes
|
フォーム・アイテムで使用する追加のHTML属性。 |
p_ok_to_query
|
値の範囲はYESおよびNOです。YESの場合、ポップアップはLOVに最初の行セットを戻します。NOの場合、行を戻すために検索が開始されます。
|
p_item_id
|
フォーム要素のID属性。 |
p_item_label
|
アイテムに対して作成された非表示のラベル。 |
例
次の例に、DEPTというLOVからポップアップを生成する問合せの例を示します。
SELECT HTMLDB_ITEM.POPUP_FROM_LOV (1,deptno,'DEPT_LOV') dt FROM emp
このファンクションは問合せからHTMLポップアップ選択リストを生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションと同様に、POPUP_FROM_QUERYは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.POPUP_FROM_QUERY(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_lov_query IN VARCHAR2,
p_width IN VARCHAR2 DEFAULT,
p_max_length IN VARCHAR2 DEFAULT,
p_form_index IN VARCHAR2 DEFAULT,
p_escape_html IN VARCHAR2 DEFAULT,
p_max_elements IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_ok_to_query IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表16-36に、POPUP_FROM_QUERYファンクションで使用可能なパラメータを示します。
表16-36 POPUP_FROM_QUERYパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxは指定した列の定数です。
|
p_value
|
フォーム要素の現行の値。この値は、p_lov_queryパラメータのいずれかの値である必要があります。
|
p_lov_query
|
2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。
SELECT dname, deptno FROM dept |
p_width
|
テキスト・ボックスの幅。 |
p_max_length
|
テキスト・ボックスに入力可能な最大文字数。 |
p_form_index
|
アイテムが含まれるページのHTMLフォーム。デフォルトは0ですが、ほとんど使用しません。
このパラメータは、ページ・テンプレートにカスタム・フォーム(別のWebサイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが |
p_escape_html
|
同等のものにエスケープする必要がある特殊文字の置換文字。
値の範囲はYESおよびNOです。YESの場合は、特殊文字がエスケープされます。このパラメータは、問合せが無効なHTMLを戻すことがわかっている場合に有効です。 |
p_max_elements
|
問合せで戻せる行数の制限。ユーザー検索によるパフォーマンスの影響を制限します。このパラメータに値を入力すると、ユーザーがより限定された結果セットを検索するように強制します。 |
p_attributes
|
フォーム・アイテムで使用する追加のHTML属性。 |
p_ok_to_query
|
値の範囲はYESおよびNOです。YESの場合、ポップアップはLOVに最初の行セットを戻します。NOの場合、行を戻すために検索が開始されます。
|
p_item_id
|
フォーム要素のID属性。 |
p_item_label
|
アイテムに対して作成された非表示のラベル。 |
例
次の例に、emp表からポップアップ選択リストを生成する問合せの例を示します。
SELECT HTMLDB_ITEM.POPUP_FROM_QUERY (1,deptno,'SELECT dname, deptno FROM dept') dt FROM emp
このファンクションは、共有LOVからポップアップ・キー選択リストを生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションと同様に、POPUPKEY_FROM_LOVは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.POPUPKEY_FROM_LOV(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_lov_name IN VARCHAR2,
p_width IN VARCHAR2 DEFAULT,
p_max_length IN VARCHAR2 DEFAULT,
p_form_index IN VARCHAR2 DEFAULT,
p_escape_html IN VARCHAR2 DEFAULT,
p_max_elements IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_ok_to_query IN VARCHAR2 DEFAULT,
RETURN VARCHAR2;
ポップアップに関連付けられたテキスト・フィールドはLOV問合せの1列目に表示されますが、実際の値は問合せの2列目で指定されます。
パラメータ
表16-37に、POPUPKEY_FROM_LOVファンクションで使用可能なパラメータを示します。
表16-37 POPUPKEY_FROM_LOVパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名を示します。たとえば、1はF01、2はF02です。通常、p_idxは指定した列の定数です。
SELECT HTMLDB_ITEM.POPUPKEY_FROM_LOV (1,deptno,'DEPT') dt, HTMLDB_ITEM.HIDDEN(3,empno) eno |
p_value
|
現行の値を示します。この値は、P_LOV_NAMEパラメータのいずれかの値である必要があります。
|
p_lov_name
|
このポップアップで使用される名前付きLOVを示します。 |
p_width
|
テキスト・ボックスの幅。 |
p_max_length
|
テキスト・ボックスに入力可能な最大文字数。 |
p_form_index
|
アイテムが含まれるページのHTMLフォーム。デフォルトは0ですが、ほとんど使用しません。
このパラメータは、ページ・テンプレートにカスタム・フォーム(別のWebサイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが |
p_escape_html
|
同等のものにエスケープする必要がある特殊文字の置換文字。
このパラメータは、問合せが無効なHTMLを戻すことがわかっている場合に有効です。 |
p_max_elements
|
問合せで戻せる行数の制限。ユーザー検索によるパフォーマンスの影響を制限します。このパラメータに値を入力すると、ユーザーがより限定された結果セットを検索するように強制します。 |
p_attributes
|
フォーム・アイテムで使用する追加のHTML属性。 |
p_ok_to_query
|
値の範囲はYESおよびNOです。YESの場合、ポップアップはLOVに最初の行セットを戻します。NOの場合、行を戻すために検索が開始されます。
|
例
次の例に、共有LOVからポップアップ・キー選択リストを生成する方法を示します。
SELECT HTMLDB_ITEM.POPUPKEY_FROM_LOV (1,deptno,'DEPT') dt FROM emp
このファンクションは、SQL問合せからポップアップ・キー選択リストを生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションと同様に、POPUPKEY_FROM_QUERYは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.POPUPKEY_FROM_QUERY(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_lov_query IN VARCHAR2,
p_width IN VARCHAR2 DEFAULT,
p_max_length IN VARCHAR2 DEFAULT,
p_form_index IN VARCHAR2 DEFAULT,
p_escape_html IN VARCHAR2 DEFAULT,
p_max_elements IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_ok_to_query IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表16-38に、POPUPKEY_FROM_QUERYファンクションで使用可能なパラメータを示します。
表16-38 POPUPKEY_FROM_QUERYパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxは指定した列の定数です。
SELECT HTMLDB_ITEM.POPUPKEY_FROM_QUERY (1,deptno,'SELECT dname, deptno FROM dept') dt, HTMLDB_ITEM.HIDDEN(3,empno) eno |
p_value
|
フォーム要素の現行の値。この値は、P_LOV_QUERYパラメータのいずれかの値である必要があります。
|
p_lov_query
|
このポップアップで使用されるLOV問合せ。 |
p_width
|
テキスト・ボックスの幅。 |
p_max_length
|
テキスト・ボックスに入力可能な最大文字数。 |
p_form_index
|
アイテムが含まれるページのHTMLフォーム。デフォルトは0ですが、ほとんど使用しません。
このパラメータは、ページ・テンプレートにカスタム・フォーム(別のWebサイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが |
p_escape_html
|
同等のものにエスケープする必要がある特殊文字の置換文字。
このパラメータは、問合せが無効なHTMLを戻すことがわかっている場合に有効です。 |
p_max_elements
|
問合せで戻せる行数の制限。ユーザー検索によるパフォーマンスの影響を制限します。このパラメータに値を入力すると、ユーザーがより限定された結果セットを検索するように強制します。 |
p_attributes
|
フォーム・アイテムで使用する追加のHTML属性。 |
p_ok_to_query
|
値の範囲はYESおよびNOです。YESの場合、ポップアップはLOVに最初の行セットを戻します。NOの場合、行を戻すために検索が開始されます。
|
p_item_id
|
フォーム要素のID属性。 |
p_item_label
|
アイテムに対して作成された非表示のラベル。 |
例
次の例に、SQL問合せからポップアップ選択リストを生成する方法を示します。
SELECT HTMLDB_ITEM.POPUPKEY_FROM_QUERY (1,deptno,'SELECT dname, deptno FROM dept') dt FROM emp
このファンクションは、SQL問合せからラジオ・グループを生成します。
構文
HTMLDB_ITEM.RADIOGROUP(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_selected_value IN VARCHAR2 DEFAULT,
p_display IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_onblur IN VARCHAR2 DEFAULT,
p_onchange IN VARCHAR2 DEFAULT,
p_onfocus IN VARCHAR2 DEFAULT,)
RETURN VARCHAR2;
パラメータ
表16-39に、RADIOGROUPファンクションで使用可能なパラメータを示します。
表16-39 RADIOGROUPパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
どのHTMLDB_APPLICATIONグローバルを使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。
|
p_value
|
ラジオ・グループの値。 |
p_selected_value
|
オンまたは選択済になる値。 |
p_display
|
ラジオ・オプションの横に表示されるテキスト。 |
p_attributes
|
追加するHTMLパラメータ。 |
p_onblur
|
onBlurイベントで実行するJavaScript。 |
p_onchange
|
onChangeイベントで実行するJavaScript。 |
p_onfocus
|
onFocusイベントで実行するJavaScript。 |
例
次の例に、ラジオ・グループのデフォルトとしてemp表から部門20を選択する方法を示します。
SELECT HTMLDB_ITEM.CHECKBOX(1,deptno,'20',dname) dt FROM dept ORDER BY 1
このファンクションは、静的選択リストを動的に生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションのように、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.SELECT_LIST(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_list_values IN VARCHAR2 DEFAULT,
p_attributes IN VARCHAR2 DEFAULT,
p_show_null IN VARCHAR2 DEFAULT,
p_null_value IN VARCHAR2 DEFAULT,
p_null_text IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT,
p_item_label IN VARCHAR2 DEFAULT,
p_show_extra IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-40に、SELECT_LISTファンクションで使用可能なパラメータを示します。
表16-40 SELECT_LISTパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、P_IDXパラメータは指定した列の定数です。
|
p_value
|
現行の値。この値はP_LIST_VALUESパラメータの値である必要があります。
|
p_list_values
|
カンマで区切られた静的値のリスト。表示値および戻り値はセミコロンで区切られます。
これは、 |
p_attributes
|
追加するHTMLパラメータ。 |
p_show_null
|
NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
|
p_null_value
|
ユーザーがNULLのオプションを選択すると戻される値。p_show_nullがYESの場合にのみ使用できます。
|
p_null_text
|
ユーザーがNULLのオプションを選択すると表示される値。p_show_nullがYESの場合にのみ使用できます。
|
p_item_id
|
<input>タグのHTML属性のID。 |
p_item_label
|
選択リストのラベル。 |
p_show_extra
|
p_valueの値が選択リストで指定されていない場合でも、 現在の値を表示します。 |
例
次の例に、Yesを表示し、Yを戻し、Yをデフォルトとし、F01のフォームのアイテムを生成する静的選択リストを示します。
SELECT HTMLDB_ITEM.SELECT_LIST(1,'Y','Yes;Y,No;N') FROM emp
このファンクションは、共有LOVから選択リストを動的に生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションのように、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.SELECT_LIST_FROM_LOV(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_lov IN VARCHAR2,
p_attributes IN VARCHAR2 DEFAULT,
p_show_null IN VARCHAR2 DEFAULT,
p_null_value IN VARCHAR2 DEFAULT,
p_null_text IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT,
p_item_label IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-41に、SELECT_LIST_FROM_LOVファンクションで使用可能なパラメータを示します。
表16-41 SELECT_LIST_FROM_LOVパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxパラメータは指定した列の定数です。
|
p_value
|
現行の値。この値はp_list_valuesパラメータの値である必要があります。
|
p_lov
|
アプリケーションLOVのテキストの名前。このLOVはアプリケーションで定義する必要があります。このパラメータは、select_list_from_lovファンクションでのみ使用されます。
|
p_attributes
|
追加するHTMLパラメータ。 |
p_show_null
|
NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
|
p_null_value
|
ユーザーがNULLのオプションを選択すると戻される値。p_show_nullがYESの場合にのみ使用できます。
|
p_null_text
|
ユーザーがNULLのオプションを選択すると表示される値。p_show_nullがYESの場合にのみ使用できます。
|
p_item_id
|
<input>タグのHTML属性のID。
|
p_item_label
|
選択リストのラベル。 |
例
次に、アプリケーションで定義されたLOVに基づく選択リストを示します。
SELECT HTMLDB_ITEM.SELECT_LIST_FROM_LOV(2,job,'JOB_FLOW_LOV') FROM emp
このファンクションは、共有LOVから大規模(32KBを超える)な選択リストを動的に生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションのように、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。このファンクションはSELECT_LIST_FROM_LOVと同じですが、戻り値はCLOBになります。 そのため、4000文字を超える列値を処理する必要があるSQL問合せで使用できます。
構文
HTMLDB_ITEM.SELECT_LIST_FROM_LOV_XL(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_lov IN VARCHAR2,
p_attributes IN VARCHAR2 DEFAULT,
p_show_null IN VARCHAR2 DEFAULT,
p_null_value IN VARCHAR2 DEFAULT,
p_null_text IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT,
p_item_label IN VARCHAR2 DEFAULT)
RETURN CLOB;
パラメータ
表16-42に、SELECT_LIST_FROM_LOV_XLファンクションで使用可能なパラメータを示します。
表16-42 SELECT_LIST_FROM_LOV_XLパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxパラメータは指定した列の定数です。
|
p_value
|
現行の値。この値はp_list_valuesパラメータの値である必要があります。
|
p_lov
|
LOVのテキストの名前。このLOVはアプリケーションで定義する必要があります。このパラメータは、select_list_from_lovファンクションでのみ使用されます。
|
p_attributes
|
追加するHTMLパラメータ。 |
p_show_null
|
NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
|
p_null_value
|
ユーザーがNULLのオプションを選択すると戻される値。p_show_nullがYESの場合にのみ使用できます。
|
p_null_text
|
ユーザーがNULLのオプションを選択すると表示される値。p_show_nullがYESの場合にのみ使用できます。
|
p_item_id
|
<input>タグのHTML属性のID。 |
p_item_label
|
選択リストのラベル。 |
例
次に、アプリケーションで定義されたLOVに基づく選択リストを示します。
SELECT HTMLDB_ITEM.SELECT_LIST_FROM_LOV_XL(2,job,'JOB_FLOW_LOV') FROM emp
このファンクションは、問合せから選択リストを動的に生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションのように、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.SELECT_LIST_FROM_QUERY(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_query IN VARCHAR2,
p_attributes IN VARCHAR2 DEFAULT,
p_show_null IN VARCHAR2 DEFAULT,
p_null_value IN VARCHAR2 DEFAULT,
p_null_text IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT,
p_item_label IN VARCHAR2 DEFAULT,
p_show_extra IN VARCHAR2 DEFAULT)
RETURN VARCHAR2;
パラメータ
表16-43に、SELECT_LIST_FROM_QUERYファンクションで使用可能なパラメータを示します。
表16-43 SELECT_LIST_FROM_QUERYパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxパラメータは指定した列の定数です。
|
p_value
|
現行の値。この値はp_list_valuesパラメータの値である必要があります。
|
p_query
|
2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。
SELECT dname, deptno FROM dept これは、 |
p_attributes
|
追加するHTMLパラメータ。 |
p_show_null
|
NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
|
p_null_value
|
ユーザーがNULLのオプションを選択すると戻される値。p_show_nullがYESの場合にのみ使用できます。
|
p_null_text
|
ユーザーがNULLのオプションを選択すると表示される値。p_show_nullがYESの場合にのみ使用できます。
|
p_item_id
|
<input>タグのHTML属性のID。 |
p_item_label
|
選択リストのラベル。 |
p_show_extra
|
p_valueの値が選択リストで指定されていない場合でも、 現在の値を表示します。 |
例
次に、SQL問合せに基づく選択リストを示します。
SELECT HTMLDB_ITEM.SELECT_LIST_FROM_QUERY(3,job,'SELECT DISTINCT job FROM emp') FROM emp
このファンクションはSELECT_LIST_FROM_QUERYと同じですが、戻り値はCLOBになります。そのため、4000文字を超える列値を処理する必要があるSQL問合せで使用できます。HTMLDB_ITEMパッケージで使用可能なその他のファンクションのように、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。
構文
HTMLDB_ITEM.SELECT_LIST_FROM_QUERY_XL(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT,
p_query IN VARCHAR2,
p_attributes IN VARCHAR2 DEFAULT,
p_show_null IN VARCHAR2 DEFAULT,
p_null_value IN VARCHAR2 DEFAULT,
p_null_text IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT,
p_item_label IN VARCHAR2 DEFAULT,
p_show_extra IN VARCHAR2 DEFAULT)
RETURN CLOB;
パラメータ
表16-44に、SELECT_LIST_FROM_QUERY_XLファンクションで使用可能なパラメータを示します。
表16-44 SELECT_LIST_FROM_QUERY_XLパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxパラメータは指定した列の定数です。
|
p_value
|
現行の値。この値はp_list_valuesパラメータの値である必要があります。
|
p_query
|
2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。
SELECT dname, deptno FROM dept これは、 |
p_attributes
|
追加するHTMLパラメータ。 |
p_show_null
|
NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
|
p_null_value
|
ユーザーがNULLのオプションを選択すると戻される値。p_show_nullがYESの場合にのみ使用できます。
|
p_null_text
|
ユーザーがNULLのオプションを選択すると表示される値。p_show_nullがYESの場合にのみ使用できます。
|
p_item_id
|
<input>タグのHTML属性のID。 |
p_item_label
|
選択リストのラベル。 |
p_show_extra
|
p_valueの値が選択リストで指定されていない場合でも、 現在の値を表示します。 |
例
次に、SQL問合せに基づく選択リストを示します。
SELECT HTMLDB_ITEM.SELECT_LIST_FROM_QUERY_XL(3,job,'SELECT DISTINCT job FROM emp') FROM emp
このファンクションはテキスト領域を作成します。
構文
HTMLDB_ITEM.TEXTAREA(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT NULL,
p_rows IN NUMBER DEAULT 40,
p_cols IN NUMBER DEFAULT 4
p_attributes IN VARCHAR2 DEFAULT,
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
パラメータ
表16-45に、TEXTAREAファンクションで使用可能なパラメータを示します。
表16-45 TEXTAREAパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
生成するアイテムの識別番号。この番号によって、どのG_FXXグローバルが移入されるかが決定されます。
|
p_value
|
テキスト領域アイテムの値。 |
p_rows
|
テキスト領域の高さ(HTML行属性)。 |
p_cols
|
テキスト領域の幅(HTML列属性)。 |
p_attributes
|
追加するHTMLパラメータ。 |
p_item_id
|
<input>タグのHTML属性のID。
|
p_item_label
|
テキストのテキスト領域アイテムのラベル。 |
例
次に、SQL問合せに基づくテキスト領域の例を示します。
SELECT HTMLDB_ITEM.TEXTAREA(3,ename,5,80) a FROM emp
このファンクションは、SQL問合せからテキスト・フィールド(またはテキスト入力フォーム・アイテム)を生成します。
構文
HTMLDB_ITEM.TEXT(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT NULL,
p_size IN NUMBER DEFAULT NULL,
p_maxlength IN NUMBER DEFAULT NULL,
p_attributes IN VARCHAR2 DEFAULT NULL,
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL)
パラメータ
表16-46に、TEXTファンクションで使用可能なパラメータを示します。
表16-46 TEXTパラメータ
| パラメータ | 説明 |
|---|---|
p_idx
|
生成するアイテムの識別番号。この番号によって、どのG_FXXグローバルが移入されるかが決定されます。
|
p_value
|
テキスト・フィールド・アイテムの値。 |
p_size
|
HTMLタグ属性を制御(無効にするなど)します。 |
p_maxlength
|
テキスト・ボックスに入力可能な最大文字数。 |
p_attributes
|
追加するHTMLパラメータ。 |
p_item_id
|
<input>タグのHTML属性のID。
|
p_item_label
|
テキスト・フィールド・アイテムのラベル。 |
例
次の問合せの例に、各行に1つの更新フィールドを生成する方法を示します。ename、salおよびcomm列ではHTMLDB_ITEM.TEXTファンクションを使用して、各行にHTMLテキスト・フィールドを生成します。また、各列がそれぞれの配列に格納されるように問合せ内の各アイテムに一意のp_idxパラメータが渡されることに注意してください。
SELECT empno, HTMLDB_ITEM.HIDDEN(1,empno)|| HTMLDB_ITEM.TEXT(2,ename) ename, HTMLDB_ITEM.TEXT(3,job) job, mgr, HTMLDB_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hiredate, HTMLDB_ITEM.TEXT(5,sal) sal, HTMLDB_ITEM.TEXT(6,comm) comm, deptno FROM emp ORDER BY 1
このファンクションを使用して、アイテムをテキストとして表示します。そのテキストは、名前付きLOVの表示値を導出します。
構文
HTMLDB_ITEM.TEXT_FROM_LOV (
p_value IN VARCHAR2 DEFAULT NULL,
p_lov IN VARCHAR2,
p_null_text IN VARCHAR2 DEFAULT '%')
RETURN VARCHAR2;
パラメータ
表16-47に、TEXT_FROM_LOVファンクションで使用可能なパラメータを示します。
表16-47 TEXT_FROM_LOVパラメータ
| パラメータ | 説明 |
|---|---|
p_value
|
フィールド・アイテムの値。 |
p_lov
|
共有LOVのテキストの名前。このLOVはアプリケーションで定義する必要があります。 |
p_null_text
|
フィールド・アイテムの値がNULLの場合、または対応するエントリがLOVの値p_valueで検出されない場合に表示される値。
|
例
次の例では、名前付きLOV(EMPNO_ENAME_LOV)から表示値を導出する方法を示します。
SELECT HTMLDB_ITEM.TEXT_FROM_LOV(empno,'EMPNO_ENAME_LOV') c FROM emp
このファンクションを使用して、アイテムをテキストとして表示します。そのテキストは、LOV問合せから表示値を導出します。
構文
HTMLDB_ITEM.TEXT_FROM_LOV_QUERY (
p_value IN VARCHAR2 DEFAULT NULL,
p_query IN VARCHAR2,
p_null_text IN VARCHAR2 DEFAULT '%')
RETURN VARCHAR2;
パラメータ
表16-48に、TEXT_FROM_LOV_QUERYファンクションで使用可能なパラメータを示します。
表16-48 TEXT_FROM_LOV_QUERYパラメータ
| パラメータ | 説明 |
|---|---|
p_value
|
フィールド・アイテムの値。 |
p_query
|
2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。
SELECT dname, deptno FROM dept |
p_null_text
|
フィールド・アイテムの値がNULLの場合、または対応するエントリがLOV問合せの値p_valueで指定されていない場合に表示される値。
|
例
次の例では、問合せから表示値を導出する方法を示します。
SELECT HTMLDB_ITEM.TEXT_FROM_LOV_QUERY(empno,'SELECT ename, empno FROM emp') c from emp
HTMLDB_APPLICATIONは、Oracle HTML DBレンダリング・エンジンを実装するPL/SQLパッケージです。このパッケージを使用すると、多くのグローバル変数を使用できます。表16-49に、HTMLDB_APPLICATIONで使用可能なグローバル変数を示します。
表16-49 HTMLDB_APPLICATIONで使用可能なグローバル変数
| グローバル変数 | 説明 |
|---|---|
G_USER
|
現在ログインしているユーザーを指定します。 |
G_FLOW_ID
|
現在実行されているアプリケーションのIDを指定します。 |
G_FLOW_STEP_ID
|
現在実行されているページのIDを指定します。 |
G_FLOW_OWNER
|
現在実行されているアプリケーションの解析対象のスキーマを指定します。 |
G_REQUEST
|
表示または受入れモジュールに最後に渡されるか、あるいは表示または受入れモジュール内に最後に設定されるリクエスト変数の値を指定します。 |
このセクションの構成は次のとおりです。
通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどのHTMLフォーム要素です。ウィザードを使用して新しいフォーム・アイテムを作成する場合、ウィザードは標準のネーミング形式を使用します。ネーミング形式ではハンドルが提供されるため、後でアイテムの値を取得できます。
独自のアイテムを作成する必要がある場合、ページを送信した後にHTMLDB_APPLICATION.G_F01からHTMLDB_APPLICATION.G_F50配列を参照してそれらにアクセスできます。F01、F02、F03などの形式を使用して入力パラメータを入力することによって、独自のHTMLフォーム・フィールドを作成できます。最大50個の入力パラメータ(F01からF50まで)を作成できます。次に例を示します。
<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="some value"> <TEXTAREA NAME="F02" ROWS=4 COLS=90 WRAP="VIRTUAL">this is the example of a text area.</TEXTAREA> <SELECT NAME="F03" SIZE="1"> <OPTION VALUE="abc">abc <OPTION VALUE="123">123 </SELECT>
F01からF50の入力アイテムはPL/SQL配列として宣言されるため、複数のアイテムに同じ値を指定できます。次に例を示します。
<INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 1"> <INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" ALUE="array element 2"> <INPUT TYPE="text" NAME="F01" SIZE="32" MAXLENGTH="32" VALUE="array element 3">
次のPL/SQLは、前述の例と同一のHTMLを作成することに注意してください。
FOR i IN 1..3 LOOP HTMLDB_ITEM.TEXT(P_IDX => 1, p_value =>'array element '||i , p_size =>32, p_maxlength =>32); END LOOP;
PL/SQL変数HTMLDB_APPLICATION.G_F01からHTMLDB_APPLICATION.G_F50を使用して、HTMLフォームによってポストされた値を参照できます。この要素は配列のため、値を直接参照できます。次に例を示します。
FOR i IN 1.. HTMLDB_APPLICATION.G_F01.COUNT LOOP
htp.p('element '||I||' has a value of '||HTMLDB_APPLICATION.G_F01(i));
END LOOP;
HTMLDB_ITEM.CHECKBOXを使用して表示したチェック・ボックスには、選択されている行に対してのみHTMLDB_APPLICATION配列の値が含まれることに注意してください。送信したすべての行に対応するHTMLDB_APPLICATION配列のエントリを含めることができる他のアイテム(TEXT、TEXTAREA、DATE_POPUP)と異なり、チェック・ボックスには、行が選択されている場合にのみHTMLDB_APPLICATION配列のエントリが含まれます。
Oracle HTML DBパブリック・ユーティリティの機能を使用して、配列を単一値に変換することもできます。 生成される文字列値は、コロンで区切られた配列要素値のリストです。次に例を示します。
htp.p(HTMLDB_UTIL.TABLE_TO_STRING(HTMLDB_APPLICATION.G_F01));
このファンクションを使用すると、データに対して操作を実行するアプリケーション・プロセスで、G_F01からG_F50の値を参照できます。次に、表に値を挿入するプロセスの例を示します。
FOR i IN 1..HTMLDB_APPLICATION.G_F01.COUNT LOOP
INSERT INTO my_table (my_column) VALUES HTMLDB_APPLICATION.G_F01(i);
END LOOP;
HTMLDB_CUSTOM_AUTHを使用すると、認証およびセッション管理に関連する様々な操作を実行できます。
このセクションの構成は次のとおりです。
このファンクションは、アプリケーション内のページ・レベル・アイテムの存在を確認します。このファンクションでは、パラメータp_item_nameが必要です。このファンクションはブール値(trueまたはfalse)を戻します。
構文
FUNCTION APPLICATION_PAGE_ITEM_EXISTS(
p_item_name IN VARCHAR2)
RETURN BOOLEAN;
このファンクションは、カレント・ページの認証属性がパブリック・ページに設定されているかどうかを確認し、ブール値(trueまたはfalse)を戻します。
構文
FUNCTION CURRENT_PAGE_IS_PUBLIC RETURN BOOLEAN;
このプロシージャは、SET_USERおよびSET_SESSION_IDファンクションを組み合せて、1回のコールに結合します。
構文
PROCEDURE DEFINE_USER_SESSION(
p_user IN VARCHAR2)
p_session_id IN NUMBER);
このプロシージャは、指定したアプリケーションのカレント認証スキームで使用されるセッションCookieのプロパティを取得します。これらのプロパティは、認証スキーム属性を表示することによって、アプリケーション・ビルダーに直接表示できます。
構文
HTMLDB_CUSTOM_AUTH.GET_COOKIE_PROPS( p_app_id IN NUMBER, p_cookie_name OUT VARCHAR2, p_cookie_path OUT VARCHAR2, p_cookie_domain OUT VARCHAR2);
パラメータ
表16-50に、GET_COOKIE_PROPSプロシージャで使用可能なパラメータを示します。
表16-50 GET_COOKIE_PROPSパラメータ
| パラメータ | 説明 |
|---|---|
p_app_id
|
現行の作業領域のアプリケーションIDです。 |
p_cookie_name
|
Cookie名です。 |
p_cookie_path
|
Cookieパスです。 |
p_cookie_domain
|
Cookieドメインです。 |
例
DECLARE
l_cookie_name varchar2(256);
l_cookie_path varchar2(256);
l_cookie_domain varchar2(256);
BEGIN
HTMLDB_CUSTOM_AUTH.GET_COOKIE_PROPS (
p _cookie_name => l_cookie_name,
p _cookie_path => l_cookie_path,
p _cookie_domain => l_cookie_domain);
END;
このプロシージャは、カレント・アプリケーションのカレント認証スキームのLDAP属性を取得します。これらのプロパティは、認証スキーム属性を表示することによって、アプリケーション・ビルダーに直接表示できます。
構文
HTMLDB_CUSTOM_AUTH.GET_LDAP_PROPS( p_ldap_host OUT VARCHAR2, p_ldap_port OUT NUMBER, p_ldap_dn OUT VARCHAR2, p_ldap_edit_function OUT VARCHAR2);
パラメータ
表16-51に、GET_LDAP_PROPSプロシージャで使用可能なパラメータを示します。
表16-51 GET_LDAP_PROPSパラメータ
| パラメータ | 説明 |
|---|---|
p_ldap_host
|
LDAPホスト名です。 |
p_ldap_port
|
LDAPポート番号です。 |
p_ldap_host
|
LDAP DN文字列です。 |
p_ldap_host
|
LDAPホスト名です。 |
p_ldap_edit_function
|
LDAP編集ファンクション名です。 |
例
DECLARE
l_ldap_host varchar2(256);
l_ldap_port number;
l_ldap_dn varchar2(256);
l_ldap_edit_function varchar2(256);
BEGIN
HTMLDB_CUSTOM_AUTH.GET_LDAP_PROPS (
p_ldap_host => l_ldap_host,
p_ldap_port => l_ldap_port,
p_ldap_dn => l_ldap_dn,'
p_ldap_edit_function => l_ldap_edit_function);
END;
このファンクションは、Oracle HTML DBシーケンス・ジェネレータから次のセッションIDを生成します。このファンクションは数値を戻します。
構文
FUNCTION GET_NEXT_SESSION_ID RETURN NUMBER;
このファンクションは、現行のブラウザ・セッションのページ・リクエストのコンテキストでセッションCookieによって検索されたOracle HTML DBのセッションIDを戻します。
構文
HTMLDB_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE; RETURN NUMBER;
例
DECLARE VAL NUMBER; BEGIN VAL := HTMLDB_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE; END;
このファンクションは、内部セッション表の現行のOracle HTML DBセッションに登録されたユーザー名を戻します。通常、このユーザー名は、カレント・ページを実行している認証されたユーザーと同じ名前です。
構文
HTMLDB_CUSTOM_AUTH.GET_USERNAME; RETURN VARCHAR2;
例
DECLARE VAL VARCHAR2(256); BEGIN VAL := HTMLDB_CUSTOM_AUTH.GET_USERNAME; END;
このファンクションは、カレント・ユーザーの作業領域を示すセキュリティ・グループIDの数値を戻します。
構文
FUNCTION GET_SECURITY_GROUP_ID RETURN NUMBER;
このファンクションは、HTMLDB_APPLICATION.G_INSTANCEグローバル変数を戻します。GET_SESSION_IDは数値を戻します。
構文
PROCEDURE GET_SESSION_ID RETURN NUMBER;
このファンクションは、HTMLDB_APPLICATION.G_USERグローバル変数(VARCHAR2)を戻します。
構文
FUNCTION GET_USER RETURN VARCHAR2;
このファンクションは、有効なセッションが存在するかどうかを確認するカレント・アプリケーションの認証スキームを実行することによって取得されるブール結果を戻します。認証スキーマのページ・エントリのブール結果を戻します。
構文
HTMLDB_CUSTOM_AUTH.IS_SESSION_VALID; RETURN BOOLEAN;
例
DECLARE VAL VARCHAR2(256); BEGIN VAL := HTMLDB_CUSTOM_AUTH.IS_SESSION_VALID; END;
「ログインAPI」とも呼ばれるこのプロシージャは、認証およびセッションの登録を実行します。
構文
HTMLDB_CUSTOM_AUTH.LOGIN( p_uname IN VARCHAR2, p_password IN VARCHAR2, p_session_id IN VARCHAR2, p_app_page IN VARCHAR2, p_entry_point IN VARCHAR2, p_preserve_case IN BOOLEAN);
パラメータ
表16-52に、LOGINプロシージャで使用可能なパラメータを示します。
表16-52 LOGINパラメータ
| パラメータ | 説明 |
|---|---|
p_uname
|
ユーザーのログイン名です。 |
p_password
|
クリア・テキストのユーザー・パスワードです。 |
p_session_id
|
現行のOracle HTML DBセッションIDです。 |
p_app_page
|
カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。 |
p_entry_point
|
内部でのみ使用します。 |
p_preserve_case
|
trueの場合は、セッションの登録時にp_unameを大文字で指定しないでください。
|
例
BEGIN
HTMLDB_CUSTOM_AUTH.LOGIN (
p_uname => 'SCOTT',
p_password => 'secret99',
p_session_id => V('APP_SESSION'),
p_app_page => :APP_ID||':1');
END;
|
注意: p_session_id引数にバインド変数表記は使用しないでください。
|
このプロシージャは、セッションCookieの設定解除および新しい位置へのリダイレクトを行うことによって、カレント・セッションからのログアウトを実行します。
構文
HTMLDB_CUSTOM_AUTH.LOGOUT( p_this_app IN VARCHAR2, p_next_app_page_sess IN VARCHAR2, p_next_url IN VARCHAR2);
パラメータ
表16-53に、LOGOUTプロシージャで使用可能なパラメータを示します。
表16-53 LOGOUTパラメータ
| パラメータ | 説明 |
|---|---|
p_this_app
|
カレント・アプリケーションIDです。 |
p_next_app_page_sess
|
リダイレクト先のアプリケーションおよびページIDです。複数のページをコロン(:)で区切って指定します。また、セッションIDの制御が必要な場合は、オプションでこれらのページの後にコロン(:)、続けてセッションIDを指定します。 |
p_next_url
|
リダイレクト先のURLです(p_next_app_page_sessのかわりに使用します)。
|
例
BEGIN
HTMLDB_CUSTOM_AUTH.LOGOUT (
p_this_app => '1000',
p_next_app_page_sess => '1000:99');
END;
このプロシージャは、認証ステップが完了していると想定して、セッションの登録を実行します。Oracle HTML DBアプリケーション・ページのコンテキスト内からのみコールできます。
構文
HTMLDB_CUSTOM_AUTH.POST_LOGIN( p_uname IN VARCHAR2, p_session_id IN VARCHAR2, p_app_page IN VARCHAR2, p_preserve_case IN BOOLEAN);
パラメータ
表16-54に、POST_LOGINプロシージャで使用可能なパラメータを示します。
表16-54 POST_LOGINパラメータ
| パラメータ | 説明 |
|---|---|
p_uname
|
ユーザーのログイン名です。 |
p_session_id
|
現行のOracle HTML DBセッションIDです。 |
p_app_page
|
カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。 |
p_preserve_case
|
trueの場合は、セッションの登録時にp_unameを大文字で指定しないでください。
|
例
BEGIN
HTMLDB_CUSTOM_AUTH.POST_LOGIN (
p_uname => 'SCOTT',
p_session_id => V('APP_SESSION'),
p_app_page => :APP_ID||':1');
END;
このファンクションは、現行のOracle HTML DBセッションIDを含むグローバル・パッケージ変数に基づくブール結果を戻します。結果が正の数の場合はtrueを戻します。結果が負の数の場合はfalseを戻します。
構文
FUNCTION SESSION_ID_EXISTS RETURN BOOLEAN;
例
DECLARE VAL BOOLEAN; BEGIN VAL := HTMLDB_CUSTOM_AUTH.SESSION_ID_EXISTS; END;
このプロシージャは、HTMLDB_APPLICATION.G_USERグローバル変数を設定します。SET_USERには、ユーザーIDを定義するパラメータP_USER(VARCHAR2)が必要です。
構文
PROCEDURE SET_USER(
p_user IN VARCHAR2)
このプロシージャは、HTMLDB_APPLICATION.G_INSTANCEグローバル変数を設定します。SET_SESSION_IDは数値を戻します。このプロシージャには、セッションIDを指定するパラメータP_SESSION_ID(NUMBER)が必要です。
構文
PROCEDURE SET_SESSION_ID(
p_session_id IN NUMBER)
HTMLDB_CUSTOM_AUTHを使用すると、Lightweight Directory Access Protocol(LDAP)認証に関連する様々な操作を実行できます。
このセクションの構成は次のとおりです。
AUTHENTICATEファンクションは、指定した検索ベース、ホストおよびポートを使用してSIMPLE_BIND_Sコールを実行するためにユーザー名およびパスワードを使用できる場合、ブール値trueを戻します。
構文
FUNCTION AUTHENTICATE(
p_username in VARCHAR2 DEFAULT NULL,
p_password in VARCHAR2 DEFAULT NULL,
p_search_base in VARCHAR2,
p_host in VARCHAR2,
p_port in VARCHAR2 DEFAULT 389)
RETURN BOOLEAN;
パラメータ
表16-55に、AUTHENTICATEファンクションで使用可能なパラメータを示します。
IS_MEMBERファンクションは、p_username(および必要に応じてパスワード)によって指定したユーザーが、指定されている認証ベース、ホストおよびポートを使用してp_groupおよびp_group_baseパラメータによって指定したグループのメンバーである場合、ブール値trueを戻します。
構文
FUNCTION IS_MEMBER(
p_username in VARCHAR2 DEFAULT NULL,
p_pass in VARCHAR2 DEFAULT NULL,
p_auth_base in VARCHAR2,
p_host in VARCHAR2,
p_port in VARCHAR2 DEFAULT 389,
p_group in VARCHAR2,
p_group_base in VARCHAR2)
RETURN BOOLEAN;
パラメータ
表16-56に、IS_MEMBERファンクションで使用可能なパラメータを示します。
MEMBER_OFファンクションは、指定した認証ベース、ホストおよびポートを使用して、p_username(および必要に応じてパスワード)によって指定されたユーザー名が属するグループの配列を戻します。
構文
FUNCTION MEMBER_OF(
p_username in VARCHAR2 DEFAULT NULL,
p_pass in VARCHAR2 DEFAULT NULL,
p_auth_base in VARCHAR2,
p_host in VARCHAR2,
p_port in VARCHAR2 DEFAULT 389,
RETURN wwv_flow_global.vc_arr2;
パラメータ
表16-57に、MEMBER_OFファンクションで使用可能なパラメータを示します。
MEMBER_OF2ファンクションは、指定した認証ベース、ホストおよびポートを使用して、p_username(および必要に応じてパスワード)によって指定されたユーザー名が属するグループのVARCHAR2リストを戻します。
構文
FUNCTION MEMBER_OF2(
p_username in VARCHAR2 DEFAULT NULL,
p_pass in VARCHAR2 DEFAULT NULL,
p_auth_base in VARCHAR2,
p_host in VARCHAR2,
p_port in VARCHAR2 DEFAULT 389,
RETURN VARCHAR2;
パラメータ
表16-58に、MEMBER_OF2ファンクションで使用可能なパラメータを示します。
GET_USER_ATTRIBUTESプロシージャは、指定した認証ベース、ホストおよびポートを使用して、p_attributesに渡された属性名に対応する、p_username(および必要に応じてパスワード)によって指定されたユーザー名に対するuser_attribute値のOUT配列を戻します。
構文
PROCEDURE GET_USER_ATTRIBUTES(
p_username in VARCHAR2 DEFAULT NULL,
p_pass in VARCHAR2 DEFAULT NULL,
p_auth_base in VARCHAR2,
p_host in VARCHAR2,
p_port in VARCHAR2 DEFAULT 389,
p_attributes in wwv_flow_global.vc_arr2,
p_attribute_values out wwv_flow_global.vc_arr2);
パラメータ
表16-59に、GET_USER_ATTRIBUTESプロシージャで使用可能なパラメータを示します。
GET_ALL_USER_ATTRIBUTESプロシージャは、指定した認証ベース、ホストおよびポートを使用して、p_usernameによって指定されたユーザー名に対するuser_attributeの名前と値の2つのOUT配列を戻します。
構文
PROCEDURE GET_ALL_USER_ATTRIBUTES(
p_username in VARCHAR2 DEFAULT NULL,
p_pass in VARCHAR2 DEFAULT NULL,
p_auth_base in VARCHAR2,
p_host in VARCHAR2,
p_port in VARCHAR2 DEFAULT 389,
p_attributes out wwv_flow_global.vc_arr2,
p_attribute_values out wwv_flow_global.vc_arr2);
パラメータ
表16-60に、GET_ALL_USER_ATTRIBUTESプロシージャで使用可能なパラメータを示します。