Oracle HTML DBユーザーズ・ガイド
リリース1.6
部品番号: B15713-02
  目次へ移動
目次
索引へ移動
索引

戻る
戻る
次へ
次へ
 

17 Oracle HTML DB API

この章では、Oracle HTML DBで使用可能なAPIについて説明します。

この章の内容は次のとおりです。

HTMLDB_UTIL

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

このセクションの内容は次のとおりです。

CHANGE_CURRENT_USER_PWプロシージャ

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

構文

HTMLDB_UTIL.CHANGE_CURRENT_USER_PW(
    p_new_password IN VARCHAR2);

パラメータ

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

表17-1 CHANGE_CURRENT_USER_PWパラメータ

パラメータ 説明
p_new_password クリア・テキストでの新しいパスワード値

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

CLEAR_APP_CACHEプロシージャ

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

構文

HTMLDB_UTIL.CLEAR_APP_CACHE (
    p_app_id    IN    VARCHAR2 DEFAULT NULL);

パラメータ

p_app_idは、セッション・ステートを消去するカレント・セッションのアプリケーションのIDです。

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

CLEAR_PAGE_CACHEプロシージャ

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

構文

HTMLDB_UTIL.CLEAR_PAGE_CACHE (
    p_page_id IN NUMBER DEFAULT NULL);

パラメータ

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

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

CLEAR_USER_CACHEプロシージャ

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

構文

HTMLDB_UTIL.CLEAR_USER_CACHE;

BEGIN
       HTMLDB_UTIL.CLEAR_USER_CACHE;
END;

COUNT_CLICKプロシージャ

このプロシージャは、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);

パラメータ

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

表17-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です。

CREATE_USERプロシージャ

このプロシージャは、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)

パラメータ

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

表17-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

...

p_attribute_10

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

BEGIN
HTMLDB_UTIL.CREATE_USER
    P_USER_NAME    => 'NEWUSER1',
    P_WEB_PASSWORD => 'secret99');
END;

CREATE_USER_GROUPプロシージャ

このプロシージャは、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);

パラメータ

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

表17-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;

CURRENT_USER_IN_GROUPファンクション

このファンクションは、カレント・ユーザーが指定したグループのメンバーかどうかに基づいてブール結果を戻します。グループの指定には、グループ名またはグループ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;

パラメータ

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

表17-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プロシージャ

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

構文

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);

パラメータ

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

表17-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 情報

EXPORT_USERSプロシージャ

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

構文

HTMLDB_UTIL.EXPORT_USERS(
    p_export_format in varchar2 default 'UNIX');

パラメータ

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

表17-7 EXPORT_USERSパラメータ

パラメータ 説明
p_export_format エクスポート・ファイルの行を形式化する方法を指定します。「UNIX」を指定すると、改行で区切られた行が含まれるファイルが生成されます。「DOS」を指定すると、キャリッジ・リターンと改行で区切られた行が含まれるファイルが生成されます。

BEGIN
  HTMLDB_UTIL.EXPORT_USERS;
END;

FETCH_APP_ITEMファンクション

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

構文

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

パラメータ

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

表17-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プロシージャ

このプロシージャは、ユーザー・アカウント・レコードをフェッチします。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。

構文

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);

パラメータ

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

表17-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 未使用

FIND_SECURITY_GROUP_IDファンクション

このファンクションは、指定した作業領域の数値のセキュリティ・グループ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;

FIND_WORKSPACEファンクション

このファンクションは、セキュリティ・グループ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;

GET_ATTRIBUTEファンクション

このファンクションは、HTML DBアカウント表内の指定したユーザーの1つの属性値(1から10)の値を戻します。

構文

HTMLDB_UTIL.GET_ATTRIBUTE(
    P_USERNAME                IN VARCHAR2
    P_ATTRIBUTE_NUMBER        IN NUMBER)
RETURN VARCHAR2;

パラメータ

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

表17-10 GET_ATTRIBUTEパラメータ

パラメータ 説明
p_username アカウント内のユーザー名
p_attribute_number ユーザー・レコードの属性数(1から10)

DECLARE VAL VARCHAR2(30);
BEGIN
  VAL := HTMLDB_UTIL.GET_ATTRIBUTE (
                          p_username => 'SCOTT',
                          p_attribute_number => 1);
END;

GET_CURRENT_USER_IDファンクション

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

構文

HTMLDB_UTIL.GET_CURRENT_USER_ID;
RETURN NUMBER;

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

GET_DEFAULT_SCHEMAファンクション

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

構文

HTMLDB_UTIL.GET_DEFAULT_SCHEMA;
RETURN VARCHAR2;

DECLARE VAL VARCHAR2;
BEGIN
  VAL := HTMLDB_UTIL. GET_DEFAULT_SCHEMA;
END;

GET_EMAILファンクション

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

構文

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;

GET_FILEプロシージャ

このプロシージャは、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');

パラメータ

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

表17-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;

GET_FILE_IDファンクション

このファンクションは、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;

GET_FIRST_NAMEファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納される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;

GET_GROUPS_USER_BELONGS_TOファンクション

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

構文

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;

GET_GROUP_IDファンクション

このファンクションは、作業領域内の指定したグループの数値の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;

GET_GROUP_NAMEファンクション

このファンクションは、数値の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;

GET_LAST_NAMEファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納される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;

GET_USERNAMEファンクション

このファンクションは、数値の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;

GET_NUMERIC_SESSION_STATEファンクション

このファンクションは、数値アイテムの数値を戻します。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;

GET_PREFERENCEファンクション

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

構文

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

パラメータ

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

表17-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;

GET_SESSION_STATEファンクション

このファンクションはアイテムの値を戻します。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;

GET_USER_IDファンクション

このファンクションは、作業領域内の指定したユーザーの数値の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;

GET_USER_ROLESファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納される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;

IS_LOGIN_PASSWORD_VALIDファンクション

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

構文

HTMLDB_UTIL.IS_LOGIN_PASSWORD_VALID(
P_USERNAME IN VARCHAR2,
   P_PASSWORD IN VARCHAR2);
RETURN BOOLEAN;

パラメータ

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

表17-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;

IS_USERNAME_UNIQUEファンクション

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

構文

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;

PUBLIC_CHECK_AUTHORIZATIONファンクション

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

構文

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;

REMOVE_PREFERENCEプロシージャ

このファンクションは指定したユーザーの設定項目を削除します。

構文

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

パラメータ

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

表17-14 REMOVE_PREFERENCEパラメータ

パラメータ 説明
p_preference 削除する設定項目の名前
p_user 設定項目の対象ユーザー

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

REMOVE_SORT_PREFERENCESプロシージャ

このプロシージャは、ユーザーの列ヘッダーのソート設定項目の値を削除します。

構文

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

パラメータ

p_userは、ソート設定項目を削除するユーザーを示します。

BEGIN
      HTMLDB_UTIL.REMOVE_SORT_PREFERENCES(:APP_USER);
END;

REMOVE_USERプロシージャ

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

構文

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

パラメータ

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

表17-15 REMOVE_USERパラメータ

パラメータ 説明
p_user_id ユーザー・アカウント・レコードの数値の主キー
p_user_name ユーザー・アカウントのユーザー名


BEGIN
HTMLDB_UTIL.REMOVE_USER(p_user_id=>'99997');
END;

BEGIN
HTMLDB_UTIL.REMOVE_USER(p_user_name => 'SCOTT');
END;

RESET_PWプロシージャ

このプロシージャは、指定したユーザーのパスワードを再設定し、そのパスワードをメッセージ付きでユーザーに電子メール送信します。このプロシージャを実行するには、カレント・ユーザーに作業領域での管理権限が必要です。

構文

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

パラメータ

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

表17-16 RESET_PWパラメータ

パラメータ 説明
p_user ユーザー・アカウントのユーザー名
p_msg ユーザーに電子メール送信するメッセージ・テキスト


BEGIN
HTMLDB_UTIL.REMOVE_USER(
    p_user => 'SCOTT',
    p_msg => 'Contact help desk at 555-1212 with questions');
END;

RESET_AUTHORIZATIONSプロシージャ

パフォーマンスを向上させるために、Oracle HTML DBはセキュリティ・チェックをキャッシュします。このプロシージャを使用すると、キャッシュを元に戻し、現行ユーザーに対するすべてのセキュリティ・チェックを再度検証するように要求します。アプリケーション内でユーザーの信頼性(認可プロファイル)を変更できるようにする場合、このプロシージャを使用します。

構文

HTMLDB_UTIL.RESET_AUTHORIZATIONS;

BEGIN
HTMLDB_UTIL.RESET_AUTHORIZATIONS;
END;

SET_EMAILプロシージャ

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

構文

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

パラメータ

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

表17-17 SET_EMAILパラメータ

パラメータ 説明
p_userid ユーザー・アカウントの数値のID
p_email ユーザー・アカウントに保存する電子メール・アドレス

BEGIN
HTMLDB_UTIL.SET_EMAIL(
    p_userid  => '888883232',
    P_email   => 'scott.scott@oracle.com');
END;

SET_FIRST_NAMEプロシージャ

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

構文

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

パラメータ

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

表17-18 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;

SET_LAST_NAMEプロシージャ

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

構文

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

パラメータ

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

表17-19 SET_LAST_NAMEパラメータ

パラメータ 説明
p_userid ユーザー・アカウントの数値のID
p_last_name ユーザー・アカウントに保存するLAST_NAME

BEGIN
HTMLDB_UTIL.SET_LAST_NAME(
    p_userid       => '888883232',
    p_last_name   => 'SMITH');
END;

SET_USERNAMEプロシージャ

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

構文

HTMLDB_UTIL.USERNAME(
    p_userid      IN NUMBER,
    p_username    IN VARCHAR2);

パラメータ

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

表17-20 SET_USERNAMEパラメータ

パラメータ 説明
p_userid ユーザー・アカウントの数値のID
p_user_name ユーザー・アカウントに保存するUSER_NAME

BEGIN
HTMLDB_UTIL.SET_USERNAME(
    p_userid       => '888883232',
    P_username   => 'USER-XRAY');
END;

SET_PREFERENCEプロシージャ

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

構文

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

パラメータ

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

表17-21 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;

SET_SESSION_STATEプロシージャ

このプロシージャは、現行のOracle HTML DBセッションのセッション・ステートを設定します。

構文

HTMLDB_UTIL.SET_SESSION_STATE (
    p_name     IN    VARCHAR2 DEFAULT NULL,
    p_value    IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表17-22 SET_SESSION_STATEパラメータ

パラメータ 説明
p_name セッション・ステートを設定する、アプリケーションまたはページ・レベルのアイテムの名前
p_value 設定するセッション・ステートの値

BEGIN
HTMLDB_UTIL.SET_SESSION_STATE('my_item','myvalue');
END;

STRING_TO_TABLEファンクション

文字列を指定すると、このファンクションによって型が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;

パラメータ

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

表17-23 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;

TABLE_TO_STRINGファンクション

型が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;

パラメータ

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

表17-24 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;

URL_ENCODEファンクション

このファンクションは、空白、疑問符、アンパサンドを含むすべての特殊文字を16進にエンコードします。

構文

HTMLDB_UTIL.URL_ENCODE (
    p_url   IN    VARCHAR2)
    RETURN VARCHAR2;

パラメータ

p_stringは、エンコードする文字列です。

DECLARE
      l_url  VARCHAR2(255);
BEGIN
      l_url := HTMLDB_UTIL.URL_ENCODE('http://www.myurl.com?id=1&cat=foo');
END;

HTMLDB_MAIL

HTMLDB_MAILパッケージを使用すると、Oracle HTML DBアプリケーションから電子メールを送信できます。このパッケージは、Oracleで提供されるUTL_SMTPパッケージをベースとして構築されています。 このような依存性があるため、HTMLDB_MAILを使用するには、UTL_SMTPパッケージがインストール済で機能している必要があります。


参照:

UTL_SMTPパッケージの詳細は、『PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

HTMLDB_MAILには、2つのプロシージャが含まれています。 HTMLDB_MAIL.SENDを使用すると、電子メール・メッセージを、アプリケーションから外部へ送信できます。 HTMLDB_MAIL.PUSH_QUEUEを使用すると、HTMLDB_MAIL_QUEUEに格納されているメール・メッセージを配信できます。

このセクションの内容は次のとおりです。


注意:

メールを送信するための最も有効な方法は、アクティブなメール・キューに格納されているすべてのメール・メッセージを定期的に送信するように、バックグラウンド・ジョブを作成(DBMS_JOBパッケージを使用)することです。

SEND プロシージャ

このプロシージャを使用すると、電子メール・メッセージを、アプリケーションから外部へ送信できます。 このプロシージャを使用して、VARCHAR2またはCLOBのいずれかをp_bodyおよびp_body_htmlに渡すことはできますが、データ型は同じである必要があります。 つまり、CLOBP_BODYに、VARCHAR2p_body_htmlに渡すことはできません。

HTMLDB_MAIL.SENDを使用する場合は、次のことに注意してください。

  • 1行は1000文字以下にしてください。SMTP/MIMEの仕様では、1行は1000文字以下にするように指示されています。 この制限に準拠するには、キャリッジ・リターン文字または改行文字を追加して、p_bodyまたはp_body_htmlパラメータを1000文字以下のまとまりに分割します。 こうしないと、不完全なメッセージ、不要な感嘆符が含まれるメッセージなど、誤った電子メール・メッセージの原因になります。

  • プレーン・テキストおよびHTML電子メール・コンテンツ。値をp_bodyに渡し、p_body_htmlには渡さないと、プレーン・テキスト・メッセージになります。 値を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);

パラメータ

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

表17-25 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ドキュメントである必要があります。 1行が1000文字を超える場合は、キャリッジ・リターン改行(CRLF)を使用します。
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;
/

次に、アプリケーションからHTMLの電子メール・メッセージを送信するためのHTMLDB_MAIL.SENDの使用例を示します。 1000文字ごとにキャリッジ・リターン改行(CRLF)を含める必要があることに注意してください。 次の例では、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;
/

PUSH_QUEUE プロシージャ

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;

パラメータ

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

表17-26 PUSH_QUEUEパラメータ

パラメータ 説明
p_smtp_hostname SMTPゲートウェイのホスト名。
p_smtp_portno SMTPゲートウェイのポート番号。

次に、シェル・スクリプトを使用したHTMLDB_MAIL.PUSH_QUEUEプロシージャの使用例を示します。この例は、UNIXまたはLinuxの使用環境にのみ適用されます。この例では、SMTPゲートウェイのホスト名はsmtp01.oracle.com、SMTPゲートウェイのポート番号は25として定義されています。

SQLPLUS / <<EOF
FLOWS_010600.HTMLDB_MAIL.PUSH_QUEUE('smtp01.oracle.com','25');
DISCONNECT
EXIT
EOF

HTMLDB_ITEM

HTMLDB_ITEMパッケージを使用すると、ページごとに別々にアイテムを作成するかわりに、SQL問合せに基づいてフォーム要素を動的に作成できます。

このセクションの内容は次のとおりです。

CHECKBOXファンクション

このファンクションはチェック・ボックスを作成します。

構文

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_delimitor  IN    VARCHAR2 DEFAULT)
    RETURN VARCHAR2;

パラメータ

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

表17-27 CHECKBOXパラメータ

パラメータ 説明
p_idx どのHTMLDB_APPLICATIONグローバルを使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。
p_value チェック・ボックス、非表示フィールドまたは入力フォーム・アイテムの値。
p_attributes HTMLタグ属性を制御(無効にするなど)します。
p_checked_values デフォルトで選択される値。
p_checked_values_delimitor 前述のパラメータ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ファンクション

日付フィールドを含むフォームでこのファンクションを使用します。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;

パラメータ

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

表17-28 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

DISPLAY_AND_SAVEファンクション

このファンクションを使用して、アイテムをテキストとして表示します。ただし、その値はセッション・ステートに保存されます。

構文

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;

パラメータ

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

表17-29 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

HIDDENファンクション

このファンクションは、非表示のフォーム・アイテムを動的に生成します。

構文

HTMLDB_ITEM.HIDDEN(
    p_idx     IN    NUMBER,
    p_value   IN    VARCHAR2 DEFAULT)
    RETURN VARCHAR2;

パラメータ

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

表17-30 HIDDENパラメータ

パラメータ 説明
p_idx 生成するアイテムの識別番号。この番号によって、どのG_FXXグローバルが移入されるかが決定されます。

参照: 「HTMLDB_APPLICATION」

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に対応)は、各行を更新するキーとして使用されることに注意してください。

MD5_CHECKSUMファンクション

このファンクションは、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;

パラメータ

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

表17-31 MD5_CHECKSUMパラメータ

パラメータ 説明
p_value01

...

p_value50

50個の値が入力可能です。このパラメータを指定しない場合、デフォルトはNULLになります。
p_col_sep p_valueの入力を区切るために使用する文字列。デフォルトは縦線(|)です。

SELECT HTMLDB_ITEM.MD5_CHECKSUM(ename,job,sal)
FROM emp

MD5_HIDDENファンクション

このファンクションは、ロストした更新の検出に使用されます。これによって、データに同時にアクセスできるアプリケーションのデータの整合性が保証されます。

このファンクションは、非表示のフォーム・フィールドを作成し、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;

パラメータ

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

表17-32 MD5_HIDDENパラメータ

パラメータ 説明
p_idx 生成されるフォーム要素を示します。たとえば、1はF01、2はF02です。通常、p_idxパラメータは指定した列の定数です。
p_value01

...

p_value50

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

MULTI_ROW_UPDATEプロシージャ

このプロシージャは、複数行を更新するプロセス・タイプ内で使用します。このプロシージャでは、次の形式で複数行の更新定義を含む文字列を指定します。

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_UPDATEHTMLDB_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:,:,:,:,

SELECT_LISTファンクション

このファンクションは、静的選択リストを動的に生成します。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;

パラメータ

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

表17-33 SELECT_LISTパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、P_IDXパラメータは指定した列の定数です。
p_value 現行の値。この値はP_LIST_VALUESパラメータの値である必要があります。
p_list_values カンマで区切られた静的値のリスト。表示値および戻り値はセミコロンで区切られます。

これは、SELECT_LISTファンクションのみで使用可能であることに注意してください。

p_attributes 追加するHTMLパラメータ。
p_show_null NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
p_null_value ユーザーがNULLのオプションを選択すると戻される値。P_SHOW_NULLYESの場合にのみ使用できます。
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

SELECT_LIST_FROM_LOVファンクション

このファンクションは、共有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;

パラメータ

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

表17-34 SELECT_LIST_FROM_LOVパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、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_nullYESの場合にのみ使用できます。
p_null_text ユーザーがNULLのオプションを選択すると表示される値。p_show_nullYESの場合にのみ使用できます。
p_item_id <input>タグのHTML属性のID。
p_item_label 選択リストのラベル。

次に、アプリケーションで定義されたLOVに基づく選択リストを示します。

SELECT HTMLDB_ITEM.SELECT_LIST_FROM_LOV(2,job,'JOB_FLOW_LOV')
FROM emp

SELECT_LIST_FROM_LOV_XLファンクション

このファンクションは、共有LOVから大規模(32KBを超える)な選択リストを動的に生成します。HTMLDB_ITEMパッケージで使用可能なその他のファンクションのように、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

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;

パラメータ

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

表17-35 SELECT_LIST_FROM_LOV_XLパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、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_nullYESの場合にのみ使用できます。
p_null_text ユーザーがNULLのオプションを選択すると表示される値。p_show_nullYESの場合にのみ使用できます。
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

SELECT_LIST_FROM_QUERYファンクション

このファンクションは、問合せから静的選択リストを動的に生成します。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;

パラメータ

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

表17-36 SELECT_LIST_FROM_QUERYパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、p_idxパラメータは指定した列の定数です。
p_value 現行の値。この値はp_list_valuesパラメータの値である必要があります。
p_query 2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。
SELECT dname, deptno FROM dept

これは、SELECT_LIST_FROM_QUERYファンクションのみで使用可能であることに注意してください。

p_attributes 追加するHTMLパラメータ。
p_show_null NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
p_null_value ユーザーがNULLのオプションを選択すると戻される値。p_show_nullYESの場合にのみ使用できます。
p_null_text ユーザーがNULLのオプションを選択すると表示される値。p_show_nullYESの場合にのみ使用できます。
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_XLファンクション

このファンクションは、問合せから大規模(32KBを超える)な選択リストを動的に生成します。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;

パラメータ

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

表17-37 SELECT_LIST_FROM_QUERY_XLパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、p_idxパラメータは指定した列の定数です。
p_value 現行の値。この値はp_list_valuesパラメータの値である必要があります。
p_query 2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。
SELECT dname, deptno FROM dept

これは、SELECT_LIST_FROM_QUERY_XLファンクションのみで使用可能であることに注意してください。

p_attributes 追加するHTMLパラメータ。
p_show_null NULLの選択を有効にするための追加の選択オプション。値の範囲はYESおよびNOです。
p_null_value ユーザーがNULLのオプションを選択すると戻される値。p_show_nullYESの場合にのみ使用できます。
p_null_text ユーザーがNULLのオプションを選択すると表示される値。p_show_nullYESの場合にのみ使用できます。
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

TEXTAREAファンクション

このファンクションはテキスト領域を作成します。

構文

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;

パラメータ

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

表17-38 TEXTAREAパラメータ

パラメータ 説明
p_idx 生成するアイテムの識別番号。この番号によって、どのG_FXXグローバルが移入されるかが決定されます。

参照: 「HTMLDB_APPLICATION」

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

TEXTファンクション

このファンクションは、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)

パラメータ

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

表17-39 TEXTパラメータ

パラメータ 説明
p_idx 生成するアイテムの識別番号。この番号によって、どのG_FXXグローバルが移入されるかが決定されます。

参照: 「HTMLDB_APPLICATION」

p_value テキスト・フィールド・アイテムの値。
p_size HTMLタグ属性を制御(無効にするなど)します。
p_maxlength テキスト・ボックスに入力可能な最大文字数。
p_attributes 追加するHTMLパラメータ。
p_item_id <input>タグのHTML属性のID。
p_item_label テキスト・フィールド・アイテムのラベル。

次の問合せの例に、各行に1つの更新フィールドを生成する方法を示します。enamesalおよび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

TEXT_FROM_LOVファンクション

このファンクションを使用して、アイテムをテキストとして表示します。そのテキストは、名前付きLOVの表示値を導出します。

構文

HTMLDB_ITEM.TEXT_FROM_LOV (
    p_value       IN    VARCHAR2 DEFAULT NULL,
    p_lov         IN    VARCHAR2,
    p_null_text   IN    VARCHAR2 DEFAULT '%')
    RETURN VARCHAR2;

パラメータ

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

表17-40 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

TEXT_FROM_LOV_QUERYファンクション

このファンクションを使用して、アイテムをテキストとして表示します。そのテキストは、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;

パラメータ

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

表17-41 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

RADIOGROUPファンクション

このファンクションは、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;

パラメータ

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

表17-42 RADIOGROUPパラメータ

パラメータ 説明
p_idx どのHTMLDB_APPLICATIONグローバルを使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF012を指定すると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

POPUP_FROM_LOVファンクション

このファンクションは、アプリケーション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;

パラメータ

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

表17-43 POPUP_FROM_LOVパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、p_idxは指定した列の定数です。
p_value フォーム要素の現行の値。この値は、p_lov_nameパラメータのいずれかの値である必要があります。
p_lov_name このポップアップで使用される名前付きLOV。
p_width テキスト・ボックスの幅。
p_max_length テキスト・ボックスに入力可能な最大文字数。
p_form_index アイテムが含まれるページのHTMLフォーム。デフォルトは0ですが、ほとんど使用しません。

このパラメータは、ページ・テンプレートにカスタム・フォーム(別のWebサイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが#FORM_OPEN#置換文字列の前にある場合、この索引は0(ゼロ)で、Oracle HTML DBによって自動的にオープンされるフォームはフォーム1として参照される必要があります。この機能では、フォーム要素に値を戻すポップアップLOVで使用されるJavaScriptがサポートされています。

p_escape_html 同等のものにエスケープする必要がある特殊文字の置換文字。
  • <に対する&lt;

  • >に対する&gt;

  • &に対する&amp;

値の範囲は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

POPUP_FROM_QUERYファンクション

このファンクションは問合せから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;

パラメータ

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

表17-44 POPUP_FROM_QUERYパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、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サイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが#FORM_OPEN#置換文字列の前にある場合、この索引は0(ゼロ)で、Oracle HTML DBによって自動的にオープンされるフォームはフォーム1として参照される必要があります。この機能では、フォーム要素に値を戻すポップアップLOVで使用されるJavaScriptがサポートされています。

p_escape_html 同等のものにエスケープする必要がある特殊文字の置換文字。
  • <に対する&lt;

  • >に対する&gt;

  • &に対する&amp;

値の範囲は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

POPUPKEY_FROM_LOV ファンクション

このファンクションは、共有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列目で指定されます。

パラメータ

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

表17-45 POPUPKEY_FROM_LOVパラメータ

パラメータ 説明
p_idx フォーム要素名を示します。たとえば、1F012F02です。通常、p_idxは指定した列の定数です。

POPUPKEY_FROM_QUERYの動作のため、次の索引の値はp_idx + 1である必要があります。次に例を示します。

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サイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが#FORM_OPEN#置換文字列の前にある場合、この索引は0(ゼロ)で、Oracle HTML DBによって自動的にオープンされるフォームはフォーム1として参照される必要があります。この機能では、フォーム要素に値を戻すポップアップLOVで使用されるJavaScriptがサポートされています。

p_escape_html 同等のものにエスケープする必要がある特殊文字の置換文字。
  • <に対する&lt;

  • >に対する&gt;

  • &に対する&amp;

このパラメータは、問合せが無効な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

POPUPKEY_FROM_QUERYファンクション

このファンクションは、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;

パラメータ

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

表17-46 POPUPKEY_FROM_QUERYパラメータ

パラメータ 説明
p_idx フォーム要素名。たとえば、1F012F02です。通常、p_idxは指定した列の定数です。

POPUPKEY_FROM_QUERYの動作のため、次の索引の値はp_idx + 1である必要があります。次に例を示します。

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サイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが#FORM_OPEN#置換文字列の前にある場合、この索引は0(ゼロ)で、Oracle HTML DBによって自動的にオープンされるフォームはフォーム1として参照される必要があります。この機能では、フォーム要素に値を戻すポップアップLOVで使用されるJavaScriptがサポートされています。

p_escape_html 同等のものにエスケープする必要がある特殊文字の置換文字。
  • <に対する&lt;

  • >に対する&gt;

  • &に対する&amp;

このパラメータは、問合せが無効な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

HTMLDB_APPLICATION

HTMLDB_APPLICATIONは、Oracle HTML DBレンダリング・エンジンを実装するPL/SQLパッケージです。このパッケージを使用すると、多くのグローバル変数を使用できます。 表17-47に、HTMLDB_APPLICATIONで使用可能なグローバル変数を示します。

表17-47 HTMLDB_APPLICATIONで使用可能なグローバル変数

グローバル変数 説明
G_USER 現在ログインしているユーザーを指定します。
G_FLOW_ID 現在実行されているアプリケーションのIDを指定します。
G_FLOW_STEP_ID 現在実行されているページのIDを指定します。
G_FLOW_OWNER 現在実行されているアプリケーションの解析対象のスキーマを指定します。

このセクションの内容は次のとおりです。

配列の参照

通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどのHTMLフォーム要素です。ウィザードを使用して新しいフォーム・アイテムを作成する場合、ウィザードは標準のネーミング形式を使用します。ネーミング形式ではハンドルが提供されるため、後でアイテムの値を取得できます。

独自のアイテムを作成する必要がある場合、ページを送信した後にHTMLDB_APPLICATION.G_F01からHTMLDB_APPLICATION.G_F50配列を参照してそれらにアクセスできます。F01F02F03などの形式を使用して入力パラメータを入力することによって、独自の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;

配列の単一値への変換

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

HTMLDB_CUSTOM_AUTHを使用すると、認証およびセッション管理に関連する様々な操作を実行できます。

このセクションの内容は次のとおりです。

APPLICATION_PAGE_ITEM_EXISTSファンクション

このファンクションは、アプリケーション内のページ・レベル・アイテムの存在を確認します。このファンクションでは、パラメータp_item_nameが必要です。このファンクションはブール値(trueまたはfalse)を戻します。

構文

FUNCTION APPLICATION_PAGE_ITEM_EXISTS(
    p_item_name   IN    VARCHAR2)
RETURN BOOLEAN;

CURRENT_PAGE_IS_PUBLICファンクション

このファンクションは、カレント・ページの認証属性がパブリック・ページに設定されているかどうかを確認し、ブール値(trueまたはfalse)を戻します。


参照:

このページ属性の設定の詳細は、「ページ属性の編集」および「セキュリティ」を参照してください。

構文

FUNCTION CURRENT_PAGE_IS_PUBLIC
RETURN BOOLEAN;

DEFINE_USER_SESSIONプロシージャ

このプロシージャは、SET_USERおよびSET_SESSION_IDファンクションを組み合せて、1回のコールに結合します。

構文

PROCEDURE DEFINE_USER_SESSION(
    p_user         IN    VARCHAR2)
    p_session_id   IN    NUMBER);

GET_COOKIE_PROPSプロシージャ

このプロシージャは、指定したアプリケーションのカレント認証スキームで使用されるセッションCookieのプロパティを取得します。これらのプロパティは、認証スキーム属性を表示することによって、Application Builderに直接表示できます。

構文

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);

パラメータ

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

表17-48 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;

GET_LDAP_PROPSプロシージャ

このプロシージャは、カレント・アプリケーションのカレント認証スキームのLDAP属性を取得します。これらのプロパティは、認証スキーム属性を表示することによって、Application Builderに直接表示できます。

構文

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);

パラメータ

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

表17-49 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;

GET_NEXT_SESSION_IDファンクション

このファンクションは、Oracle HTML DBシーケンス・ジェネレータから次のセッションIDを生成します。このファンクションは数値を戻します。

構文

FUNCTION GET_NEXT_SESSION_ID
RETURN NUMBER;

GET_SESSION_ID_FROM_COOKIEファンクション

このファンクションは、現行のブラウザ・セッションのページ・リクエストのコンテキストでセッション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;

GET_USERNAMEファンクション

このファンクションは、内部セッション表の現行のOracle HTML DBセッションに登録されたユーザー名を戻します。通常、このユーザー名は、カレント・ページを実行している認証されたユーザーと同じ名前です。

構文

HTMLDB_CUSTOM_AUTH.GET_USERNAME;
RETURN VARCHAR2;

DECLARE VAL VARCHAR2(256);
BEGIN
  VAL := HTMLDB_CUSTOM_AUTH.GET_USERNAME;
END;

GET_SECURITY_GROUP_IDファンクション

このファンクションは、現行ユーザーの作業領域を示すセキュリティ・グループIDの数値を戻します。

構文

FUNCTION GET_SECURITY_GROUP_ID
RETURN NUMBER;

GET_SESSION_IDファンクション

このファンクションは、HTMLDB_APPLICATION.G_INSTANCEグローバル変数を戻します。GET_SESSION_IDは数値を戻します。

構文

PROCEDURE GET_SESSION_ID
RETURN NUMBER;

GET_USERファンクション

このファンクションは、HTMLDB_APPLICATION.G_USERグローバル変数(VARCHAR2)を戻します。

構文

FUNCTION GET_USER
RETURN VARCHAR2;

IS_SESSION_VALIDファンクション

このファンクションは、有効なセッションが存在するかどうかを確認するカレント・アプリケーションの認証スキームを実行することによって取得されるブール結果を戻します。認証スキーマのページ・エントリのブール結果を戻します。

構文

HTMLDB_CUSTOM_AUTH.IS_SESSION_VALID;
RETURN BOOLEAN;

DECLARE VAL VARCHAR2(256);
BEGIN
  VAL := HTMLDB_CUSTOM_AUTH.IS_SESSION_VALID;
END;

LOGINプロシージャ

「ログイン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);

パラメータ

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

表17-50 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引数にバインド変数表記は使用しないでください。

LOGOUTプロシージャ

このプロシージャは、セッションCookieの設定解除および新しい位置へのリダイレクトを行うことによって、現行のセッションからのログアウトを実行します。

構文

HTMLDB_CUSTOM_AUTH.LOGOUT(
 p_this_app                   IN VARCHAR2,
 p_next_app_page_sess         IN VARCHAR2,
 p_next_url                   IN VARCHAR2);


パラメータ

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

表17-51 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;

POST_LOGINプロシージャ

このプロシージャは、認証の手順が完了していると想定して、セッションの登録を実行します。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);

パラメータ

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

表17-52 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;

SESSION_ID_EXISTSファンクション

このファンクションは、現行のOracle HTML DBセッションIDを含むグローバル・パッケージ変数に基づくブール結果を戻します。結果が正の数の場合はtrueを戻します。結果が負の数の場合はfalseを戻します。

構文

FUNCTION SESSION_ID_EXISTS
RETURN BOOLEAN;

DECLARE VAL BOOLEAN;
BEGIN
  VAL := HTMLDB_CUSTOM_AUTH.SESSION_ID_EXISTS;
END;

SET_USERプロシージャ

このプロシージャは、HTMLDB_APPLICATION.G_USERグローバル変数を設定します。SET_USERには、ユーザーIDを定義するパラメータP_USERVARCHAR2)が必要です。

構文

PROCEDURE SET_USER(
    p_user   IN    VARCHAR2)

SET_SESSION_IDプロシージャ

このプロシージャは、HTMLDB_APPLICATION.G_INSTANCEグローバル変数を設定します。SET_SESSION_IDは数値を戻します。このプロシージャには、セッションIDを指定するパラメータP_SESSION_IDNUMBER)が必要です。

構文

PROCEDURE SET_SESSION_ID(
    p_session_id    IN    NUMBER)

SET_SESSION_ID_TO_NEXT_VALUEプロシージャ

このプロシージャは、GET_NEXT_SESSION_IDおよびSET_SESSION_IDの操作を1回のコールに結合します。

構文

PROCEDURE SETsN_ID_TO_NEXT_VALUE;