Oracle® Application Express

APIリファレンス

リリース5.0

E67397-01(原本部品番号:E39149-05)

2015年8月

Oracle Application Express APIリファレンス, リリース5.0

E67397-01

Copyright © 2003, 2015, Oracle and/or its affiliates.All rights reserved.

原本著者: Terri Jennings

原本協力者: Christina Cho、Hilary Farrell、Michael Hichwa、Joel Kallman、Sharon Kennedy、Christian Neumueller、Anthony Raynor、Marc Sewtz、John Snyders、Jason Straub、Drue Swadener、Vladislav Unarov、Patrick Wolf

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

このリリースでの変更点

- Oracle Application Expressリリース5.0での変更点

1 APEX_APPLICATION

- グローバル変数

- 配列の参照

- 送信時プロセス内の値の参照

- 配列の単一値への変換

- HELPプロシージャ

- STOP_APEX_ENGINEプロシージャ

2 APEX_APPLICATION_INSTALL

- パッケージの概要

- APEX_APPLICATION_INSTALLで操作する属性

- スクリプトのインポート例

- CLEAR_ALLプロシージャ

- GENERATE_APPLICATION_IDプロシージャ

- GENERATE_OFFSETプロシージャ

- GET_APPLICATION_ALIASファンクション

- GET_APPLICATION_IDファンクション

- GET_APPLICATION_NAMEファンクション

- GET_AUTO_INSTALL_SUP_OBJファンクション

- GET_IMAGE_PREFIXファンクション

- GET_OFFSETファンクション

- GET_PROXYファンクション

- GET_SCHEMAファンクション

- GET_WORKSPACE_IDファンクション

- SET_APPLICATION_ALIASプロシージャ

- SET_APPLICATION_IDプロシージャ

- SET_APPLICATION_NAMEプロシージャ

- SET_AUTO_INSTALL_SUP_OBJプロシージャ

- SET_IMAGE_PREFIXプロシージャ

- SET_OFFSETプロシージャ

- SET_PROXYプロシージャ

- SET_SCHEMAプロシージャ

- SET_WORKSPACE_IDプロシージャ

3 APEX_AUTHENTICATION

- 定数

- CALLBACKプロシージャ

- GET_CALLBACK_URLファンクション

- GET_LOGIN_USERNAME_COOKIEファンクション

- IS_AUTHENTICATEDファンクション

- IS_PUBLIC_USERファンクション

- LOGINプロシージャ

- LOGOUTプロシージャ

- POST_LOGINプロシージャ

- SEND_LOGIN_USERNAME_COOKIEプロシージャ

4 APEX_AUTHORIZATION

- ENABLE_DYNAMIC_GROUPSプロシージャ

- IS_AUTHORIZEDファンクション

- RESET_CACHEプロシージャ

5 APEX_COLLECTION

- APEX_COLLECTION APIについて

- コレクションのネーミング

- コレクションの作成

- パラメータp_generate_md5について

- コレクションへのアクセス

- コレクションのマージ

- コレクションの切捨て

- コレクションの削除

- 現在のアプリケーションに関するすべてのコレクションの削除

- 現在のセッションにおけるすべてのコレクションの削除

- コレクションへのメンバーの追加

- パラメータp_generate_md5、p_clob001、p_blob001およびp_xmltype001について

- コレクション・メンバーの更新

- コレクション・メンバーの削除

- メンバー数の取得

- コレクションの再順序付け

- コレクションの存在の確認

- メンバーの順序番号の調整

- コレクション・メンバーのソート

- コレクションのセッション・ステートのクリア

- コレクション・ステータスの判別

- ADD_MEMBERプロシージャ

- ADD_MEMBERファンクション

- ADD_MEMBERSプロシージャ

- COLLECTION_EXISTSファンクション

- COLLECTION_HAS_CHANGEDファンクション

- COLLECTION_MEMBER_COUNTファンクション

- CREATE_COLLECTIONプロシージャ

- CREATE_OR_TRUNCATE_COLLECTIONプロシージャ

- CREATE_COLLECTION_FROM_QUERYプロシージャ

- CREATE_COLLECTION_FROM_QUERY2プロシージャ

- CREATE_COLLECTION_FROM_QUERY_Bプロシージャ

- CREATE_COLLECTION_FROM_QUERYB2プロシージャ

- DELETE_ALL_COLLECTIONSプロシージャ

- DELETE_ALL_COLLECTIONS_SESSIONプロシージャ

- DELETE_COLLECTIONプロシージャ

- DELETE_MEMBERプロシージャ

- DELETE_MEMBERSプロシージャ

- GET_MEMBER_MD5ファンクション

- MERGE_MEMBERSプロシージャ

- MOVE_MEMBER_DOWNプロシージャ

- MOVE_MEMBER_UPプロシージャ

- RESEQUENCE_COLLECTIONプロシージャ

- RESET_COLLECTION_CHANGEDプロシージャ

- RESET_COLLECTION_CHANGED_ALLプロシージャ

- SORT_MEMBERSプロシージャ

- TRUNCATE_COLLECTIONプロシージャ

- UPDATE_MEMBERプロシージャ

- UPDATE_MEMBERSプロシージャ

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6

6 APEX_CSS

- ADDプロシージャ

- ADD_3RD_PARTY_LIBRARY_FILEプロシージャ

- ADD_FILEプロシージャ

7 APEX_CUSTOM_AUTH

- APPLICATION_PAGE_ITEM_EXISTSファンクション

- CURRENT_PAGE_IS_PUBLICファンクション

- DEFINE_USER_SESSIONプロシージャ

- GET_COOKIE_PROPSプロシージャ

- GET_LDAP_PROPSプロシージャ

- GET_NEXT_SESSION_IDファンクション

- GET_SECURITY_GROUP_IDファンクション

- GET_SESSION_IDファンクション

- GET_SESSION_ID_FROM_COOKIEファンクション

- GET_USERファンクション

- GET_USERNAMEファンクション

- IS_SESSION_VALIDファンクション

- LOGINプロシージャ

- LOGOUTプロシージャ[非推奨]

- POST_LOGINプロシージャ

- SESSION_ID_EXISTSファンクション

- SET_SESSION_IDプロシージャ

- SET_SESSION_ID_TO_NEXT_VALUEプロシージャ

- SET_USERプロシージャ

8 APEX_DEBUG

- 定数

- DISABLEプロシージャ

- ENABLEプロシージャ

- ENTERプロシージャ

- ERRORプロシージャ

- INFOプロシージャ

- LOG_DBMS_OUTPUTプロシージャ

- LOG_LONG_MESSAGEプロシージャ

- LOG_MESSAGEプロシージャ[非推奨]

- LOG_PAGE_SESSION_STATEプロシージャ

- MESSAGEプロシージャ

- REMOVE_DEBUG_BY_AGEプロシージャ

- REMOVE_DEBUG_BY_APPプロシージャ

- REMOVE_DEBUG_BY_VIEWプロシージャ

- REMOVE_SESSION_MESSAGESプロシージャ

- TOCHARファンクション

- TRACEプロシージャ

- WARNプロシージャ

9 APEX_ERROR

- 結果の型に使用される定数および属性

- エラー処理ファンクションの例

- ADD_ERRORプロシージャのシグネチャ1

- ADD_ERRORプロシージャのシグネチャ2

- ADD_ERRORプロシージャのシグネチャ3

- ADD_ERRORプロシージャのシグネチャ4

- ADD_ERRORプロシージャのシグネチャ5

- AUTO_SET_ASSOCIATED_ITEMプロシージャ

- EXTRACT_CONSTRAINT_NAMEファンクション

- GET_ARIA_ERROR_ATTRIBUTESファンクション

- GET_FIRST_ORA_ERROR_TEXTファンクション

- INIT_ERROR_RESULTファンクション

10 APEX_ESCAPE

- 定数

- HTMLファンクション

- HTML_ATTRIBUTEファンクション

- HTML_TRUNCファンクション

- HTML_WHITELISTファンクション

- JS_LITERALファンクション

- JSONファンクション

- LDAP_DNファンクション

- LDAP_SEARCH_FILTERファンクション

- NOOPファンクション

- REGEXPファンクション

- SET_HTML_ESCAPING_MODEプロシージャ

11 APEX_INSTANCE_ADMIN

- 使用可能なパラメータ値

- ADD_SCHEMAプロシージャ

- ADD_WORKSPACEプロシージャ

- CREATE_SCHEMA_EXCEPTIONプロシージャ

- FREE_WORKSPACE_APP_IDSプロシージャ

- GET_PARAMETERファンクション

- GET_SCHEMASファンクション

- GET_WORKSPACE_PARAMETER

- REMOVE_APPLICATIONプロシージャ

- REMOVE_SAVED_REPORTプロシージャ

- REMOVE_SAVED_REPORTSプロシージャ

- REMOVE_SCHEMAプロシージャ

- REMOVE_SCHEMA_EXCEPTIONプロシージャ

- REMOVE_SCHEMA_EXCEPTIONSプロシージャ

- REMOVE_SUBSCRIPTIONプロシージャ

- REMOVE_WORKSPACEプロシージャ

- REMOVE_WORKSPACE_EXCEPTIONSプロシージャ

- RESERVE_WORKSPACE_APP_IDSプロシージャ

- RESTRICT_SCHEMAプロシージャ

- SET_LOG_SWITCH_INTERVALプロシージャ

- SET_WORKSPACE_PARAMETER

- SET_PARAMETERプロシージャ

- SET_WORKSPACE_CONSUMER_GROUPプロシージャ

- TRUNCATE_LOGプロシージャ

- UNRESTRICT_SCHEMAプロシージャ

12 APEX_IR

- ADD_FILTERプロシージャのシグネチャ1

- ADD_FILTERプロシージャのシグネチャ2

- CHANGE_SUBSCRIPTION_EMAILプロシージャ

- CHANGE_REPORT_OWNERプロシージャ

- CHANGE_SUBSCRIPTION_EMAILプロシージャ

- CHANGE_SUBSCRIPTION_LANGプロシージャ

- CLEAR_REPORTプロシージャのシグネチャ1

- CLEAR_REPORTプロシージャのシグネチャ2

- DELETE_REPORTプロシージャ

- DELETE_SUBSCRIPTIONプロシージャ

- GET_LAST_VIEWED_REPORT_IDファンクション

- GET_REPORTファンクション

- RESET_REPORTプロシージャのシグネチャ1

- RESET_REPORTプロシージャのシグネチャ2

13 APEX_ITEM

- CHECKBOX2ファンクション

- DATE_POPUPファンクション

- DATE_POPUP2ファンクション

- DISPLAY_AND_SAVEファンクション

- HIDDENファンクション

- MD5_CHECKSUMファンクション

- MD5_HIDDENファンクション

- POPUP_FROM_LOVファンクション

- POPUP_FROM_QUERYファンクション

- POPUPKEY_FROM_LOVファンクション

- POPUPKEY_FROM_QUERYファンクション

- RADIOGROUPファンクション

- SELECT_LISTファンクション

- SELECT_LIST_FROM_LOVファンクション

- SELECT_LIST_FROM_LOV_XLファンクション

- SELECT_LIST_FROM_QUERYファンクション

- SELECT_LIST_FROM_QUERY_XLファンクション

- TEXTファンクション

- TEXTAREAファンクション

- TEXT_FROM_LOVファンクション

- TEXT_FROM_LOV_QUERYファンクション

14 APEX_JAVASCRIPT

- ADD_3RD_PARTY_LIBRARY_FILEプロシージャ

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

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

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

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

- ADD_INLINE_CODEプロシージャ

- ADD_LIBRARYプロシージャ

- ADD_ONLOAD_CODEプロシージャ

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

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

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

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

- ESCAPEファンクション

15 APEX_JSON

- パッケージの概要および例

- 定数およびデータ型

- CLOSE_ALLプロシージャ

- CLOSE_ARRAYプロシージャ

- CLOSE_OBJECTプロシージャ

- DOES_EXISTファンクション

- FIND_PATHS_LIKEファンクション

- FREE_OUTPUTプロシージャ

- FLUSHプロシージャ

- GET_BOOLEANファンクション

- GET_CLOB_OUTPUTファンクション

- GET_COUNTファンクション

- GET_DATEファンクション

- GET_MEMBERSファンクション

- GET_NUMBERファンクション

- GET_VALUEファンクション

- GET_VARCHAR2ファンクション

- INITIALIZE_CLOB_OUTPUTプロシージャ

- INITIALIZE_OUTPUTプロシージャ

- OPEN_ARRAYプロシージャ

- OPEN_OBJECTプロシージャ

- PARSEプロシージャのシグネチャ1

- PARSEプロシージャのシグネチャ2

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

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

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

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

- TO_XMLTYPEファンクション

- WRITEプロシージャのシグネチャ1

- WRITEプロシージャのシグネチャ2

- WRITEプロシージャのシグネチャ3

- WRITEプロシージャのシグネチャ4

- WRITEプロシージャのシグネチャ5

- WRITEプロシージャのシグネチャ6

- WRITEプロシージャのシグネチャ7

- WRITEプロシージャのシグネチャ8

- WRITEプロシージャのシグネチャ9

- WRITEプロシージャのシグネチャ10

- WRITEプロシージャのシグネチャ11

- WRITEプロシージャのシグネチャ12

- WRITEプロシージャのシグネチャ13

- WRITEプロシージャのシグネチャ14

- WRITEプロシージャのシグネチャ15

- WRITEプロシージャのシグネチャ16

16 APEX_LANG

- CREATE_LANGUAGE_MAPPINGプロシージャ

- DELETE_LANGUAGE_MAPPINGプロシージャ

- LANGファンクション

- MESSAGEファンクション

- PUBLISH_APPLICATIONプロシージャ

- SEED_TRANSLATIONSプロシージャ

- UPDATE_LANGUAGE_MAPPINGプロシージャ

- UPDATE_MESSAGEプロシージャ

- UPDATE_TRANSLATED_STRINGプロシージャ

17 APEX_LDAP

- AUTHENTICATEファンクション

- GET_ALL_USER_ATTRIBUTESプロシージャ

- GET_USER_ATTRIBUTESプロシージャ

- IS_MEMBERファンクション

- MEMBER_OFファンクション

- MEMBER_OF2ファンクション

- APEX_LDAP.SEARCHファンクション

18 APEX_MAIL

- 電子メールを送信するためのOracle Application Expressの構成

- ADD_ATTACHMENTプロシージャ

- GET_IMAGES_URLファンクション

- GET_INSTANCE_URLファンクション

- PUSH_QUEUEプロシージャ

- SENDプロシージャ

19 APEX_PAGE

- グローバル定数

- IS_DESKTOP_UIファンクション

- IS_JQM_SMARTPHONE_UIファンクション

- IS_JQM_TABLET_UIファンクション

- GET_UI_TYPEファンクション

- IS_READ_ONLYファンクション

- GET_PAGE_MODEファンクション

- PURGE_CACHEプロシージャ

- GET_URLファンクション

20 APEX_PLSQL_JOB

- APEX_PLSQL_JOBパッケージについて

- 使用可能なファンクション

- JOBS_ARE_ENABLEDファンクション

- PURGE_PROCESSプロシージャ

- SUBMIT_PROCESSファンクション

- TIME_ELAPSEDファンクション

- UPDATE_JOB_STATUSプロシージャ

21 APEX_PLUGIN

- データ型

- GET_AJAX_IDENTIFIERファンクション

- GET_INPUT_NAME_FOR_PAGE_ITEMファンクション

22 APEX_PLUGIN_UTIL

- DEBUG_DYNAMIC _ACTIONプロシージャ

- DEBUG_PAGE_ITEMプロシージャのシグネチャ1

- DEBUG_PAGE_ITEMプロシージャのシグネチャ2

- DEBUG_PROCESSプロシージャ

- DEBUG_REGIONプロシージャのシグネチャ1

- DEBUG_REGIONプロシージャのシグネチャ2

- ESCAPEファンクション

- EXECUTE_PLSQL_CODEプロシージャ

- GET_ATTRIBUTE_AS_NUMBERファンクション

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

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

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

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

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

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

- GET_ELEMENT_ATTRIBUTESファンクション

- GET_PLSQL_EXPRESSION_RESULTファンクション

- GET_PLSQL_FUNCTION_RESULTファンクション

- GET_POSITION_IN_LISTファンクション

- GET_SEARCH_STRINGファンクション

- IS_EQUALファンクション

- PAGE_ITEM_NAMES_TO_JQUERYファンクション

- PRINT_DISPLAY_ONLYプロシージャ

- PRINT_ESCAPED_VALUEプロシージャ

- PRINT_HIDDEN_IF_READONLYプロシージャ

- PRINT_JSON_HTTP_HEADERプロシージャ

- PRINT_LOV_AS_JSONプロシージャ

- PRINT_OPTIONプロシージャ

- REPLACE_SUBSTITUTIONSファンクション

23 APEX_REGION

- IS_READ_ONLYファンクション

- PURGE_CACHEプロシージャ

24 APEX_SPATIAL

- データ型

- CHANGE_GEOM_METADATAプロシージャ

- CIRCLE_POLYGONファンクション

- DELETE_GEOM_METADATAプロシージャ

- INSERT_GEOM_METADATAプロシージャ

- INSERT_GEOM_METADATA_LONLATプロシージャ

- POINTファンクション

- RECTANGLEファンクション

25 APEX_UI_DEFAULT_UPDATE

- ADD_AD_COLUMNプロシージャ

- ADD_AD_SYNONYMプロシージャ

- DEL_AD_COLUMNプロシージャ

- DEL_AD_SYNONYMプロシージャ

- DEL_COLUMNプロシージャ

- DEL_GROUPプロシージャ

- DEL_TABLEプロシージャ

- SYNCH_TABLEプロシージャ

- UPD_AD_COLUMNプロシージャ

- UPD_AD_SYNONYMプロシージャ

- UPD_COLUMNプロシージャ

- UPD_DISPLAY_IN_FORMプロシージャ

- UPD_DISPLAY_IN_REPORTプロシージャ

- UPD_FORM_REGION_TITLEプロシージャ

- UPD_GROUPプロシージャ

- UPD_ITEM_DISPLAY_HEIGHTプロシージャ

- UPD_ITEM_DISPLAY_WIDTHプロシージャ

- UPD_ITEM_FORMAT_MASKプロシージャ

- UPD_ITEM_HELPプロシージャ

- UPD_LABELプロシージャ

- UPD_REPORT_ALIGNMENTプロシージャ

- UPD_REPORT_FORMAT_MASKプロシージャ

- UPD_REPORT_REGION_TITLEプロシージャ

- UPD_TABLEプロシージャ

26 APEX_UTIL

- CACHE_GET_DATE_OF_PAGE_CACHEファンクション

- CACHE_GET_DATE_OF_REGION_CACHEファンクション

- CACHE_PURGE_BY_APPLICATIONプロシージャ

- CACHE_PURGE_BY_PAGEプロシージャ

- CACHE_PURGE_STALEプロシージャ

- CHANGE_CURRENT_USER_PWプロシージャ

- CHANGE_PASSWORD_ON_FIRST_USEファンクション

- CLOSE_OPEN_DB_LINKSプロシージャ

- CLEAR_APP_CACHEプロシージャ

- CLEAR_PAGE_CACHEプロシージャ

- CLEAR_USER_CACHEプロシージャ

- COUNT_CLICKプロシージャ

- CREATE_USERプロシージャ

- CREATE_USER_GROUPプロシージャ

- CURRENT_USER_IN_GROUPファンクション

- CUSTOM_CALENDARプロシージャ

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

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

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

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

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

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

- EDIT_USERプロシージャ

- END_USER_ACCOUNT_DAYS_LEFTファンクション

- EXPIRE_END_USER_ACCOUNTプロシージャ

- EXPIRE_WORKSPACE_ACCOUNTプロシージャ

- EXPORT_USERSプロシージャ

- FETCH_APP_ITEMファンクション

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

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

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

- FIND_SECURITY_GROUP_IDファンクション

- FIND_WORKSPACEファンクション

- GET_ACCOUNT_LOCKED_STATUSファンクション

- GET_ATTRIBUTEファンクション

- GET_AUTHENTICATION_RESULTファンクション

- GET_BLOB_FILE_SRCファンクション

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

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

- GET_CURRENT_USER_IDファンクション

- GET_DEFAULT_SCHEMAファンクション

- GET_EDITIONファンクション

- GET_EMAILファンクション

- GET_FEEDBACK_FOLLOW_UPファンクション

- GET_FILEプロシージャ

- GET_FILE_IDファンクション

- GET_FIRST_NAMEファンクション

- GET_GROUPS_USER_BELONGS_TOファンクション

- GET_GROUP_IDファンクション

- GET_GROUP_NAMEファンクション

- GET_HASHファンクション

- GET_HIGH_CONTRAST_MODE_TOGGLEファンクション

- GET_LAST_NAMEファンクション

- GET_NUMERIC_SESSION_STATEファンクション

- GET_PREFERENCEファンクション

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

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

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

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

- GET_SCREEN_READER_MODE_TOGGLEファンクション

- GET_SESSION_LANGファンクション

- GET_SESSION_STATEファンクション

- GET_SESSION_TERRITORYファンクション

- GET_SESSION_TIME_ZONEファンクション

- GET_SINCEファンクション

- GET_USER_IDファンクション

- GET_USER_ROLESファンクション

- GET_USERNAMEファンクション

- HOST_URLファンクション

- HTML_PCT_GRAPH_MASKファンクション

- INCREMENT_CALENDARプロシージャ

- IR_CLEARプロシージャ[非推奨]

- IR_DELETE_REPORTプロシージャ[非推奨]

- IR_DELETE_SUBSCRIPTIONプロシージャ[非推奨]

- IR_FILTERプロシージャ[非推奨]

- IR_RESETプロシージャ[非推奨]

- IS_HIGH_CONTRAST_SESSIONファンクション

- IS_HIGH_CONTRAST_SESSION_YNファンクション

- IS_LOGIN_PASSWORD_VALIDファンクション

- IS_SCREEN_READER_SESSIONファンクション

- IS_SCREEN_READER_SESSION_YNファンクション

- IS_USERNAME_UNIQUEファンクション

- KEYVAL_NUMファンクション

- KEYVAL_VC2ファンクション

- LOCK_ACCOUNTプロシージャ

- PASSWORD_FIRST_USE_OCCURREDファンクション

- PREPARE_URLファンクション

- PUBLIC_CHECK_AUTHORIZATIONファンクション[非推奨]

- PURGE_REGIONS_BY_APPプロシージャ

- PURGE_REGIONS_BY_NAMEプロシージャ

- PURGE_REGIONS_BY_PAGEプロシージャ

- REDIRECT_URLプロシージャ

- REMOVE_PREFERENCEプロシージャ

- REMOVE_SORT_PREFERENCESプロシージャ

- REMOVE_USERプロシージャ

- RESET_AUTHORIZATIONSプロシージャ[非推奨]

- RESET_PASSWORDプロシージャ

- RESET_PWプロシージャ

- SAVEKEY_NUMファンクション

- SAVEKEY_VC2ファンクション

- SET_ATTRIBUTEプロシージャ

- SET_AUTHENTICATION_RESULTプロシージャ

- SET_BUILD_OPTION_STATUSプロシージャ

- SET_CURRENT_THEME_STYLEプロシージャ

- SET_CUSTOM_AUTH_STATUSプロシージャ

- SET_EDITIONプロシージャ

- SET_EMAILプロシージャ

- SET_FIRST_NAMEプロシージャ

- SET_GROUP_GROUP_GRANTSプロシージャ

- SET_GROUP_USER_GRANTSプロシージャ

- SET_LAST_NAMEプロシージャ

- SET_PREFERENCEプロシージャ

- SET_SECURITY_GROUP_IDプロシージャ

- SET_SESSION_HIGH_CONTRAST_OFFプロシージャ

- SET_SESSION_HIGH_CONTRAST_ONプロシージャ

- SET_SESSION_LANGプロシージャ

- SET_SESSION_LIFETIME_SECONDSプロシージャ

- SET_SESSION_MAX_IDLE_SECONDSプロシージャ

- SET_SESSION_SCREEN_READER_OFFプロシージャ

- SET_SESSION_SCREEN_READER_ONプロシージャ

- SET_SESSION_STATEプロシージャ

- SET_SESSION_TERRITORYプロシージャ

- SET_SESSION_TIME_ZONEプロシージャ

- SET_USERNAMEプロシージャ

- SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャ

- SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ

- STRING_TO_TABLEファンクション

- STRONG_PASSWORD_CHECKプロシージャ

- STRONG_PASSWORD_VALIDATIONファンクション

- SUBMIT_FEEDBACKプロシージャ

- SUBMIT_FEEDBACK_FOLLOWUPプロシージャ

- TABLE_TO_STRINGファンクション

- UNEXPIRE_END_USER_ACCOUNTプロシージャ

- UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ

- UNLOCK_ACCOUNTプロシージャ

- URL_ENCODEファンクション

- WORKSPACE_ACCOUNT_DAYS_LEFTファンクション

27 APEX_WEB_SERVICE

- APEX_WEB_SERVICE APIについて

- SOAP形式のWebサービスの起動

- RESTful形式のWebサービスの起動

- CookiesおよびHTTPヘッダーの取得

- CookiesおよびHTTPヘッダーの設定

- BLOB2CLOBBASE64ファンクション

- CLOBBASE642BLOBファンクション

- MAKE_REQUESTプロシージャ

- MAKE_REQUESTファンクション

- MAKE_REST_REQUESTファンクション

- MAKE_REST_REQUEST_Bファンクション

- PARSE_RESPONSEファンクション

- PARSE_RESPONSE_CLOBファンクション

- PARSE_XMLファンクション

- PARSE_XML_CLOBファンクション

28 APEX_ZIP

- データ型

- ADD_FILEプロシージャ

- FINISHプロシージャ

- GET_FILE_CONTENTファンクション

- GET_FILESファンクション

29 JavaScript API

- apexネームスペースの使用

- グローバル変数

- apex.confirmファンクションについて

- apex.confirm(pMessage, pRequest)

- apex.confirm(pMessage, pOptions)

- apex.submitファンクションについて

- apex.submit(pOptions)

- apex.submit(pRequest)

- apex.daネームスペース

- apex.da.resume (pCallback, pErrorOccurred)

- apex.debugネームスペース

- ログ・レベルの定数

- apex.debug.error(...*)

- apex.debug.getLevel()

- apex.debug.info(...*)

- apex.debug.log(...*)

- apex.debug.message(pLevel,...*)

- apex.debug.setLevel(pLevel)

- apex.debug.trace(...*)

- apex.debug.warn(...*)

- apex.eventネームスペース

- apex.event.trigger(pSelector,pEvent,pData)

- apex.item

- apex.item( pNd )

- apex.item( pNd ).addValue( pValue )

- apex.item( pNd ).disable()

- apex.item( pNd ).enable()

- apex.item( pNd ).getValue()

- apex.item( pNd ).hide( pHideRow)

- apex.item( pNd ).isEmpty()

- apex.item( pNd ).setFocus()

- apex.item( pNd ).setStyle( pPropertyName, pPropertyValue )

- apex.item( pNd ).setValue(pValue, pDisplayValue, pSuppressChangeEvent)

- apex.item( pNd ).show( pShowRow )

- apex.langネームスペース

- apex.lang.addMessages ( pMessages )

- apex.lang.clearMessages ( pMessages )

- apex.lang.format ( pPattern, ...* )

- apex.lang.formatMessage ( pKey, ...* )

- apex.lang.formatMessageNoEscape ( pKey, ...* )

- apex.lang.formatNoEscape ( pPattern, ...* )

- apex.lang.getMessage ( pKey )

- apex.navigationネームスペース

- apex.navigation.dialog(pUrl,pOptions,pCssClasses,pTriggeringElement)

- apex.navigation.dialog.cancel(plsModal)

- apex.navigation.dialog.close(plsModal,pAction)

- apex.navigation.dialog.fireCloseHandler(pHandler$,pAction)

- apex.navigation.dialog.registerCloseHandler(pOptions)

- apex.navigation.openInNewWindow(pUrl,pWindowName,pOptions)

- apex.navigation.popup(pOptions)

- apex.navigation.popup.close(pItem,pValue)

- apex.navigation.redirect(pUrl)

- apex.serverネームスペース

- apex.server.plugin(pAjaxIdentifier,pData,pOptions)

- apex.server.pluginUrl( pAjaxIdentifier, pData )

- apex.server.process( pName, pData, pOptions )

- apex.server.url( pData ) (pPage)

- apex.storageネームスペース

- apex.storage.getCookie(pName)

- apex.storage.setCookie(pName,pValue)

- apex.utilネームスペース

- apex.util.showSpinner

- apex.util.delayLinger

- apex.widgetネームスペース

- apex.widget.initPageItem( pName, pOptions)

- 非ネームスペースのJavascript API

- $x(pNd)

- $v(pNd)

- $v2(pNd)

- $s(pNd, pValue, pDisplayValue, pSuppressChangeEvent)

- $u_Narray(pNd)

- $u_Carray(pNd)

- $nvl(pTest, pDefault)

- $x_Style(pNd, pStyle, pString)

- $x_Hide(pNd)

- $x_Show(pNd)

- $x_Toggle(pNd)

- $x_Remove(pNd)

- $x_Value(pNd,pValue)

- $x_UpTill(pNd, pToTag)

- $x_ItemRow(pNd,pFunc)

- $x_HideItemRow(pNd)

- $x_ShowItemRow(pNd)

- $x_ToggleItemRow(pNd)

- $x_HideAllExcept(pNd,pNdArray)

- $x_HideSiblings(pNd)

- $x_ShowSiblings(pNd)

- $x_Class(pNd,pClass)

- $x_SetSiblingsClass(pNd, pClass, pNdClass)

- $x_ByClass(pClass, pNd, pTag)

- $x_ShowAllByClass(pNd, pClass, pTag)

- $x_ShowChildren(pNd)

- $x_HideChildren(pNd)

- $x_disableItem(pNd, pTest)

- $f_get_emptys(pNd, pClassFail, pClass)

- $v_Array(pNd)

- $f_ReturnChecked(pNd)

- $d_ClearAndHide(pNd)

- $f_SelectedOptions(pNd)

- $f_SelectValue(pNd)

- $u_ArrayToString(pArray, pDelim)

- $x_CheckImageSrc(pId,pSearch)

- $v_CheckValueAgainst(pThis, pValue)

- $f_Hide_On_Value_Item(pThis, pThat, pValue)

- $f_Show_On_Value_Item(pThis, pThat, pValue)

- $f_Hide_On_Value_Item_Row(pThis, pThat, pValue)

- $f_Show_On_Value_Item_Row(pThis, pThat, pValue)

- $f_DisableOnValue(pThis, pValue, pThat)

- $x_ClassByClass(pNd, pClass, pTag, pClass2)

- $f_ValuesToArray(pThis, pClass, pTag)

- $x_FormItems(pNd, pType)

- $f_CheckAll(pThis, pCheck, pArray)

- $f_CheckFirstColumn(pNd)

- $x_ToggleWithImage(pThis,pNd)

- $x_SwitchImageSrc(pNd, pSearch, pReplace)

- $x_CheckImageSrc(pNd, pSearch)

- $u_SubString(pText,pMatch)

- html_RemoveAllChildren(pNd)

- html_SetSelectValue(pId,pValue)

- addLoadEvent(pFunction)

- $f_Swap(pThis,pThat)

- $f_SetValueSequence(pArray,pMultiple)

- $dom_AddTag(pThis, pTag, pText)

- $tr_AddTD(pThis,pText)

- $tr_AddTH(pThis,pText)

- $dom_AddInput(pThis,pType,pId,pName,pValue)

- $dom_MakeParent(p_Node,p_Parent)

- $x_RowHighlight(pThis, pColor)

- $x_RowHighlightOff(pThis)

- $v_Upper(pNd)

- $d_Find(pThis,pString,pTags,pClass)

- $f_First_field(pNd)

- レガシーJavaScript API

- $v_PopupReturn(pValue, pThat) [非推奨]

- $v_IsEmpty(pThis) [非推奨]

- submitEnter(pNd,e) [非推奨]

- setReturn(p_R,p_D) [非推奨]

- GetCookie (pName) [非推奨]

- SetCookie (pName,pValue) [非推奨]

索引

はじめに

Oracle Application Express APIリファレンスでは、Oracle Application Express環境でプログラミングする際に使用可能な、APIと呼ばれるApplication Programming Interfaceについて説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

Oracle Application Express APIリファレンスは、Oracle Application Expressを使用してデータベース集中型のWebアプリケーションを構築するアプリケーション開発者を対象としています。このガイドでは、Oracle Application Express環境でプログラミングする際に使用可能なAPIについて説明します。

このガイドを使用するには、リレーショナル・データベースの概念、およびOracle Application Expressを実行するオペレーティング・システム環境について理解しておく必要があります。

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、次のOracleドキュメントを参照してください。

- 『Oracle Application Expressリリース・ノート』

- 『Oracle Application Expressインストレーション・ガイド』

- 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』

- 『Oracle Application Express管理ガイド』

- 『Oracle Application Expressアプリケーション移行ガイド』

- 『Oracle Application Express SQLワークショップ・ガイド』

- 『Oracle Application Expressエンド・ユーザーズ・ガイド』

- 『Oracle Database概要』

- 『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』

- 『Oracle Database管理者ガイド』

- 『Oracle Database SQL言語リファレンス』

- 『SQL*Plusユーザーズ・ガイドおよびリファレンス』

- 『Oracle Database PL/SQL言語リファレンス』

表記規則

PL/SQLサブプログラムの表記規則の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。このマニュアルには、次の情報が含まれています。

- サブプログラムのパラメータ・モードの指定

- サブプログラムのパラメータのデフォルト値の指定

- PL/SQLサブプログラムの名前のオーバーロード

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

このリリースでの変更点

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

- Oracle Application Expressリリース5.0での変更点

Oracle Application Expressリリース5.0での変更点

Oracle Application Expressリリース5.0用のOracle Application Express APIリファレンスにおける変更点は、次のとおりです。

新機能

このリリースの新機能は次のとおりです。

- APEX_AUTHORIZATION (新規)
これは、アプリケーションへのアクセス権の制御および問合せに使用されるパブリック・ユーティリティ・ファンクションが格納されている新しいパッケージです。

- APEX_ERROR (更新)
新しいerror_statement属性がT_ERRORレコード・タイプに追加されました。

- APEX_ESCAPE (更新)
このファンクションは、正規表現のコンテキストを変更する可能性がある文字をエスケープします。ユーザー入力を保護するために使用してください。

- APEX_JSON (新規)
これは、JSONを解析および生成するユーティリティが格納されている新しいパッケージです。

- APEX_INSTANCE_ADMIN (更新)

- 使用可能なパラメータが更新され、新しいHTTP_RESPONSE_HEADERSおよびHTTP_STS_MAX_AGEが追加されました。

- FREE_WORKSPACE_APP_IDSプロシージャ(新規) - このプロシージャは、指定されたワークスペースIDについてアプリケーションIDの予約を削除します。

- RESERVE_WORKSPACE_APP_IDSプロシージャ(新規) - このプロシージャは、指定されたワークスペースのWebシート・アプリケーションおよびデータベース・アプリケーションのIDを永久予約します。

- 使用可能なパラメータが更新され、新しいPASSWORD_HASH_FUNCTIONおよびCHECKSUM_HASH_FUNCTIONが追加されました。

- 新しいインスタンス・プリファレンスAPEX_REST_PATH_PREFIXが、Application Expressで公開される組込みRESTfulサービスへのアクセスに使用されるURIパス接頭辞を制御するために追加されました。

- 次の新しいインスタンス管理者APIがスキーマ制限のために追加されました: CREATE_SCHEMA_EXCEPTION、REMOVE_SCHEMA_EXCEPTION、REMOVE_SCHEMA_EXCPEPTIONS、REMOVE_WORKSPACE_EXCEPTIONS、RESTRICT_SCHEMA、UNRESTRICT_SCHEMA。

- APEX_IR (更新)
新しいCHANGE_REPORT_OWNERプロシージャが、レポートIDを使用して保存された対話モード・レポートの所有者を変更するために追加されました。

- APEX_PLUGIN (更新)
新しいt_authorizationおよびt_authorization_exec_resultが追加されました。

- APEX_SPATIAL (新規)
これは、Oracle Application Express内でOracle LocatorおよびOracle Spatialオプションを使用できるようにする新しいパッケージです。

- APEX_ZIP (新規)
これは、ファイルの圧縮および解凍を管理する新しいパッケージです。

- APEX_UTIL (更新)

- SET_GROUP_GROUP_GRANTSプロシージャ(新規)
このプロシージャは、指定されたグループのグループ権限付与を変更します。

- SET_GROUP_USER_GRANTSプロシージャ(新規)
このプロシージャは、指定されたユーザーのグループ権限付与を変更します。

- RESET_AUTHORIZATIONSプロシージャ(非推奨)
このプロシージャは、キャッシュを元に戻して、次にページ表示または受入れ処理中に認可スキームが適用された際に各認可スキームの再検証を要求する場合に使用します。

この非推奨のプロシージャではなく、RESET_CACHEプロシージャを使用してください。

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

この非推奨のファンクションではなく、IS_AUTHORIZEDファンクションを使用してください。

- RESET_PASSWORDプロシージャ(新規)
このプロシージャは、現在のワークスペースについて特定のユーザー名のパスワードを変更する場合に使用します。

- APEX_PLUGIN_UTIL (更新)

- GET_ATTRIBUTE_AS_NUMBERファンクション(新規)
このファンクションは、現行データベース・セッションで有効なNLS小数点セパレータを考慮して、プラグイン属性の値を数値として戻します。このファンクションは、組込みto_numberファンクションのかわりに、プラグインPL/SQLソースでNUMBER型のカスタム属性に使用します。

- JavaScript API (更新)

- apex.debugネームスペース(New)
このネームスペースは、Oracle Application Expressのすべてのデバッグ・ファンクションの格納に使用します。

- apex.langネームスペース(New)
このネームスペースは、Oracle Application Expressのローカライズ関連のファンクションに使用します。

- apex.serverネームスペース(更新)
apex.server.urlファンクションが、現在のページに対してGETリクエストを発行するためのURLを戻すために追加されました。

- apex.navigationネームスペース(新規)
apex.navigationネームスペースには、Oracle Application Expressのポップアップおよびリダイレクト関連のファンクションの他、アプリケーションのダイアログ・ページを処理するためのユーティリティ・ファンクションも格納されます。

非推奨となったかサポートが終了した機能

『Oracle Application Expressリリース・ノート』の非推奨となった機能およびサポートが終了した機能に関する項を参照してください。

1 APEX_APPLICATION

APEX_APPLICATIONパッケージは、Oracle Application Expressレンダリング・エンジンを実装するPL/SQLパッケージです。このパッケージを使用すると、多くのグローバル変数を使用できます。表1-1では、APEX_APPLICATIONパッケージで使用可能なグローバル変数について説明します。

- グローバル変数

- 配列の参照

- 送信時プロセス内の値の参照

- 配列の単一値への変換

- HELPプロシージャ

- STOP_APEX_ENGINEプロシージャ

グローバル変数

表1-1 APEX_APPLICATIONで使用可能なグローバル変数

グローバル変数

説明

G_USER

現在ログインしているユーザーを指定します。

G_FLOW_ID

現在実行されているアプリケーションのIDを指定します。

G_FLOW_STEP_ID

現在実行されているページのIDを指定します。

G_FLOW_OWNER

現在実行されているアプリケーションの解析対象のスキーマを指定します。

G_REQUEST

表示または受入れモジュールに最後に渡されるか、あるいは表示または受入れモジュール内に最後に設定されるリクエスト変数の値を指定します。

G_BROWSER_LANGUAGE

Webブラウザの現行の言語プリファレンスを参照します。

G_DEBUG

デバッグが現在有効になっているかどうかを参照します。DEBUGフラグの有効値は、「Yes」または「No」です。デバッグを有効にすると、アプリケーション処理の詳細が表示されます。

G_HOME_LINK

アプリケーションのホームページを参照します。ページが指定されておらず、かつ認証スキームのロジックによって代替ページが指定されていない場合、Application Expressエンジンによって、この場所にリダイレクトされます。

G_LOGIN_URL

現在ログインしていないユーザー用のログイン・ページへのリンクを表示するために使用されます。

G_IMAGE_PREFIX

Oracle Application Expressによって分散されたイメージ・ディレクトリを指すためにWebサーバーで使用される仮想パスを参照します。

G_FLOW_SCHEMA_OWNER

Application Expressスキーマの所有者を参照します。

G_PRINTER_FRIENDLY

Application Expressエンジンが印刷表示モードで実行されているかどうかを参照します。この設定は、印刷されるドキュメントには不要な要素をページから排除する場合に参照できます。

G_PROXY_SERVER

アプリケーション属性「プロキシ・サーバー」を参照します。

G_SYSDATE

データベース・サーバーの現在の日付を参照します。この日付には、DATEデータ型が使用されています。

G_PUBLIC_USER

データベース・アクセス記述子(DAD)でデータベースに接続するために使用するOracleスキーマを参照します。

G_GLOBAL_NOTIFICATION

アプリケーションのグローバル通知属性を指定します。

G_X01、... G_X10

表示または受入れモジュールに最後に渡されるか、あるいは表示または受入れモジュール内に最後に設定されるX01、... X10変数の値を指定します。通常、これらの変数はオンデマンドAJAXプロセスで使用します。

参照: 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のAPP_AJAX_X01、... APP_AJAX_X10に関する項

配列の参照

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

独自のアイテムを作成する場合、ページを送信した後でAPEX_APPLICATION.G_F01からAPEX_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" VALUE="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
APEX_ITEM.TEXT(P_IDX        => 1,
p_value      =>'array element '||i ,
p_size       =>32,
p_maxlength  =>32);
END LOOP;

送信時プロセス内の値の参照

PL/SQL変数APEX_APPLICATION.G_F01からAPEX_APPLICATION.G_F50を使用して、HTMLフォームによってポストされた値を参照できます。この要素は配列のため、値を直接参照できます。次に例を示します。

FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
htp.p('element '||I||' has a value of '||APEX_APPLICATION.G_F01(i));
END LOOP;

APEX_ITEM.CHECKBOXを使用して表示したチェック・ボックスには、選択されている行に対してのみAPEX_APPLICATION配列の値が含まれることに注意してください。送信したすべての行に対応するAPEX_APPLICATION配列のエントリを含めることができる他のアイテム(TEXT、TEXTAREAおよびDATE_POPUP)と異なり、チェック・ボックスには、行が選択されている場合にのみAPEX_APPLICATION配列のエントリが含まれます。

配列の単一値への変換

Oracle Application Expressパブリック・ユーティリティの機能を使用して、配列を単一値に変換することもできます。変換後の文字列値は、コロンで区切られた配列要素の値のリストになります。次に例を示します。

htp.p(APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01));

このファンクションを使用すると、データに対して操作を実行するアプリケーション・プロセスで、G_F01からG_F50の値を参照できます。次の例に、表に値を挿入する方法を示します。

INSERT INTO my_table (my_column) VALUES
APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01)

HELPプロシージャ

このファンクションによって、ページおよびアイテム・レベルのヘルプ・テキストが、書式化されたHTMLページとして出力されます。これを使用すると、ご使用のアプリケーションでのヘルプ情報の表示方法をカスタマイズすることもできます。

構文

APEX_APPLICATION.HELP (
p_request        IN VARCHAR2 DEFAULT NULL,
p_flow_id        IN VARCHAR2 DEFAULT NULL,
p_flow_step_id   IN VARCHAR2 DEFAULT NULL,
p_show_item_help IN VARCHAR2 DEFAULT 'YES',
p_show_regions   IN VARCHAR2 DEFAULT 'YES',
p_before_page_html     IN VARCHAR2 DEFAULT '<p>',
p_after_page_html      IN VARCHAR2 DEFAULT NULL,
p_before_region_html   IN VARCHAR2 DEFAULT NULL,
p_after_region_html    IN VARCHAR2 DEFAULT '</td></tr></table></p>',
p_before_prompt_html   IN VARCHAR2 DEFAULT '<p><b>',
p_after_prompt_html    IN VARCHAR2 DEFAULT '</b></p>:&nbsp;',
p_before_item_html     IN VARCHAR2 DEFAULT NULL,
p_after_item_html      IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表1-2 HELPのパラメータ

パラメータ

説明

p_request

使用されません。

p_flow_id

出力するページ・レベルまたはアイテム・レベルのヘルプが含まれているアプリケーションID。

p_flow_step_id

表示するページ・レベルまたはアイテム・レベルのヘルプが含まれているページID。

p_show_item_help

アイテム・レベルのヘルプが出力されるかどうかを決定するフラグ。このパラメータを指定する場合は、値を「YES」または「NO」のいずれかに設定する必要があり、設定しないと、デフォルトの「YES」に設定されます。

p_show_regions

リージョン・ヘッダーが出力されるかどうかを決定するフラグ(ページ・アイテムが含まれているリージョン用)。このパラメータを指定する場合は、値を「YES」または「NO」のいずれかに設定する必要があり、設定しないと、デフォルトの「YES」に設定されます。

p_before_page_html

このパラメータは、ページ・レベルのヘルプ・テキストとアイテム・レベルのヘルプ・テキストの間にHTMLを含める場合に使用します。

p_after_page_html

このパラメータは、出力の下部の他のすべてのヘルプの後にHTMLを含める場合に使用します。

p_before_region_html

このパラメータは、すべてのリージョン・セクションの前にHTMLを含める場合に使用します。p_show_regionsが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_after_region_html

このパラメータは、すべてのリージョン・セクションの後にHTMLを含める場合に使用します。p_show_regionsが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_before_prompt_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ラベルの前にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_after_prompt_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ラベルの後にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_before_item_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ヘルプ・テキストの前にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

p_after_item_html

このパラメータは、アイテム・レベルのヘルプのすべてのアイテム・ヘルプ・テキストの後にHTMLを含める場合に使用します。p_show_item_helpが「NO」に設定されている場合、このパラメータは無視されることに注意してください。

例

次の例に、APEX_APPLICATION.HELPプロシージャを使用してヘルプ情報の表示方法をカスタマイズする方法を示します。

この例では、p_flow_step_idパラメータが:REQUESTに設定されているため、URLのREQUESTセクションに指定されたページIDによって、表示されるヘルプ情報のページが制御されます(これを行うための手順の詳細は、例の後を参照)。

また、ヘルプの表示は、(p_before_region_htmlパラメータによって)リージョンのサブヘッダーが異なる色で表示されるようにカスタマイズされています。さらに、(p_after_prompt_htmlパラメータによって)すべてのアイテム・プロンプトの後にデフォルトで表示される「:」は削除されています。

APEX_APPLICATION.HELP(
p_flow_id => :APP_ID,
p_flow_step_id => :REQUEST,
p_before_region_html => '<p><br/><table bgcolor="#A3BED8" width="100%"><tr><td><b>',
p_after_prompt_html  => '</b></p>&nbsp;&nbsp;');

ご使用のアプリケーションでこのタイプのコールを実装するには、次の手順を実行します。

1. アプリケーションのヘルプ・ページとなるページを作成します。

2. 「PL/SQL動的コンテンツ」タイプのリージョンを作成し、APEX_APPLICATION.HELPコールをPL/SQLソースとして追加します。

3. その後、このページに「ナビゲーション・バー」リンクを追加して、このリンクに設定されているREQUESTの値が&APP_PAGE_IDであることを確認します。

STOP_APEX_ENGINEプロシージャ

このプロシージャは、HTMLコードがHTTPバッファに追加されるのを避けるため、プロセスを停止してすぐに終了するようApplication Expressエンジンに指示します。

注意:
このプロシージャでは、例外apex_application.e_stop_apex_engineが内部的に発生します。WHEN OTHERS例外ハンドラを使用する場合、再度この例外が発生します。

構文

APEX_APPLICATION.STOP_APEX_ENGINE

パラメータ

なし

例1

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

owa_util.redirect_url('http://apex.oracle.com');
apex_application.stop_apex_engine;

例2

この例の場合も、ブラウザがhttp://apex.oracle.com/にリダイレクトして、それ以降の処理をすぐに停止します。ただし、この場合、コードには、apex_application.stop_apex_engineによって使用されるapex_application.e_stop_apex_engineを処理するWHEN OTHERS例外ハンドラも含まれています。

begin
... code which can raise an exception ...
owa_util.redirect_url('http://apex.oracle.com');
apex_application.stop_apex_engine;
exception
when apex_application.e_stop_apex_engine then
raise; -- raise again the stop Application Express engine exception
when others then
...; -- code to handle the exception
end;

2 APEX_APPLICATION_INSTALL

APEX_APPLICATION_INSTALLパッケージには、Application Expressアプリケーションのインストール・プロセス中にアプリケーション属性を変更するためのメソッドが多数用意されています。

- パッケージの概要

- APEX_APPLICATION_INSTALLで操作する属性

- スクリプトのインポート例

- CLEAR_ALLプロシージャ

- GENERATE_APPLICATION_IDプロシージャ

- GENERATE_OFFSETプロシージャ

- GET_APPLICATION_ALIASファンクション

- GET_APPLICATION_IDファンクション

- GET_APPLICATION_NAMEファンクション

- GET_AUTO_INSTALL_SUP_OBJファンクション

- GET_IMAGE_PREFIXファンクション

- GET_OFFSETファンクション

- GET_PROXYファンクション

- GET_SCHEMAファンクション

- GET_WORKSPACE_IDファンクション

- SET_APPLICATION_ALIASプロシージャ

- SET_APPLICATION_IDプロシージャ

- SET_APPLICATION_NAMEプロシージャ

- SET_AUTO_INSTALL_SUP_OBJプロシージャ

- SET_IMAGE_PREFIXプロシージャ

- SET_OFFSETプロシージャ

- SET_PROXYプロシージャ

- SET_SCHEMAプロシージャ

- SET_WORKSPACE_IDプロシージャ

パッケージの概要

Oracle Application ExpressでApplication Expressインスタンスにアプリケーションをインポートする場合、次の2つの方法があります。

1. アプリケーションのエクスポート・ファイルをアップロードおよびインストールする(Application ExpressのWebインタフェースを使用)。

2. アプリケーションのエクスポート・ファイルをSQLスクリプトとして実行する(通常は、コマンドライン・ユーティリティのSQL*Plusで実行)。

Application ExpressのWebインタフェースのファイル・アップロード機能を使用すると、開発者は異なるアプリケーションID、異なるワークスペースIDおよび異なる解析スキーマでアプリケーションをインポートできます。ただし、SQL*Plusなどのコマンドライン・ツールを使用してアプリケーションをインポートする場合は、アプリケーションのエクスポート・ファイルを直接変更しないかぎり、これらの属性(アプリケーションID、ワークスペースID、解析スキーマ)を変更することはできません。

インストール・ログを表示するには、コマンドライン・ツールから次のコマンドを入力すると、サーバー出力が表示されます。

set serveroutput on unlimited

コマンドライン・ユーティリティまたは非Webベースのインストーラによるデプロイを意図されたアプリケーションの作成が多くなると、Application Expressユーザーは、いずれのApplication Expressインスタンスの任意のワークスペースにアプリケーションをどのようにインポートするかという課題に直面します。

もう1つの一般的なシナリオとして、トレーニング・クラスがあり、50の異なるワークスペースへのアプリケーションのインストールに、すべて同じアプリケーション・エクスポート・ファイルを使用します。ユーザーは、現在は、アプリケーションのエクスポート・ファイルにユーザー独自のグローバル変数を追加し、、インストール時にこれらのグローバルの値を変更することで対処しています。ただし、このようにアプリケーションのエクスポート・ファイルの手動による変更(通常はエクスポート後にsedまたはawkスクリプトを実行)は、不要であるべきです。

Application Express 4.0以上には、APEX_APPLICATION_INSTALL APIが含まれます。このPL/SQL APIには、Application Expressアプリケーション・インストール・プロセス中にアプリケーション属性を設定するためのメソッドが多数用意されています。Application Express 4.0以上のすべてのエクスポート・ファイルには、APEX_APPLICATION_INSTALL APIで設定された値への参照が含まれています。ただし、このAPIのメソッドはデフォルトのアプリケーション・インストール動作をオーバーライドするためにのみ使用します。

APEX_APPLICATION_INSTALLで操作する属性

下の表は、このAPIのファンクションによって設定できる属性を示しています。

表2-1 APEX_APPLICATION_INSTALL APIで操作する属性

属性

説明

ワークスペースID

インポートされるアプリケーションのワークスペースID。「GET_WORKSPACE_IDファンクション」、「SET_WORKSPACE_IDプロシージャ」を参照してください。

アプリケーションID

インポートされるアプリケーションのアプリケーションID。「GENERATE_APPLICATION_IDプロシージャ」、「GET_APPLICATION_IDファンクション」、「SET_APPLICATION_IDプロシージャ」を参照してください。

オフセット

アプリケーション・インポート中に使用されるオフセット値。「GENERATE_OFFSETプロシージャ」、「GET_OFFSETファンクション」、「SET_OFFSETプロシージャ」を参照してください。

スキーマ

インポートされるアプリケーションの解析スキーマ("owner")。「GET_SCHEMAファンクション」、「SET_SCHEMAプロシージャ」を参照してください。

名前

インポートされるアプリケーションのアプリケーション名。「GET_APPLICATION_NAMEファンクション」、「SET_APPLICATION_NAMEプロシージャ」を参照

別名

インポートされるアプリケーションのアプリケーションの別名。「GET_APPLICATION_ALIASファンクション」、「SET_APPLICATION_ALIASプロシージャ」を参照してください。

イメージ接頭辞

インポートされるアプリケーションのイメージ接頭辞。「GET_IMAGE_PREFIXファンクション」、「SET_IMAGE_PREFIXプロシージャ」を参照してください。

プロキシ

インポートされるアプリケーションのプロキシ・サーバ属性。「GET_PROXYファンクション」、「SET_PROXYプロシージャ」を参照してください。

スクリプトのインポート例

開発インスタンス上のワークスペースFRED_DEVを使用して、アプリケーション645のアプリケーション・エクスポートを生成して、ファイルf645.sqlとして保存します。このセクションのすべての例は、SQL*Plusに接続していることを前提としています。

変更がない場合のアプリケーションのインポート

同じアプリケーションIDを使用して、同じ開発インスタンスのFRED_DEVワークスペースにこのアプリケーションをインポートするには、次のようにします。

@f645.sql

アプリケーションIDの指定によるアプリケーションのインポート

アプリケーションID 702を使用して、同じ開発インスタンスのFRED_DEVワークスペースにこのアプリケーションをインポートするには、次のようにします。

begin
apex_application_install.set_application_id( 702);
apex_application_install.generate_offset;
apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/

@645.sql

アプリケーションIDの生成によるアプリケーションのインポート

Application Expressで生成される使用可能なアプリケーションIDを使用して、同じ開発インスタンスのFRED_DEVワークスペースにこのアプリケーションをインポートするには、次のようにします。

begin
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/

@f645.sql

異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート

スキーマFREDDYを使用して、ワークスペースIDを使用して本番インスタンスのFRED_PRODワークスペースにこのアプリケーションをインポートするには、次のようにします(FRED_DEVおよびFRED_PRODのワークスペースIDは異なります)。

declare
l_workspace_id number;
begin
select workspace_id into l_workspace_id
from apex_workspaces
where workspace = 'FRED_PROD';
--
apex_application_install.set_workspace_id( l_workspace_id );
apex_application_install.generate_offset;
apex_application_install.set_schema( 'FREDDY' );
apex_application_install.set_application_alias( 'FREDPROD_APP' );
end;
/

@f645.sql

3つの異なるワークスペースのトレーニング・インスタンスへのインポート

このアプリケーションを3つの異なるワークスペースのトレーニング・インスタンスにインポートするには、次のようにします。

declare
l_workspace_id number;
begin
select workspace_id into l_workspace_id
from apex_workspaces
where workspace = 'TRAINING1';
--
apex_application_install.set_workspace_id( l_workspace_id );
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_schema( 'STUDENT1' );
apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/

@f645.sql

declare
l_workspace_id number;
begin
select workspace_id into l_workspace_id
from apex_workspaces
where workspace = 'TRAINING2';
--
apex_application_install.set_workspace_id( l_workspace_id );
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_schema( 'STUDENT2' );
apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/

@f645.sql

declare
l_workspace_id number;
begin
select workspace_id into l_workspace_id
from apex_workspaces
where workspace = 'TRAINING3';
--
apex_application_install.set_workspace_id( l_workspace_id );
apex_application_install.generate_application_id;
apex_application_install.generate_offset;
apex_application_install.set_schema( 'STUDENT3' );
apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/

@f645.sql

CLEAR_ALLプロシージャ

このプロシージャは、APEX_APPLICATION_INSTALLパッケージで現在保持されているすべての値をクリアします。

構文

APEX_APPLICATION_INSTALL.CLEAR_ALL;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージで現在設定されているすべての値をクリアします。

begin
apex_application_install.clear_all;
end;

GENERATE_APPLICATION_IDプロシージャ

このプロシージャはインスタンスで使用可能なアプリケーションIDを生成して、APEX_APPLICATION_INSTALLでアプリケーションIDを設定します。

構文

APEX_APPLICATION_INSTALL.GENERATE_APPLICATION_ID;

パラメータ

なし。

例

このプロシージャ・コールの例については、「アプリケーションIDの生成によるアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

参照:
「SET_APPLICATION_IDプロシージャ」、「GET_APPLICATION_IDファンクション」

GENERATE_OFFSETプロシージャ

このプロシージャは、アプリケーションのインポート中に使用されるオフセット値を生成します。このオフセット値は、Application Expressアプリケーション定義のメタデータがインスタンスの他のメタデータと競合しないようにするために使用します。新規アプリケーション・インストールの場合は、通常、このプロシージャをコールしてApplication Expressでこのオフセット値を生成するだけで十分です。

構文

APEX_APPLICATION_INSTALL.GENERATE_OFFSET;

パラメータ

なし。

例

このプロシージャ・コールの例については、「アプリケーションIDの指定によるアプリケーションのインポート」、「アプリケーションIDの生成によるアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

参照:
「GET_OFFSETファンクション」、「SET_OFFSETプロシージャ」

GET_APPLICATION_ALIASファンクション

このファンクションは、インポートされるアプリケーションのアプリケーション別名を取得します。これは、インポートされるアプリケーションに別名が指定されている場合にのみ使用します。アプリケーションの別名はワークスペースで一意である必要があります。また、インスタンスでも一意であることをお薦めします。

構文

APEX_APPLICATION_INSTALL.GET_APPLICATION_ALIAS
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションの別名の値を戻します。アプリケーションの別名は、255文字以下である必要があります。

declare
l_alias varchar2(255);
begin
l_alias := apex_application_install.get_application_alias;
end;

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

GET_APPLICATION_IDファンクション

このファンクションを使用して、インポートされるアプリケーションのアプリケーションIDを取得します。アプリケーションIDはインスタンス内に存在しないか、存在する場合はアプリケーションがインポートされるワークスペース内に存在する必要があります。

構文

APEX_APPLICATION_INSTALL.GET_APPLICATION_ID
RETURN NUMBER;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションIDの値を戻します。

declare
l_id number;
begin
l_id := apex_application_install.get_application_id;
end;

参照:
「SET_APPLICATION_IDプロシージャ」、「GENERATE_APPLICATION_IDプロシージャ」

GET_APPLICATION_NAMEファンクション

このファンクションは、インポート・アプリケーションのアプリケーション名を取得します。

構文

APEX_APPLICATION_INSTALL.GET_APPLICATION_NAME
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーション名の値を戻します。

declare
l_application_name varchar2(255);
begin
l_application_name := apex_application_install.get_application_name;
end;

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

GET_AUTO_INSTALL_SUP_OBJファンクション

このファンクションを使用して、アプリケーションのインポート時に使用される、サポートするオブジェクトの自動インストール設定を取得します。この設定は、コマンドライン・インストールの場合のみ有効です。この設定をTRUEに設定すると、アプリケーションのエクスポートにサポートするオブジェクトが含まれる場合、コマンドラインからのアプリケーションのインポート時に、サポートするオブジェクトは自動的にインストールまたはアプグレードされます。

構文

APEX_APPLICATION_INSTALL.GET_AUTO_INSTALL_SUP_OBJ
RETURN BOOLEAN;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージのサポートするオブジェクトの自動インストール設定の値を戻します。

declare
l_auto_install_sup_obj boolean;
begin
l_auto_install_sup_obj := apex_application_install.get_auto_install_sup_obj;
end;

GET_IMAGE_PREFIXファンクション

このファンクションはインポート・アプリケーションのイメージ接頭辞を取得します。ほとんどのApplication Expressインスタンスはデフォルトのイメージ接頭辞/i/を使用します。

構文

APEX_APPLICATION_INSTALL.GET_IMAGE_PREFIX
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションのイメージ接頭辞の値を戻します。アプリケーションのイメージ接頭辞は、255文字以下である必要があります。

declare
l_image_prefix varchar2(255);
begin
l_image_prefix := apex_application_install.get_image_prefix;
end;

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

GET_OFFSETファンクション

このファンクションを使用して、アプリケーションのインポート中に使用されるオフセット値を取得します。

構文

APEX_APPLICATION_INSTALL.GET_OFFSET
RETURN NUMBER;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションのオフセット値を戻します。

declare
l_offset number;
begin
l_offset := apex_application_install.get_offset;
end;

参照:
「SET_OFFSETプロシージャ」、「GENERATE_OFFSETプロシージャ」

GET_PROXYファンクション

このファンクションを使用して、インポートされるアプリケーションのプロキシ・サーバー属性を取得します。

構文

APEX_APPLICATION_INSTALL.GET_PROXY
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のプロキシ・サーバ属性の値を戻します。プロキシ・サーバ属性は255文字以下である必要があります。

declare
l_proxy varchar2(255);
begin
l_proxy := apex_application_install.get_proxy;
end;

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

GET_SCHEMAファンクション

このファンクションを使用して、Application Expressアプリケーションの解析スキーマ("owner")を取得します。

構文

APEX_APPLICATION_INSTALL.GET_SCHEMA
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーション・スキーマの値を戻します。

declare
l_schema varchar2(30);
begin
l_schema := apex_application_install.get_schema;
end;

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

GET_WORKSPACE_IDファンクション

このファンクションを使用して、インポートされるアプリケーションのワークスペースIDを取得します。

構文

APEX_APPLICATION_INSTALL.GET_WORKSPACE_ID
RETURN NUMBER;

パラメータ

なし。

例

次の例は、APEX_APPLICATION_INSTALLパッケージ内のワークスペースIDの値を戻します。

declare
l_workspace_id number;
begin
l_workspace_id := apex_application_install.get_workspace_id;
end;

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

SET_APPLICATION_ALIASプロシージャ

このプロシージャは、インポートされるアプリケーションのアプリケーション別名を設定します。これは、インポートされるアプリケーションに別名が指定されている場合にのみ使用します。アプリケーションの別名はワークスペースで一意である必要があります。また、インスタンスでも一意であることをお薦めします。

構文

APEX_APPLICATION_INSTALL.SET_APPLICATION_ALIAS(
p_application_alias IN VARCHAR2);

パラメータ

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

表2-2 SET_APPLICATION_ALIASのパラメータ

パラメータ

説明

p_application_alias

アプリケーションの別名。アプリケーションの別名は英数字の識別子です。255文字以下で、ワークスペース内で一意である必要があります(インスタンス全体で一意であることをお薦めします)。

例

このプロシージャ・コールの例については、「アプリケーションIDの指定によるアプリケーションのインポート」、「アプリケーションIDの生成によるアプリケーションのインポート」、「異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

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

SET_APPLICATION_IDプロシージャ

このプロシージャを使用して、インポートされるアプリケーションのアプリケーションIDを設定します。アプリケーションIDはインスタンス内に存在しないか、存在する場合はアプリケーションがインポートされるワークスペース内に存在する必要があります。この数値は、正の整数であり、Application ExpressアプリケーションIDの予約範囲内の値ではない必要があります。

構文

APEX_APPLICATION_INSTALL.SET_APPLICATION_ID (
p_application_id IN NUMBER);

パラメータ

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

表2-3 SET_APPLICATION_IDのパラメータ

パラメータ

説明

p_application_id

アプリケーションID。アプリケーションIDは正の整数であり、アプリケーションIDの予約範囲内(3000から8999まで)の値であることはできません。つまり、3000未満または9000以上である必要があります。

例

このプロシージャ・コールの例については、「アプリケーションIDの指定によるアプリケーションのインポート」を参照してください。

参照:
「SET_APPLICATION_IDプロシージャ」、「GENERATE_APPLICATION_IDプロシージャ」

SET_APPLICATION_NAMEプロシージャ

このプロシージャは、インポート・アプリケーションのアプリケーション名を設定します。

構文

APEX_APPLICATION_INSTALL.SET_APPLICATION_NAME;(
p_application_name  IN VARCHAR2);

パラメータ

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

表2-4 SET_APPLICATION_NAMEのパラメータ

パラメータ

説明

p_application_name

アプリケーション名。アプリケーション名にNULLまたは255文字より長い名前を指定できません。

例

次の例は、APEX_APPLICATION_INSTALLでアプリケーション名をExecutive Dashboardに設定します。

declare
l_name varchar2(255) := 'Executive Dashboard';
begin
apex_application_install.set_application_name( p_application_name => l_name );
end;

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

SET_AUTO_INSTALL_SUP_OBJプロシージャ

このプロシージャは、アプリケーションのインポート時に使用される、サポートするオブジェクトの自動インストール値を設定します。この設定は、コマンドライン・インストールの場合のみ有効です。この値をTRUEに設定すると、アプリケーションのエクスポートにサポートするオブジェクトが含まれる場合、コマンドラインからのアプリケーションのインポート時に、サポートするオブジェクトは自動的にインストールまたはアプグレードされます。

構文

APEX_APPLICATION_INSTALL.SET_AUTO_INSTALL_SUP_OBJ(
p_auto_install_sup_obj IN BOOLEAN);

パラメータ

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

表2-5 SET_AUTO_INSTALL_SUP_OBJのパラメータ

パラメータ

説明

p_auto_install_sup_obj

サポートするオブジェクトの自動インストール値(ブール)。

例

次の例は、サポートするオブジェクトの自動インストール設定を取得します。自動的にインストールするように設定されていない場合、trueに設定して、サポートするオブジェクトの自動インストールのエクスポート・ファイルの設定をオーバーライドします。

begin
apex_application_install.set_auto_install_sup_obj( p_auto_install_sup_obj => true );
end;

SET_IMAGE_PREFIXプロシージャ

このプロシージャは、インポート・アプリケーションのイメージ接頭辞を設定します。ほとんどのApplication Expressインスタンスはデフォルトのイメージ接頭辞/i/を使用します。

構文

APEX_APPLICATION_INSTALL.SET_IMAGE_PREFIX(
p_image_prefix  IN VARCHAR2);

パラメータ

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

表2-6 SET_AUTO_INSTALL_SUP_OBJのパラメータ

パラメータ

説明

p_auto_install_sup_obj

サポートするオブジェクトの自動インストール値(ブール)。

例

次の例は、APEX_APPLICATION_INSTALLでイメージ接頭辞変数の値を設定します。

declare
l_prefix varchar2(255) := '/i/';
begin
apex_application_install.set_image_prefix( p_image_prefix => l_prefix );
end;

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

SET_OFFSETプロシージャ

このプロシージャはアプリケーションのインポート中に使用されるオフセット値を設定します。このオフセット値は、Application Expressアプリケーション定義のメタデータがインスタンスの他のメタデータと競合しないようにするために使用します。新規アプリケーション・インストールの場合は、通常、generate_offsetプロシージャをコールしてApplication Expressでこのオフセット値を生成するだけで十分です。

構文

APEX_APPLICATION_INSTALL.SET_OFFSET(
p_offset IN NUMBER);

パラメータ

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

表2-7 SET_OFFSETのパラメータ

パラメータ

説明

p_offset

オフセット値。オフセットは正の整数である必要があります。ほとんどの場合は、オフセットを指定する必要はなく、かわりにAPEX_APPLICATION_INSTALL.GENERATE_OFFSETをコールします。これによって、大きなランダム値が生成され、APEX_APPLICATION_INSTALLパッケージで設定されます。

例

次の例は、データベースから乱数を生成し、この乱数をAPEX_APPLICATION_INSTALLでオフセット値として使用します。.

declare
l_offset number;
begin
l_offset := dbms_random.value(100000000000, 999999999999);
apex_application_install.set_offset( p_offset => l_offset );
end/

参照:
「GET_OFFSETファンクション」、「GENERATE_OFFSETプロシージャ」

SET_PROXYプロシージャ

このプロシージャを使用して、インポートされるアプリケーションのプロキシ・サーバー属性を設定します。

構文

APEX_APPLICATION_INSTALL.SET_PROXY (
p_proxy IN VARCHAR2);

パラメータ

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

表2-8 SET_PROXYのパラメータ

パラメータ

説明

p_proxy

プロキシ・サーバー。デフォルト値はありません。プロキシ・サーバーは255文字以下である必要があります。http://などのプロトコル接頭辞を含める必要はありません。たとえば、www-proxy.company.comのようにします。

例

次の例は、APEX_APPLICATION_INSTALLでプロキシ変数の値を設定します。

declare
l_proxy varchar2(255) := 'www-proxy.company.com'
begin
apex_application_install.set_proxy( p_proxy => l_proxy );
end;

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

SET_SCHEMAプロシージャ

このファンクションを使用して、Application Expressアプリケーションの解析スキーマ("owner")を設定します。このスキーマのデータベース・ユーザーがすでに存在する必要があり、また、アプリケーションのインポートに使用するワークスペースに、このスキーマ名がすでにマップされている必要があります。

構文

APEX_APPLICATION_INSTALL.SET_SCHEMA (
p_schema  IN VARCHAR2);

パラメータ

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

表2-9 SET_SCHEMAのパラメータ

パラメータ

説明

p_schema

スキーマ名。

例

このプロシージャ・コールの例については、「異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

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

SET_WORKSPACE_IDプロシージャ

このファンクションを使用して、インポートされるアプリケーションのワークスペースIDを設定します。

構文

APEX_APPLICATION_INSTALL.SET_WORKSPACE_ID (
p_workspace_id  IN NUMBER);

パラメータ

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

表2-10 SET_WORKSPACE_IDのパラメータ

パラメータ

説明

p_workspace_id

ワークスペースID。

例

このプロシージャ・コールの例については、「異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

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

3 APEX_AUTHENTICATION

APEX_AUTHENTICATIONパッケージには、認証プラグインのための公開APIが用意されています。

- 定数

- CALLBACKプロシージャ

- GET_CALLBACK_URLファンクション

- GET_LOGIN_USERNAME_COOKIEファンクション

- IS_AUTHENTICATEDファンクション

- IS_PUBLIC_USERファンクション

- LOGINプロシージャ

- LOGOUTプロシージャ

- POST_LOGINプロシージャ

- SEND_LOGIN_USERNAME_COOKIEプロシージャ

定数

このパッケージでは、次の定数が使用されます。

c_default_username_cookie constant varchar2(30) := 'LOGIN_USERNAME_COOKIE';

CALLBACKプロシージャ

このプロシージャは、外部ログイン・ページのランディング・リソースです。このプロシージャのコールは、ブラウザから直接行います。

構文

APEX_AUTHENTICATION.CALLBACK (
p_session_id IN NUMBER,
p_app_id IN NUMBER,
p_ajax_identifier IN VARCHAR2,
p_x01 IN VARCHAR2 DEFAULT NULL,
p_x02 IN VARCHAR2 DEFAULT NULL,
p_x03 IN VARCHAR2 DEFAULT NULL,
p_x04 IN VARCHAR2 DEFAULT NULL,
p_x05 IN VARCHAR2 DEFAULT NULL,
p_x06 IN VARCHAR2 DEFAULT NULL,
p_x07 IN VARCHAR2 DEFAULT NULL,
p_x08 IN VARCHAR2 DEFAULT NULL,
p_x09 IN VARCHAR2 DEFAULT NULL,
p_x10 IN VARCHAR2 DEFAULT NULL );

パラメータ

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

表3-1 APEX_AUTHENTICATION.CALLBACKプロシージャのパラメータ

パラメータ

説明

p_session_id

Application Expressセッション識別子。

p_app_id

データベース・アプリケーション識別子。

p_ajax_identifierp

システム生成のAjax識別子。「GET_AJAX_IDENTIFIERファンクション」を参照してください。

p_x01からp_x10

外部ログインによって認証プラグインに渡されるオプション・パラメータ。

例1

この例では、外部ログイン・ページにリダイレクトが行われ、認証の成功時に外部ログインのリダイレクト先となるApplication Expressにコールバックが渡されます。

declare
l_callback varchar2(4000) := apex_application.get_callback_url;
begin
sys.owa_util.redirect_url(
'https://single-signon.example.com/my_custom_sso.login?p_on_success='||
sys.utl_url.escape (
url => l_callback,
escape_reserved_chars => true );
apex_application.stop_apex_engine;
end;

例2

この例では、外部ログイン・ページの共有表にユーザー・データを保存し、データへのハンドルを使用してコールバックを実行します。Application Expressでは、コールバックによって認証プラグインのAJAXコードがアクティブ化されます。これは、値x01を取ることができ、共有表から実際のユーザー・データをフェッチできます。

---- create or replace package body my_custom_sso as
procedure login (
p_on_success in varchar2 )
is
l_login_id varchar2(32);
begin
l_login_id := rawtohex(sys.dbms_crypto.random(32));
insert into login_data(id, username) values (l_login_id, 'JOE USER');
sys.owa_util.redirect_url (
p_on_success||'&p_x01='||l_login_id );
end;
---- end my_custom_sso;

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

GET_CALLBACK_URLファンクション

このファンクションは、外部ログイン・ページのランディング・リクエストとして使用されるURLを戻すプラグイン・ヘルパー・ファンクションです。ブラウザによってリクエストが送信されると、認証プラグインのAJAXコールバックがトリガーされ、ユーザーはこれを使用してログインできます。

構文

APEX_AUTHENTICATION.GET_CALLBACK_URL (
p_x01 IN VARCHAR2 DEFAULT NULL,
p_x02 IN VARCHAR2 DEFAULT NULL,
p_x03 IN VARCHAR2 DEFAULT NULL,
p_x04 IN VARCHAR2 DEFAULT NULL,
p_x05 IN VARCHAR2 DEFAULT NULL,
p_x06 IN VARCHAR2 DEFAULT NULL,
p_x07 IN VARCHAR2 DEFAULT NULL,
p_x08 IN VARCHAR2 DEFAULT NULL,
p_x09 IN VARCHAR2 DEFAULT NULL,
p_x10 IN VARCHAR2 DEFAULT NULL )
return VARCHAR2;

パラメータ

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

表3-2 APEX_AUTHENTICATION.GET_CALLBACK _URLファンクションのパラメータ

パラメータ

説明

p_x01からp_x10

外部ログインによって認証プラグインに渡されるオプション・パラメータ。

例

「CALLBACKプロシージャ」の例を参照してください。

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

GET_LOGIN_USERNAME_COOKIEファンクション

このファンクションは、デフォルトのログイン・ページから、ユーザー名に使用されるCookieを読み取ります。

構文

APEX_AUTHENTICATION.GET_LOGIN_USERNAME_COOKIE (
p_cookie_name IN VARCHAR2 DEFAULT c_default_username_cookie )
return varchar2;

パラメータ

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

表3-3 APEX_AUTHENTICATION.GET_LOGIN_USERNAME_COOKIEファンクションのパラメータ

パラメータ

説明

p_cookie_name

ブラウザにユーザー名を保存するためのCookie名。

例

この例では、GET_LOGIN_USERNAME_COOKIEによって、ユーザー名のCookieの値をページ・アイテムP101_USERNAMEに保存します。

:P101_USERNAME := apex_authentication.get_login_username_cookie;

IS_AUTHENTICATEDファンクション

このファンクションは、セッションでユーザーが認証されているかどうかをチェックし、ユーザーがログイン済である場合はTRUEを、カレント・セッションのユーザーが未認証である場合はFALSEを戻します。

構文

APEX_AUTHENTICATION.IS_AUTHENTICATED
RETURN BOOLEAN;

パラメータ

なし。

例

この例では、IS_AUTHENTICATEDを使用して、ユーザーがログイン済である場合はユーザー名を、ログインしていない場合は通知を生成します。

if apex_authentication.is_authenticated then
sys.htp.p(apex_escape.html(:APP_USER)||', you are known to the system');
else
sys.htp.p('Please sign in');
end if;

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

IS_PUBLIC_USERファンクション

このファンクションは、ユーザーがセッションで承認されていないかどうかをチェックします。ユーザーがログイン済である場合はFALSEを、カレント・セッションのユーザーが未承認である場合はTRUEを戻します。

構文

APEX_AUTHENTICATION.IS_PUBLIC_USER
return BOLLEAN;

パラメータ

なし。

例

この例では、IS_PUBLIC_USERを使用して、ユーザーがログインしていない場合は通知を、ログイン済である場合はユーザー名を表示します。

if apex_authentication.is_public_user then
sys.htp.p('Please sign in');
else
sys.htp.p(apex_escape.html(:APP_USER)||', you are known to the system');
end if;

LOGINプロシージャ

このプロシージャは、カレント・セッションのユーザーを認証します。

ログイン・プロセスの手順は、次のとおりです。

1. 認証スキームの認証前プロシージャを実行します。

2. 認証スキームの認証ファンクションを実行して、ユーザー資格証明(p_username、p_password)をチェックし、成功した場合はTRUEを戻します。

3. 結果がTRUEの場合は、認証後の処理を実行します。

4. 結果がTRUEの場合は、セッション表にユーザー名を保存します。

5. 結果がTRUEの場合は、ディープ・リンクにリダイレクトURLを設定します。

6. 結果がFALSEの場合は、カレント・ページにリダイレクトURLを設定し、notification_msgパラメータにエラー・メッセージを含めます。

7. 認証結果を記録します。

8. リダイレクトします。

構文

APEX_AUTHENTICATION.LOGIN (
p_username IN VARCHAR2,
p_password IN VARCHAR2,
p_uppercase_username IN BOOLEAN DEFAULT TRUE );

パラメータ

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

表3-4 APEX_AUTHENTICATION.LOGINプロシージャのパラメータ

パラメータ

説明

p_username

ユーザーの名前。

p_password

ユーザーのパスワード。

p_uppercase_username

TRUEの場合、p_usernameは大文字に変換されます。

例

この例では、認証スキームにユーザー資格証明、ユーザー名およびパスワードを渡します。

apex_authentication.login('JOE USER', 'mysecret');

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

LOGOUTプロシージャ

このプロシージャは、セッションを終了し、アプリケーションのホームページにリダイレクトします。このプロシージャのコールは、ブラウザから直接行います。

構文

APEX_AUTHENTICATION.LOGOUT (
p_session_id in number,
p_app_id in number,
p_ws_app_id in number default null );

パラメータ

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

表3-5 APEX_AUTHENTICATION.LOGOUTプロシージャのパラメータ

パラメータ

説明

p_session_id

終了するセッションのApplication Expressセッション識別子。

p_app_id

データベース・アプリケーション識別子。

p_ws_app_id

Webシート・アプリケーション識別子。

例

この例では、セッションの終了を記録します。

apex_authentication.logout(:SESSION, :APP_ID);

POST_LOGINプロシージャ

このプロシージャは、カレント・セッションのユーザーを認証します。これによって、手順1および2を除く、login()の一部が実行されます。手順は、「LOGINプロシージャ」を参照してください。これは主に、ユーザー資格証明のチェックがApplication Expressの外部で行われる認証スキームで役立ちます。

構文

APEX_AUTHENTICATION.POST_LOGIN (
p_username IN VARCHAR2,
p_password IN VARCHAR2,
p_uppercase_username IN BOOLEAN DEFAULT TRUE );

パラメータ

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

表3-6 APEX_AUTHENTICATION.POST_LOGINプロシージャのパラメータ

パラメータ

説明

p_username

ユーザーの名前。

p_password

ユーザーのパスワード。

p_uppercase_username

TRUEの場合、p_usernameは大文字に変換されます。

例

このプロシージャ・コールは、認証スキームにユーザー資格証明、ユーザー名およびパスワードを渡し、ユーザーの認証を完了します。

apex_authentication.post_login('JOE USER', 'mysecret');

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

SEND_LOGIN_USERNAME_COOKIEプロシージャ

このプロシージャは、ユーザー名に使用されるCookieを送信します。

構文

APEX_AUTHENTICATION.SEND_LOGIN_USERNAME_COOKIE (
p_username IN VARCHAR2,
p_cookie_name IN VARCHAR2 DEFAULT c_default_username_cookie );

パラメータ

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

表3-7 APEX_AUTHENTICATION.SEND_LOGIN_USERNAME_COOKIEプロシージャのパラメータ

パラメータ

説明

p_username

ユーザーの名前。

p_cookie_name

ブラウザにp_usernameを保存するためのCookie名。

例

次の例に、SEND_LOGIN_USERNAME_COOKIEをコールして、アイテムの値P101_USERNAMEをログインCookieに保存する方法を示します。

apex_authentication.send_login_username_cookie (
p_username => :P101_USERNAME );

4 APEX_AUTHORIZATION

APEX_AUTHORIZATIONパッケージには、アプリケーションへのアクセス権の制御および問合せに使用されるパブリック・ユーティリティ・ファンクションが格納されています。

- ENABLE_DYNAMIC_GROUPSプロシージャ

- IS_AUTHORIZEDファンクション

- RESET_CACHEプロシージャ

ENABLE_DYNAMIC_GROUPSプロシージャ

このプロシージャは、現在のセッションでグループを有効にします。これらのグループは、Application Expressワークスペース・リポジトリで作成する必要はありませんが、たとえば、LDAPリポジトリからロードできます。ワークスペース・リポジトリに存在し、他のグループの付与先となっているグループを有効にすると、付与されたグループも有効になります。

Real Application Security (Oracle Database Release 12gで使用可能)が認証スキームに対して有効になっている場合、すべての動的グループがRAS動的グループまたは外部グループ(グループがdba_xs_dynamic_rolesに存在するかどうかに応じて)として有効です。

このプロシージャは、認証後プロシージャなどで、認証時または認証直後にコールする必要があります。

構文

APEX_AUTHORIZATION.ENABLE_DYNAMIC_GROUPS (
p_group_names IN apex_t_varchar2 );

パラメータ

表4-1 ENABLE_DYNAMIC_GROUPSプロシージャのパラメータ

パラメータ

説明

p_group_names

グループ名の表。

例

この例では、認証後プロシージャなどから、動的グループSALESおよびHRを有効にします。

begin
apex_authorization.enable_dynamic_groups (
p_group_names => apex_t_varchar2('SALES', 'HR') );
end;

参照:
APEX_WORKSPACE_SESSION_GROUPSおよびAPEX_WORKSPACE_GROUP_GROUPSを確認してください

IS_AUTHORIZEDファンクション

現在のユーザーがp_authorization_nameという名前の認可を通過するかどうかを判断します。パフォーマンス上の理由で、認可の結果はキャッシュされます。そのため、ファンクションはコール時に必ず認可を評価するとは限らず、キャッシュから結果を取得することがあります。

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の評価ポイント属性の変更に関する項

構文

APEX_AUTHORIZATION.IS_AUTHORIZED (
p_authorization_name IN VARCHAR2 )
RETURN BOOLEAN;

パラメータ

表4-2 IS_AUTHORIZEDファンクションのパラメータ

パラメータ

説明

p_authorization_name

アプリケーションの認可スキームの名前。

戻り値

表4-3 IS_AUTHORIZEDファンクションの戻り値

パラメータ

説明

TRUE

認可に成功した場合。

FALSE

認可に失敗した場合。

例

この例では、"User Is Admin"という認可の結果を出力します。

begin
sys.htp.p('User Is Admin: '||
case apex_authorization.is_authorized (
p_authorization_name => 'User Is Admin' )
when true then 'YES'
when false then 'NO'
else 'null'
end);
end;

RESET_CACHEプロシージャ

このプロシージャは、セッションの認可のキャッシュをリセットし、認可の次回チェック時に再評価を強制します。

構文

APEX_AUTHORIZATION.RESET_CACHE;

パラメータ

なし。

例

この例では、認可のキャッシュをリセットします。

apex_authorization.reset_cache;

5 APEX_COLLECTION

コレクションを使用すると、1つ以上の非スカラー値を一時的に取得できます。コレクションを使用して、現在セッション・ステートにある行および列を格納します。これによって、あるユーザーの特定のセッション中にそれらの行および列に対してアクセス、操作または処理を行うことができます。コレクションは、バケツのようなものと考えることができます。その中に情報の行を一時的に格納し、その情報を指定できます。

- APEX_COLLECTION APIについて

- コレクションのネーミング

- コレクションの作成

- パラメータp_generate_md5について

- コレクションへのアクセス

- コレクションのマージ

- コレクションの切捨て

- コレクションの削除

- 現在のアプリケーションに関するすべてのコレクションの削除

- 現在のセッションにおけるすべてのコレクションの削除

- コレクションへのメンバーの追加

- パラメータp_generate_md5、p_clob001、p_blob001およびp_xmltype001について

- コレクション・メンバーの更新

- コレクション・メンバーの削除

- メンバー数の取得

- コレクションの再順序付け

- コレクションの存在の確認

- メンバーの順序番号の調整

- コレクション・メンバーのソート

- コレクションのセッション・ステートのクリア

- コレクション・ステータスの判別

- ADD_MEMBERプロシージャ

- ADD_MEMBERファンクション

- ADD_MEMBERSプロシージャ

- COLLECTION_EXISTSファンクション

- COLLECTION_HAS_CHANGEDファンクション

- COLLECTION_MEMBER_COUNTファンクション

- CREATE_COLLECTIONプロシージャ

- CREATE_OR_TRUNCATE_COLLECTIONプロシージャ

- CREATE_COLLECTION_FROM_QUERYプロシージャ

- CREATE_COLLECTION_FROM_QUERY2プロシージャ

- CREATE_COLLECTION_FROM_QUERY_Bプロシージャ

- CREATE_COLLECTION_FROM_QUERYB2プロシージャ

- DELETE_ALL_COLLECTIONSプロシージャ

- DELETE_ALL_COLLECTIONS_SESSIONプロシージャ

- DELETE_COLLECTIONプロシージャ

- DELETE_MEMBERプロシージャ

- DELETE_MEMBERSプロシージャ

- GET_MEMBER_MD5ファンクション

- MERGE_MEMBERSプロシージャ

- MOVE_MEMBER_DOWNプロシージャ

- MOVE_MEMBER_UPプロシージャ

- RESEQUENCE_COLLECTIONプロシージャ

- RESET_COLLECTION_CHANGEDプロシージャ

- RESET_COLLECTION_CHANGED_ALLプロシージャ

- SORT_MEMBERSプロシージャ

- TRUNCATE_COLLECTIONプロシージャ

- UPDATE_MEMBERプロシージャ

- UPDATE_MEMBERSプロシージャ

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5

- UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6

APEX_COLLECTION APIについて

各コレクションには、データ要素(メンバー)の名前付きリストが含まれます。このリストには、最大50個の文字属性(VARCHAR2(4000))、5個の数値属性、5個の日付属性、1個のXMLタイプ属性、1個のラージ・バイナリ属性(BLOB)および1個のラージ・キャラクタ属性(CLOB)を含めることができます。PL/SQL API APEX_COLLECTIONを使用して、コレクション情報を挿入、更新および削除します。

次に、コレクションを使用する場合の例を示します。

- データ入力ウィザードを作成しており、そのウィザードで、まず論理トランザクション中に複数行の情報を収集する必要がある場合。物理トランザクションと論理トランザクションの両方の完了時、ウィザードの最終ステップを実行する前に、コレクションを使用して、複数行の情報のコンテンツを一時的に格納できます。

- アプリケーションに、ユーザーが1つのページで複数の詳細行を更新する更新ページが含まれている場合。ユーザーは、複数の更新を行い、それらの更新をコレクションに適用した後、最終プロセスをコールしてそれらの変更をデータベースに適用できます。

- 任意の数の属性を収集するウィザードを構築している場合。コレクションに一時的に格納された情報が取得され、データベースに適用されるタスクをウィザードの最後にユーザーが実行するようにします。

Oracle Database 12cから、データ型VARCHAR2のデータベース列は32,767バイトまで定義できます。これには、データベース初期化パラメータMAX_STRING_SIZEにEXTENDEDの値があることが必要です。Application ExpressがOracle Database 12cにインストールされ、MAX_STRING_SIZE = EXTENDEDの場合、Application Expressコレクションの表は、コレクションの文字属性について32,767バイトまでサポートするように定義されます。APEX_COLLECTION APIのメソッドでは、文字属性へのすべての参照(c001からc050)は32,767バイトまでサポート可能です。

コレクションのネーミング

コレクションを作成する場合、255文字以下の名前を付ける必要があります。コレクション名の大/小文字は区別されず、すべて大文字に変換されます。

コレクションに名前を付けた後、コレクション内の値にアクセスするには、APEX_COLLECTIONSビューに対してSQL問合せを実行します。

参照:
「コレクションへのアクセス」、「CREATE_COLLECTIONプロシージャのパラメータ」、「CREATE_OR_TRUNCATE_COLLECTIONプロシージャのパラメータ」

コレクションの作成

各コレクションには、データ要素(メンバー)の名前付きリストが含まれます。このリストには、最大50個の文字属性(VARCHAR2(4000))、5個の数値属性、1個のXMLタイプ属性、1個のラージ・バイナリ属性(BLOB)および1個のラージ・キャラクタ属性(CLOB)を含めることができます。次のメソッドを使用してコレクションを作成します。

- CREATE_COLLECTION
このメソッドは、指定された名前で空のコレクションを作成します。名前付きコレクションが存在すると、例外が発生します。

- CREATE_OR_TRUNCATE_COLLECTION
このメソッドは、指定された名前付きコレクションが存在しないと、指定された名前で空のコレクションを作成します。名前付きコレクションが存在すると、このメソッドによって切り捨てられます。コレクションは切り捨てられることによって空になりますが、そのまま残ります。

- CREATE_COLLECTION_FROM_QUERY
このメソッドは、コレクションを作成してから、指定された問合せの結果を移入します。名前付きコレクションが存在すると、例外が発生します。このメソッドは、SELECT句に最大50個の列を指定した問合せで使用できます。SELECT句内のこれらの列は、コレクションの50個の文字属性(C001からC050)に移入されます。

- CREATE_COLLECTION_FOM_QUERY2
このメソッドは、コレクションを作成してから、指定された問合せの結果を移入します。名前付きコレクションが存在すると、例外が発生します。このメソッドは、CREATE_COLLECTION_FROM_QUERYと同じですが、SELECT句の最初の5列は数値である必要があります。数値データ型の列に続いて、最大50個の文字データ型の列をSELECTに指定できます。

- CREATE_COLLECTION_FROM_QUERY_B
このメソッドでは、バルクSQL操作を実行することにより、CREATE_COLLECTION_FROM_QUERYメソッドよりも非常に速いパフォーマンスが提供されますが、次の制限があります。

- 問合せの選択リスト内の列値は、2,000バイトを超えることはできません。列値が2,000バイトを超える行がある場合は、実行中にエラーが発生します。

- コレクション内のいずれのメンバーに対してもMD5チェックサムは計算されません。

- CREATE_COLLECTION_FROM_QUERYB2
このメソッドも、コレクションを作成してから、指定された問合せの結果を移入します。名前付きコレクションが存在すると、例外が発生します。このメソッドは、CREATE_COLLECTION_FROM_QUERY_Bと同じですが、SELECT句の最初の5列は数値である必要があります。数値データ型の列に続いて、最大50個の文字データ型の列をSELECTに指定できます。

参照:
「CREATE_COLLECTIONプロシージャ」、「CREATE_OR_TRUNCATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERYプロシージャ」、「CREATE_COLLECTION_FROM_QUERY2プロシージャ」、「CREATE_COLLECTION_FROM_QUERY_Bプロシージャ」、「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」

パラメータp_generate_md5

p_generate_md5フラグを使用して、コレクション・メンバーのデータのメッセージ・ダイジェストを計算する必要があるかどうかを指定します。デフォルトでは、このフラグはNOに設定されています。このパラメータを使用して、コレクション・メンバーのMD5をチェックします(つまり、MD5を他のメンバーと比較して、メンバーが変更されたかどうかを確認します)。

参照:
ファンクションGET_MEMBER_MD5の使用方法については、「コレクション・ステータスの判別」および「GET_MEMBER_MD5ファンクション」を参照してください。

コレクションへのアクセス

データベース・ビューAPEX_COLLECTIONSを問い合せると、コレクションのメンバーにアクセスできます。コレクション名は常に大文字に変換されます。APEX_COLLECTIONSビューを問い合せる際、必ずコレクション名をすべて大文字で指定します。APEX_COLLECTIONSビューには、次の定義が含まれます。

COLLECTION_NAME   NOT NULL VARCHAR2(255)
SEQ_ID            NOT NULL NUMBER
C001              VARCHAR2(4000)
C002              VARCHAR2(4000)
C003              VARCHAR2(4000)
C004              VARCHAR2(4000)
C005              VARCHAR2(4000)
...
C050              VARCHAR2(4000)
N001              NUMBER
N002              NUMBER
N003              NUMBER
N004              NUMBER
N005              NUMBER
CLOB001           CLOB
BLOB001           BLOB
XMLTYPE001        XMLTYPE
MD5_ORIGINAL      VARCHAR2(4000)

APEX_COLLECTIONSビューは、アプリケーションで、アプリケーション内の他の表またはビューと同様に使用します。次に例を示します。

SELECT c001, c002, c003, n001, clob001
FROM APEX_collections
WHERE collection_name = 'DEPARTMENTS'

コレクションのマージ

コレクションのメンバーを、配列の集合として渡した値とマージできます。p_init_query引数を使用することで、指定した問合せからコレクションを作成できます。

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

コレクションの切捨て

コレクションを切り捨てると、指定したコレクションからすべてのメンバーが削除されますが、名前付きコレクションはそのまま残ります。

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

コレクションの削除

コレクションを削除すると、コレクションとそのすべてのメンバーが削除されます。自分でコレクションを削除しなくても、セッションの消去時にコレクションが削除されることに注意してください。

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

現在のアプリケーションに関するすべてのコレクションの削除

現在のアプリケーションに定義されたすべてのコレクションを削除するには、DELETE_ALL_COLLECTIONSメソッドを使用します。

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

現在のセッションにおけるすべてのコレクションの削除

現在のセッションに定義されたすべてのコレクションを削除するには、DELETE_ALL_COLLECTIONS_SESSIONメソッドを使用します。

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

コレクションへのメンバーの追加

コレクションに追加したデータ要素(メンバー)には、一意の順序番号が割り当てられます。メンバーをコレクションに追加すると、最も新しいメンバーが一番大きい番号を持つように、前のメンバーより1大きい番号が新しいメンバーに割り当てられます。

コレクションに新しいメンバーを追加するには、ADD_MEMBERファンクションを使用します。このファンクションをコールすると、新しく追加したメンバーの順序番号が戻されます。

ADD_MEMBERSプロシージャを使用して、新しいメンバー(メンバーの配列)をコレクションに追加することもできます。追加されるメンバーの数は、1つ目の配列の要素数に基づきます。

参照:
「ADD_MEMBERプロシージャ」、「ADD_MEMBERファンクション」、「ADD_MEMBERSプロシージャ」

パラメータp_generate_md5、p_clob001、p_blob001およびp_xmltype001について

p_generate_md5フラグを使用して、コレクション・メンバーのデータのメッセージ・ダイジェストを計算する必要があるかどうかを指定します。デフォルトでは、このフラグはNOに設定されています。このパラメータを使用して、コレクション・メンバーのMD5をチェックします(つまり、MD5を他のメンバーと比較して、メンバーが変更されたかどうかを確認します)。

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。バイナリ・コレクション・メンバー属性には、p_blob001を使用します。整形式XMLを格納するには、p_xmltype001を使用します。

参照:
ファンクションGET_MEMBER_MD5の使用方法については、「コレクション・ステータスの判別」を参照してください。

コレクション・メンバーの更新

コレクション・メンバーを更新するには、UPDATE_MEMBERプロシージャをコールして、更新するコレクション・メンバーを順序番号を使用して参照します。UPDATE_MEMBERプロシージャでは、個々のメンバー属性ではなく、コレクション・メンバー全体が置換されます。

4,000文字を超えるコレクション・メンバー属性には、p_clob001パラメータを使用します。

コレクション・メンバーの単一の属性を更新するには、UPDATE_MEMBER_ATTRIBUTEプロシージャを使用します。

参照:
「UPDATE_MEMBERプロシージャ」、「UPDATE_MEMBERSプロシージャ」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」

コレクション・メンバーの削除

コレクション・メンバーを削除するには、DELETE_MEMBERプロシージャをコールして、削除するコレクション・メンバーを順序番号を使用して参照します。このプロシージャでは、順序番号の欠落は指定したコレクションにそのまま残ることに注意してください。

また、属性が特定の値と一致するという条件で、コレクションからすべてのメンバーを削除することもできます。DELETE_MEMBERSプロシージャでも、順序番号の欠落は指定したコレクションにそのまま残ります。指定した属性値がnullの場合、名前付きコレクションのメンバーのうち、属性(p_attr_numberで指定)がnullであるすべてのメンバーが削除されます。

参照:
「DELETE_MEMBERプロシージャ」、「DELETE_MEMBERSプロシージャ」

メンバー数の取得

コレクション内のすべてのメンバーの合計数を戻すには、COLLECTION_MEMBER_COUNTを使用します。この数は、コレクション内の順序番号の最大値ではないことに注意してください。

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

コレクションの再順序付け

要素の順序を保持したままで、コレクションを再順序付けして順序番号の欠落を排除するには、RESEQUENCE_COLLECTIONを使用します。

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

コレクションの存在の確認

コレクションが存在するかどうかを確認するには、COLLECTION_EXISTSを使用します。

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

メンバーの順序番号の調整

順序番号を上下に移動することで、コレクション内の特定のメンバーの順序番号を調整できます。順序番号を調整すると、指定した番号が別の番号と入れ替えられます。たとえば、番号2を1つ上に移動すると、2が3になり、3が2になります。

メンバーの順序番号を1つ上に移動するには、MOVE_MEMBER_UPを使用します。メンバーの順序番号を1つ下に移動するには、MOVE_MEMBER_DOWNを使用します。

参照:
「MOVE_MEMBER_DOWNプロシージャ」、「MOVE_MEMBER_UPプロシージャ」

コレクション・メンバーのソート

コレクションのメンバーを列番号で並べ替えるには、SORT_MEMBERSメソッドを使用します。このメソッドは、特定の列番号でコレクションをソートし、各メンバーの順序番号の欠落を排除するように順序番号の再割当ても行います。

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

コレクションのセッション・ステートのクリア

コレクションのセッション・ステートをクリアすると、コレクションのメンバーを削除できます。ショッピング・カートは、コレクションのセッション・ステートをクリアする必要がある場合のよい例です。ユーザーがショッピング・カートを空にして再度開始するよう要求した場合に、コレクションのセッション・ステートをクリアする必要があります。TRUNCATE_COLLECTIONメソッドをコールするか、f?p構文を使用して、コレクションのセッション・ステートを削除できます。

TRUNCATE_COLLECTIONメソッドをコールすると、既存のコレクションが削除され、そのコレクションが再作成されます。次に例を示します。

APEX_COLLECTION.TRUNCATE_COLLECTION(
p_collection_name => collection name);

f?p構文の6つ目の引数を使用してセッション・ステートをクリアすることもできます。次に例を示します。

f?p=App:Page:Session::NO:collection name

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

コレクション・ステータスの判別

p_generate_md5パラメータは、コレクションの各メンバーに対してMD5メッセージ・ダイジェストを計算するかどうかを判別します。コレクションの作成直後、コレクション・ステータス・フラグはFALSEに設定されます。コレクションに対して操作(追加、更新、切捨てなど)が行われると、このフラグはTRUEに設定されます。

このフラグは、RESET_COLLECTION_CHANGEDをコールすることで、手動でリセットできます。

このフラグをリセットした後にコレクションが変更されたかどうかを判別するには、COLLECTION_HAS_CHANGEDをコールします。

p_generated_md5パラメータがYESに設定されている場合、コレクションに新しいメンバーを追加すると、50個のすべての属性とCLOB属性に対してMD5メッセージ・ダイジェストが計算されます。この値にはAPEX_COLLECTIONビューのMD5_ORIGINAL列からアクセスできます。GET_MEMBER_MD5ファンクションを使用して、指定したコレクション・メンバーの現在の値に対するMD5メッセージ・ダイジェストにアクセスできます。

参照:
「RESET_COLLECTION_CHANGEDプロシージャ」、「COLLECTION_HAS_CHANGEDファンクション」、「GET_MEMBER_MD5ファンクション」

ADD_MEMBERプロシージャ

このプロシージャを使用して、既存のコレクションに新しいメンバーを追加します。指定されたコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在しないと、エラーが発生します。新しいメンバーの追加では、欠落したものは使用されないため、メンバーの順序番号が1,2,5,8である既存のコレクションの場合、新しいメンバーは順序番号9として追加されます。

構文

APEX_COLLECTION.ADD_MEMBER (
p_collection_name IN VARCHAR2,
p_c001 IN VARCHAR2 default null,
...
p_c050 IN VARCHAR2 default null,
p_n001 IN NUMBER default null,
p_n002 IN NUMBER default null,
p_n003 IN NUMBER default null,
p_n004 IN NUMBER default null,
p_n005 IN NUMBER default null,
p_d001 IN DATE default null,
p_d002 IN DATE default null,
p_d003 IN DATE default null,
p_d004 IN DATE default null,
p_d005 IN DATE default null,
p_clob001 IN CLOB default empty_clob(),
p_blob001 IN BLOB default empty_blob(),
p_xmltype001 IN XMLTYPE default null,
p_generate_md5 IN VARCHAR2  default 'NO');

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。

表5-1 ADD_MEMBERプロシージャのパラメータ

パラメータ

説明

p_collection_name

既存のコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加するメンバーの属性値。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。

p_n001からp_n005

追加する数値属性の属性値。

p_d001からp_d005

日付属性の属性値。

p_clob001

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

p_blob001

バイナリ・コレクション・メンバー属性には、p_blob001を使用します。

p_xmltype001

整形式XMLを格納するには、p_xmltype001を使用します。

p_generate_md5

有効な値にはYESとNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。

例

ADD_MEMBERプロシージャの例を次に示します。

APEX_COLLECTION.ADD_MEMBER(
p_collection_name => 'GROCERIES'
p_c001            => 'Grapes',
p_c002            => 'Imported',
p_n001            => 125,
p_d001            => sysdate );
END;

参照:
「GET_MEMBER_MD5ファンクション」、「ADD_MEMBERファンクション」、「ADD_MEMBERSプロシージャ」

ADD_MEMBERファンクション

このファンクションを使用して、既存のコレクションに新しいメンバーを追加します。このファンクションをコールすると、新しく追加したメンバーの順序番号が戻されます。指定されたコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在しないと、エラーが発生します。新しいメンバーの追加では、欠落したものは使用されないため、メンバーの順序番号が1,2,5,8である既存のコレクションの場合、新しいメンバーは順序番号9として追加されます。

構文

APEX_COLLECTION.ADD_MEMBER (
p_collection_name IN VARCHAR2,
p_c001 IN VARCHAR2 default null,
...
p_c050 IN VARCHAR2 default null,
p_n001 IN NUMBER default null,
p_n002 IN NUMBER default null,
p_n003 IN NUMBER default null,
p_n004 IN NUMBER default null,
p_n005 IN NUMBER default null,
p_d001 IN DATE default null,
p_d002 IN DATE default null,
p_d003 IN DATE default null,
p_d004 IN DATE default null,
p_d005 IN DATE default null,
p_clob001 IN CLOB default empty_clob(),
p_blob001 IN BLOB default empty_blob(),
p_xmltype001 IN XMLTYPE default null,
p_generate_md5 IN VARCHAR2 default 'NO')
RETURN NUMBER;

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。

表5-2 ADD_MEMBERファンクションのパラメータ

パラメータ

説明

p_collection_name

既存のコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加するメンバーの属性値。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。

p_n001からp_n005

追加する数値属性の属性値。

p_d001からp_d005

追加する日付属性の属性値。

p_clob001

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

p_blob001

バイナリ・コレクション・メンバー属性には、p_blob001を使用します。

p_xmltype001

整形式XMLを格納するには、p_xmltype001を使用します。

p_generate_md5

有効な値にはYESとNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。

例

DECLARE
l_seq number;
BEGIN
l_seq := APEX_COLLECTION.ADD_MEMBER(
p_collection_name => 'GROCERIES'
p_c001            => 'Grapes',
p_c002            => 'Imported',
p_n001            => 125,
p_d001            => sysdate );
END;

参照:
「GET_MEMBER_MD5ファンクション」、「ADD_MEMBERプロシージャ」、「ADD_MEMBERSプロシージャ」

ADD_MEMBERSプロシージャ

このプロシージャを使用して、コレクションにメンバーの配列を追加します。指定されたコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在しないと、エラーが発生します。新しいメンバーの追加では、欠落したものは使用されないため、メンバーの順序番号が1,2,5,8である既存のコレクションの場合、新しいメンバーは順序番号9として追加されます。p_c001 PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。たとえば、p_c001.countが2で、p_c002.countが10の場合、2つのメンバーのみが追加されます。p_c001がnullの場合は、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.ADD_MEMBERS (
p_collection_name IN VARCHAR2,
p_c001 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
p_c002 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
p_c003 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
...
p_c050 IN APEX_APPLICATION_GLOBAL.VC_ARR2 default empty_vc_arr,
p_n001 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
p_n002 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
p_n003 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
p_n004 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
p_n005 IN APEX_APPLICATION_GLOBAL.N_ARR default empty_n_arr,
p_d001 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
p_d002 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
p_d003 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
p_d004 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
p_d005 IN APEX_APPLICATION_GLOBAL.D_ARR default empty_d_arr,
p_generate_md5 IN VARCHAR2 default 'NO');

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-3 ADD_MEMBERSプロシージャのパラメータ

パラメータ

説明

p_collection_name

既存のコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加する文字属性値の配列。

p_n001からp_n005

追加する数値属性値の配列。

p_d001からp_d005

追加する日付属性値の配列。

p_generate_md5

有効な値にはYESとNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。

例

次の例は、2つの新しいメンバーをEMPLOYEE表に追加する方法を示しています。

Begin
APEX_COLLECTION.ADD_MEMBERS(
p_collection_name => 'EMPLOYEE',
p_c001 => l_arr1,
p_c002 => 1_arr2);
End;

参照:
「GET_MEMBER_MD5ファンクション」、「ADD_MEMBERプロシージャ」、「ADD_MEMBERファンクション」

COLLECTION_EXISTSファンクション

このファンクションを使用して、コレクションが存在するかどうかを判別します。指定したコレクションが、カレント・アプリケーションIDのカレント・セッション内にカレント・ユーザー用として存在すると、TRUEが戻されます。それ以外の場合は、FALSEが戻されます。

構文

APEX_COLLECTION.COLLECTION_EXISTS (
p_collection_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表5-4 COLLECTION_EXISTSファンクションのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は、大/小文字が区別されず、大文字に変換されます。

例

次の例は、COLLECTION_EXISTSファンクションを使用して、EMPLOYEESというコレクションが存在するかどうかを判別する方法を示しています。

Begin
l_exists := APEX_COLLECTION.COLLECTION_EXISTS (
p_collection_name => 'EMPLOYEES');
End;

COLLECTION_HAS_CHANGEDファンクション

このファンクションを使用して、コレクションの変更またはコレクション変更フラグのリセットが行われた後に、コレクションが変更されたかどうかを判別します。

構文

APEX_COLLECTION.COLLECTION_HAS_CHANGED (
p_collection_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表5-5 COLLECTION_HAS_CHANGEDファンクションのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

例

次の例は、COLLECTION_HAS_CHANGEDファンクションを使用して、EMPLOYEESコレクションの作成後、または最後のリセット後に、このコレクションが変更されたかどうかを判別する方法を示しています。

Begin
l_exists := APEX_COLLECTION.COLLECTION_HAS_CHANGED (
p_collection_name => 'EMPLOYEES');
End;

COLLECTION_MEMBER_COUNTファンクション

このファンクションを使用して、名前付きコレクションのメンバーの合計数を取得します。欠落があると、戻されるメンバー合計数と、コレクションの最も大きい順序番号が一致しなくなります。名前付きコレクションがカレント・セッション内にカレント・ユーザー用として存在しないと、エラーが発生します。

構文

APEX_COLLECTION.COLLECTION_MEMBER_COUNT (
p_collection_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表5-6 COLLECTION_MEMBER_COUNTファンクションのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。

例

この例は、COLLECTION_MEMBER_COUNTファンクションを使用して、DEPARTMENTSコレクションのメンバーの合計数を取得する方法を示しています。

Begin
l_count := APEX_COLLECTION.COLLECTION_MEMBER_COUNT( p_collection_name => 'DEPARTMENTS';
End;

CREATE_COLLECTIONプロシージャ

このプロシージャを使用して、まだ存在していない空のコレクションを作成します。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.CREATE_COLLECTION(
p_collection_name IN VARCHAR2);

パラメータ

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

表5-7 CREATE_COLLECTIONプロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

例

この例は、CREATE_COLLECTIONプロシージャを使用して、EMPLOYEESという空のコレクションを作成する方法を示しています。

Begin
APEX_COLLECTION.CREATE_COLLECTION(
p_collection_name => 'EMPLOYEES');
End;

参照:
「CREATE_OR_TRUNCATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERYプロシージャ」、「CREATE_COLLECTION_FROM_QUERY2プロシージャ」、「CREATE_COLLECTION_FROM_QUERY_Bプロシージャ」、「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」

CREATE_OR_TRUNCATE_COLLECTIONプロシージャ

このプロシージャを使用して、コレクションを作成します。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、そのコレクションのすべてのメンバーが削除されます。つまり、名前付きコレクションが切り捨てられます。

構文

APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
p_collection_name IN VARCHAR2);

パラメータ

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

表5-8 CREATE_OR_TRUNCATE_COLLECTIONプロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255文字です。名前付きコレクションがカレント・セッションにカレント・ユーザー用として存在すると、その名前付きコレクションのすべてのメンバーが削除されます。

例

この例は、CREATE_OR_TRUNCATE_COLLECTIONプロシージャを使用して、EMPLOYEESという既存のコレクションのすべてのメンバーを削除する方法を示しています。

Begin
APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
p_collection_name => 'EMPLOYEES');
End;

参照:
「CREATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERYプロシージャ」、「CREATE_COLLECTION_FROM_QUERY2プロシージャ」、「CREATE_COLLECTION_FROM_QUERY_Bプロシージャ」、「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」

CREATE_COLLECTION_FROM_QUERYプロシージャ

このプロシージャを使用して、指定した問合せからコレクションを作成します。問合せはアプリケーション所有者として解析されます。このメソッドは、SELECT句に最大50個の列を指定した問合せで使用できます。SELECT句内のこれらの列は、コレクションの50個の文字属性(C001からC050)に移入されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY (
p_collection_name IN VARCHAR2,
p_query IN VARCHAR2,
p_generate_md5 IN VARCHAR2 default 'NO');

パラメータ

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

表5-9 CREATE_COLLECTION_FROM_QUERYプロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_generate_md5

有効な値にはYESとNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。

例

次の例は、CREATE_COLLECTION_FROM_QUERYプロシージャを使用して、AUTOというコレクションを作成し、そこにAUTOS表のデータを移入する方法を示しています。p_generate_md5がYESであるため、MD5チェックサムが計算され、変更ステータスを判別するための比較が行われます。

Begin
l_query := 'select make, model, year from AUTOS';
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY (
p_collection_name => 'AUTO',
p_query => l_query,
p_generate_md5 => 'YES');
End;

参照:
「GET_MEMBER_MD5ファンクション」、「CREATE_COLLECTIONプロシージャ」、「CREATE_OR_TRUNCATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERY2プロシージャ」、「CREATE_COLLECTION_FROM_QUERY_Bプロシージャ」、「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」

CREATE_COLLECTION_FROM_QUERY2プロシージャ

このプロシージャを使用して、指定した問合せからコレクションを作成します。このメソッドはCREATE_COLLECTION_FROM_QUERYと同じですが、SELECT句の最初の5列は数値である必要があり、次の5列は日付である必要があります。数値データ型および日付データ型の列に続いて、最大50個の文字データ型の列をSELECT句に指定できます。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY2 (
p_collection_name IN VARCHAR2,
p_query IN VARCHAR2,
p_generate_md5 IN VARCHAR2 default 'NO');

パラメータ

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

表5-10 CREATE_COLLECTION_FROM_QUERY2プロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_generate_md5

有効な値にはYESとNOが含まれます。YESの場合、コレクション・メンバーのデータのメッセージ・ダイジェストが計算されます。このパラメータは、コレクション・メンバーのMD5を別のメンバーと比較する場合か、そのメンバーが変更されたかどうかを確認する場合に使用します。

例

次の例は、CREATE_COLLECTION_FROM_QUERY2プロシージャを使用して、EMPLOYEEというコレクションを作成し、そこにEMP表のデータを移入する方法を示しています。最初の5列(mgr、sal、comm、deptnoおよびnull)はすべて数値です。p_generate_md5がNOであるため、MD5チェックサムは計算されません。

begin;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY2 (
p_collection_name => 'EMPLOYEE',
p_query => 'select empno, sal, comm, deptno, null, hiredate, null, null, null, null, ename, job, mgr from emp',
p_generate_md5 => 'NO');
end;

参照:
「GET_MEMBER_MD5ファンクション」、「CREATE_COLLECTIONプロシージャ」、「CREATE_OR_TRUNCATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERYプロシージャ」、「CREATE_COLLECTION_FROM_QUERY_Bプロシージャ」、「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」

CREATE_COLLECTION_FROM_QUERY_Bプロシージャ

このプロシージャを使用して、指定した問合せ(バルク操作を使用)からコレクションを作成します。このメソッドは、CREATE_COLLECTION_FROM_QUERYメソッドよりも非常に高速です。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。

このプロシージャは、バルク動的SQLを使用して、名前付きコレクションにフェッチ操作と挿入操作を実行します。このプロシージャには、2つの制限事項があります。

1. メンバー・データに対してMD5チェックサムは計算されません。

2. 問合せp_queryの列値は、2,000バイト以内である必要があります。列値が2,000バイトを超える行がある場合は、実行中にエラーが発生します。Oracle Database 11gリリース2(11.2.0.1)以降では、この列の制限は4,000バイトです。

構文

APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B (
p_collection_name IN VARCHAR2,
p_query IN VARCHAR2.
p_names IN apex_application_global.vc_arr2 DEFAULT,
p_values IN apex_applicatioN_globa.vc_arr2 DEFAULT,
p_max_row_count IN NUMBER DEFAULT);

パラメータ

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

表5-11 CREATE_COLLECTION_FROM_QUERY_Bプロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_names

問合せ文で使用されるバインド変数名の配列。

p_values

問合せ文内のバインド変数で使用されるバインド変数値の配列。

p_max_row_count

p_queryの問合せから戻され、コレクションに追加する必要がある行の最大数。

例

次の例は、CREATE_COLLECTION_FROM_QUERY_Bプロシージャを使用して、AUTOというコレクションを作成し、そこにAUTOS表のデータを移入する方法を示しています。

Begin
l_query := 'select make, model, year from AUTOS';
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B (
p_collection_name => 'AUTO',
p_query => l_query);
End;

参照:
「GET_MEMBER_MD5ファンクション」、「CREATE_COLLECTIONプロシージャ」、「CREATE_OR_TRUNCATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERYプロシージャ」、「CREATE_COLLECTION_FROM_QUERY2プロシージャ」、「CREATE_COLLECTION_FROM_QUERYB2プロシージャ」

CREATE_COLLECTION_FROM_QUERYB2プロシージャ

このプロシージャを使用して、指定した問合せ(バルク操作を使用)からコレクションを作成します。このメソッドは、CREATE_COLLECTION_FROM_QUERY_2メソッドよりも非常に高速です。問合せはアプリケーション所有者として解析されます。同じ名前のコレクションが、カレント・アプリケーションIDの同じセッション内にカレント・ユーザー用として存在すると、アプリケーション・エラーが発生します。これはCREATE_COLLECTION_FROM_QUERY_Bと同じですが、SELECT句の最初の5列は数値である必要があり、次の5列は日付である必要があります。日付データ型の列に続いて、最大50個の文字データ型の列をSELECT句に指定できます。

このプロシージャは、バルク動的SQLを使用して、名前付きコレクションにフェッチ操作と挿入操作を実行します。このプロシージャには、2つの制限事項があります。

1. メンバー・データに対してMD5チェックサムは計算されません。

2. 問合せp_queryの列値は、2,000バイト以内である必要があります。列値が2,000バイトを超える行がある場合は、実行中にエラーが発生します。Oracle Database 11gリリース2(11.2.0.1)以降では、この列の制限は4,000バイトです。

構文

APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERYB2 (
p_collection_name IN VARCHAR2,
p_query IN VARCHAR2.
p_names IN apex_application_global.vc_arr2 DEFAULT,
p_values IN apex_applicatioN_globa.vc_arr2 DEFAULT,
p_max_row_count IN NUMBER DEFAULT);

パラメータ

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

表5-12 CREATE_COLLECTION_FROM_QUERYB2プロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255文字です。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在すると、エラーが戻されます。

p_query

コレクションのメンバーを移入するために実行する問合せ。p_queryが数値である場合、これはDBMS_SQLカーソルとみなされます。

p_names

問合せ文で使用されるバインド変数名の配列。

p_values

問合せ文内のバインド変数で使用されるバインド変数値の配列。

p_max_row_count

p_queryの問合せから戻され、コレクションに追加する必要がある行の最大数。

例

次の例は、CREATE_COLLECTION_FROM_QUERYB2プロシージャを使用して、EMPLOYEESというコレクションを作成し、そこにEMP表のデータを移入する方法を示しています。最初の5列(mgr、sal、comm、deptnoおよびnull)はすべて数値で、次の5列はすべて日付です。p_generate_md5がNOであるため、MD5チェックサムは計算されません。

Begin
l_query := 'select empno, sal, comm, deptno, null, hiredate, null, null, null, null, ename, job, mgr from emp';
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERYB2 (
p_collection_name => 'EMPLOYEES',
p_query => l_query,
p_generate_md5 => 'NO');
End;

参照:
「GET_MEMBER_MD5ファンクション」、「CREATE_COLLECTIONプロシージャ」、「CREATE_OR_TRUNCATE_COLLECTIONプロシージャ」、「CREATE_COLLECTION_FROM_QUERYプロシージャ」、「CREATE_COLLECTION_FROM_QUERY2プロシージャ」、「CREATE_COLLECTION_FROM_QUERY_Bプロシージャ」

DELETE_ALL_COLLECTIONSプロシージャ

このプロシージャを使用して、Application Expressのカレント・アプリケーションIDのカレント・セッションで、カレント・ユーザーに属しているすべてのコレクションを削除します。

構文

APEX_COLLECTION.DELETE_ALL_COLLECTIONS;

パラメータ

なし。

例

この例は、DELETE_ALL_COLLECTIONSプロシージャを使用して、カレント・セッションとアプリケーションIDのカレント・ユーザーに属しているすべてのコレクションを削除する方法を示しています。

Begin
APEX_COLLECTION.DELETE_ALL_COLLECTIONS;
End;

参照:
「DELETE_ALL_COLLECTIONSプロシージャ」、「DELETE_COLLECTIONプロシージャ」、「DELETE_MEMBERプロシージャ」、「DELETE_MEMBERSプロシージャ」

DELETE_ALL_COLLECTIONS_SESSIONプロシージャ

このプロシージャを使用して、アプリケーションIDに関係なく、Application Expressのカレント・セッションのカレント・ユーザーに属しているすべてのコレクションを削除します。

構文

APEX_COLLECTION.DELETE_ALL_COLLECTIONS_SESSION;

パラメータ

なし。

例

この例は、DELETE_ALL_COLLECTIONS_SESSIONプロシージャを使用して、アプリケーションIDに関係なく、カレント・セッションのカレント・ユーザーに属しているすべてのコレクションを削除する方法を示しています。

Begin
APEX_COLLECTION.DELETE_ALL_COLLECTIONS_SESSION;
End;

参照:
「DELETE_ALL_COLLECTIONSプロシージャ」、「DELETE_COLLECTIONプロシージャ」、「DELETE_MEMBERプロシージャ」、「DELETE_MEMBERSプロシージャ」

DELETE_COLLECTIONプロシージャ

このプロシージャを使用して、名前付きコレクションを削除します。コレクションに属しているすべてのメンバーと、名前付きコレクションが削除されます。名前付きコレクションが、カレント・アプリケーションIDのカレント・セッション内に同じユーザー用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.DELETE_COLLECTION (
p_collection_name IN VARCHAR2);

パラメータ

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

表5-13 DELETE_COLLECTIONプロシージャのパラメータ

パラメータ

説明

p_collection_name

すべてのメンバーとともに削除するコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

例

この例は、DELETE_COLLECTIONプロシージャを使用して、EMPLOYEEコレクションを削除する方法を示しています。

Begin
APEX_COLLECTION.DELETE_COLLECTION(
p_collection_name => 'EMPLOYEE');
End;

参照:
「DELETE_ALL_COLLECTIONS_SESSIONプロシージャ」、「DELETE_ALL_COLLECTIONSプロシージャ」、「DELETE_MEMBERプロシージャ」、「DELETE_MEMBERSプロシージャ」

DELETE_MEMBERプロシージャ

このプロシージャを使用して、指定した名前付きコレクションから指定したメンバーを削除します。名前付きコレクションが、カレント・アプリケーションIDのカレント・セッション内に同じユーザー用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.DELETE_MEMBER (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2);

パラメータ

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

表5-14 DELETE_MEMBERパラメータ

パラメータ

説明

p_collection_name

指定したメンバーを削除するコレクションの名前。最大長は255文字です。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、同じセッションにカレント・ユーザー用として存在しないと、エラーが戻されます。

p_seq

これは、削除するコレクション・メンバーの順序番号です。

例

この例は、DELETE_MEMBERプロシージャを使用して、EMPLOYEESというコレクションから順序番号が2のメンバーを削除する方法を示しています。

Begin
APEX_COLLECTION.DELETE_MEMBER(
p_collection_name => 'EMPLOYEES',
p_seq => '2');
End;

参照:
「DELETE_ALL_COLLECTIONS_SESSIONプロシージャ」、「DELETE_ALL_COLLECTIONSプロシージャ」、「DELETE_COLLECTIONプロシージャ」、「DELETE_MEMBERSプロシージャ」

DELETE_MEMBERSプロシージャ

このプロシージャを使用して、属性番号で指定した属性が特定の値と等しい場合に、指定した名前付きコレクションからすべてのメンバーを削除します。名前付きコレクションが、カレント・アプリケーションIDのカレント・セッション内に同じユーザー用として存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または1から50の範囲外であると、エラーが発生します。

指定した属性値がnullの場合、名前付きコレクションのメンバーのうち、属性(p_attr_numberで指定)がnullであるすべてのメンバーが削除されます。

構文

APEX_COLLECTION.DELETE_MEMBERS (
p_collection_name IN VARCHAR2,
p_attr_number IN VARCHAR2,
p_attr_value IN VARCHAR2);

パラメータ

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

表5-15 DELETE_MEMBERSパラメータ

パラメータ

説明

p_collection_name

指定したメンバーを削除するコレクションの名前。最大長は255文字です。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、同じセッションにカレント・ユーザー用として存在しないと、エラーが戻されます。

p_attr_number

削除のために指定した属性値との一致に使用されるメンバー属性の属性番号。有効な値は、1から50およびnullです。

p_attr_value

削除のための一致に使用されるメンバー属性の属性値。最大長は4,000バイトです。これよりも大きいと、属性値は4,000バイトに切り捨てられます。

例

次の例では、5番目の文字属性がAPPLEである場合に、GROCERIESというコレクションのすべてのメンバーが削除されます。

Begin
apex_collection.delete_members(
p_collection_name => 'GROCERIES'
p_attr_number     => 5,
p_attr_value      => 'APPLE' );
Commit;
End;

参照:
「DELETE_ALL_COLLECTIONS_SESSIONプロシージャ」、「DELETE_ALL_COLLECTIONSプロシージャ」、「DELETE_COLLECTIONプロシージャ」、「DELETE_MEMBERプロシージャ」

GET_MEMBER_MD5ファンクション

このファンクションを使用して、順序番号で指定したメンバーについて、その属性のメッセージ・ダイジェストを計算して戻します。メッセージ・ダイジェストのこの計算は、コレクションでネイティブに実行される計算と同じです。したがって、このファンクションの結果は、ビューwwv_flow_collectionsのMD5_ORIGINAL列と比較できます。

指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.GET_MEMBER_MD5 (
p_collection_name IN VARCHAR2,
p_seq IN NUMBER)
RETURN VARCHAR2;

パラメータ

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

表5-16 GET_MEMBER_MD5パラメータ

パラメータ

説明

p_collection_name

メンバーのこの配列を追加するコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

コレクション・メンバーの順序番号。

例

次の例では、GROCERIESコレクションの5番目のメンバーについて、MD5が計算されます。

declare
l_md5 varchar2(4000);
begin
l_md5 := apex_collection.get_member_md5(
p_collection_name => 'GROCERIES'
p_seq             => 10 );
end;

参照:
「COLLECTION_HAS_CHANGEDファンクション」、「RESET_COLLECTION_CHANGEDプロシージャ」、「RESET_COLLECTION_CHANGED_ALLプロシージャ」

MERGE_MEMBERSプロシージャ

このプロシージャを使用して、指定した名前付きコレクションのメンバーと、配列に渡された値をマージします。名前付きコレクションが存在しない場合は作成されます。p_init_queryが指定されると、コレクションは指定されたSQL問合せから作成されます。名前付きコレクションが存在すると、次のことが行われます。

1. コレクション内に存在し、配列内に存在しない行が削除されます。

2. コレクション内および配列内に存在する行が更新されます。

3. 配列内に存在し、コレクション内に存在しない行が挿入されます。

p_c001 PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。たとえば、p_c001.countが2で、p_c002.countが10の場合、2つのメンバーのみがマージされます。p_c001がnullの場合は、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.MERGE_MEMBERS (
p_collection_name IN VARCHAR2,
p_seq  IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
p_c001 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
p_c002 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
p_c003 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
...
p_c050 IN APEX_APPLICATION_GLOBAL.VC_ARR2 DEFAULT empty_vc_arr,
p_null_index  IN NUMBER DEFAULT 1,
p_null_value  IN VARCHAR2 DEFAULT null,
p_init_query  IN VARCHAR2 DEFAULT null);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-17 MERGE_MEMBERSプロシージャのパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

マージする属性値の配列。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。p_c001配列のカウントは、すべての配列で使用されます。値が指定されないと、アクションは実行されません。

p_c0xx

マージするNN属性値の属性。最大長は4,000バイトです。これよりも大きいと、属性値は4,000バイトに切り捨てられます。

p_seq

マージするコレクションの順序番号を指定します。

p_null_index

この値で識別された要素がnullの場合、この行をnull行とみなします。たとえば、p_null_indexが3である場合、p_c003はnull行とみなされます。つまり、mergeファンクションは、この行を無視するように指示されます。これによって、null行がコレクションから削除されます。null索引は、null値とともに動作します。p_cXXX引数の値がp_null_valueと等しい場合、行はnullとみなされます。

p_null_value

p_null_index引数とともに使用します。この引数は、null値を識別します。この値をnullにすることはできません。この引数の通常の値は0(ゼロ)です。

p_init_query

コレクションが存在しない場合、コレクションはこの問合せを使用して作成されます。

例

次の例では、従業員の表でコレクションを作成し、ローカル配列の内容とコレクションをマージします。さらに、2人の従業員の仕事を更新します。

DECLARE
l_seq   APEX_APPLICATION_GLOBAL.VC_ARR2;
l_c001  APEX_APPLICATION_GLOBAL.VC_ARR2;
l_c002  APEX_APPLICATION_GLOBAL.VC_ARR2;
l_c003  APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_seq(1)  := 1;
l_c001(1) := 7369;
l_c002(1) := 'SMITH';
l_c003(1) := 'MANAGER';
l_seq(2)  := 2;
l_c001(2) := 7499;
l_c002(2) := 'ALLEN';
l_c003(2) := 'CLERK';

APEX_COLLECTION.MERGE_MEMBERS(
p_collection_name => 'EMPLOYEES',
p_seq => l_seq,
p_c001 => l_c001,
p_c002 => l_c002,
p_c003 => l_c003,
p_init_query => 'select empno, ename, job from emp order by empno');
END;

MOVE_MEMBER_DOWNプロシージャ

このプロシージャを使用して、指定した名前付きコレクションの特定のメンバーの順序番号を1つ下げて(1を引いて)調整し、順序番号と、その置換番号とを入れ替えます。たとえば、3は2になり、2は3になります。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーがコレクションで最も小さい順序であっても、アプリケーション・エラーは戻されません。

構文

APEX_COLLECTION.MOVE_MEMBER_DOWN (
p_collection_name IN VARCHAR2,
p_seq IN NUMBER);

パラメータ

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

表5-18 MOVE_MEMBER_DOWNパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。カレント・ユーザーの指定した名前のこのコレクションが、同じセッションに存在しないと、エラーが戻されます。

p_seq

1つ下げて移動させるコレクション・メンバーの順序番号を指定します。

例

この例は、EMPLOYEESコレクションのメンバーの位置を1つ下げる方法を示しています。この例を実行した後、順序番号5は順序番号4になり、順序番号4は順序番号5になります。

BEGIN;
APEX_COLLECTION.MOVE_MEMBER_DOWN(
p_collection_name => 'EMPLOYEES',
p_seq => '5' );
END;

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

MOVE_MEMBER_UPプロシージャ

このプロシージャを使用して、指定した名前付きコレクションの特定のメンバーの順序番号を1つ上げて(1を足して)調整し、順序番号と、その置換番号とを入れ替えます。たとえば、2は3になり、3は2になります。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーがコレクションで最も大きい順序であっても、アプリケーション・エラーは戻されません。

構文

APEX_COLLECTION.MOVE_MEMBER_UP (
p_collection_name IN VARCHAR2,
p_seq IN NUMBER);

パラメータ

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

表5-19 MOVE_MEMBER_UPパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。カレント・ユーザーの指定した名前のこのコレクションが、同じセッションに存在しないと、エラーが戻されます。

p_seq

1つ上げて移動させるコレクション・メンバーの順序番号を指定します。

例

この例は、EMPLOYEESコレクションのメンバーの位置を1つ下げる方法を示しています。この例を実行した後、順序番号5は順序番号6になり、順序番号6は順序番号5になります。

BEGIN;
APEX_COLLECTION.MOVE_MEMBER_UP(
p_collection_name => 'EMPLOYEES',
p_seq => '5' );
END;

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

RESEQUENCE_COLLECTIONプロシージャ

名前付きコレクションにこのプロシージャを使用して、各メンバーのseq_id値を更新し、順序内に欠落が存在しないようにします。たとえば、あるコレクションの順序番号が1、2、3、5、8、9である場合、一連の順序番号は1、2、3、4、5、6となります。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.RESEQUENCE_COLLECTION (
p_collection_name IN VARCHAR2);

パラメータ

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

表5-20 RESEQUENCE_COLLECTIONパラメータ

パラメータ

説明

p_collection_name

順序変更を行うコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

例

この例は、DEPARTMENTSコレクションで順序変更を行い、順序番号内での欠落を削除する方法を示しています。

BEGIN;
APEX_COLLECTION.RESEQUENCE_COLLECTION (
p_collection_name => 'DEPARTMENTS');
END;

参照:
「MOVE_MEMBER_DOWNプロシージャ」、「MOVE_MEMBER_UPプロシージャ」

RESET_COLLECTION_CHANGEDプロシージャ

このプロシージャを使用して、特定のコレクションのコレクション変更フラグをリセット(変更されていないとしてマーク)します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.RESET_COLLECTION_CHANGED (
p_collection_name IN VARCHAR2);

パラメータ

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

表5-21 RESET_COLLECTION_CHANGEDパラメータ

パラメータ

説明

p_collection_name

コレクション変更フラグをリセットするコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

例

この例は、DEPARTMENTSコレクションの変更フラグをリセットする方法を示しています。

BEGIN;
APEX_COLLECTION.RESET_COLLECTION_CHANGED (
p_collection_name => 'DEPARTMENTS');
END;

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

RESET_COLLECTION_CHANGED_ALLプロシージャ

このプロシージャを使用して、ユーザーのカレント・セッション内のすべてのコレクションのコレクション変更フラグをリセット(変更されていないとしてマーク)します。

構文

APEX_COLLECTION.RESET_COLLECTION_CHANGED_ALL; (

パラメータ

なし。

例

この例は、ユーザーのカレント・セッションのすべてのコレクションの変更フラグをリセットする方法を示しています。

BEGIN;
APEX_COLLECTION.RESET_COLLECTION_CHANGED_ALL;
END;

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

SORT_MEMBERSプロシージャ

このプロシージャを使用して、特定のコレクションのメンバーをp_sort_on_column_numberで指定した列番号で並べ替えます。これによって、コレクションが、コレクション内の列/属性でソートされ、欠落がないように各番号の順序番号が再割当てされます。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.SORT_MEMBERS (
p_collection_name IN VARCHAR2,
p_sort_on_column_number IN NUMBER);

パラメータ

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

表5-22 SORT_MEMBERSパラメータ

パラメータ

説明

p_collection_name

ソートするコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_sort_on_column_number

コレクションのソートに使用する列番号。有効な値の範囲は、1から50です。

例

この例では、DEPARTMENTSコレクションの列2は部門の場所です。コレクションは部門の場所に従って並べ替えられます。

BEGIN;
APEX_COLLECTION.SORT_MEMBERS (
p_collection_name => 'DEPARTMENTS',
p_sort_on_column_number => '2';
END;

TRUNCATE_COLLECTIONプロシージャ

このプロシージャを使用して、名前付きコレクションからすべてのメンバーを削除します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.TRUNCATE_COLLECTION (
p_collection_name IN VARCHAR2);

パラメータ

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

表5-23 TRUNCATE_COLLECTIONパラメータ

パラメータ

説明

p_collection_name

切り捨てるコレクションの名前。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

例

この例は、DEPARTMENTSコレクションからすべてのメンバーを削除する方法を示しています。

BEGIN;
APEX_COLLECTION.TRUNCATE_COLLECTION(
p_collection_name => 'DEPARTMENTS');
END;

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

UPDATE_MEMBERプロシージャ

このプロシージャを使用して、特定の名前付きコレクション内の指定したメンバーを更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。

注意:
このプロシージャを使用すると、識別された列が設定され、識別されない列は無効化されます。他の列の値に影響を及ぼすことなく、特定の列を更新するには、UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1を使用します。

構文

APEX_COLLECTION.UPDATE_MEMBER (
p_collection_name IN VARCHAR2,
p_seq  IN VARCHAR2 DEFAULT NULL,
p_c001 IN VARCHAR2 DEFAULT NULL,
p_c002 IN VARCHAR2 DEFAULT NULL,
p_c003 IN VARCHAR2 DEFAULT NULL,
...
p_c050 IN VARCHAR DEFAULT NULL,
p_n001 IN NUMBER DEFAULT NULL,
p_n002 IN NUMBER DEFAULT NULL,
p_n003 IN NUMBER DEFAULT NULL,
p_n004 IN NUMBER DEFAULT NULL,
p_n005 IN NUMBER DEFAULT NULL,
p_d001 IN DATE DEFAULT NULL,
p_d002 IN DATE DEFAULT NULL,
p_d003 IN DATE DEFAULT NULL,
p_d004 IN DATE DEFAULT NULL,
p_d005 IN DATE DEFAULT NULL,
p_clob001 IN CLOB DEFAULT empty_clob(),
p_blob001 IN BLOB DEFAULT empty-blob(),
p_xmltype001 IN XMLTYPE DEFAULT NULL);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-24 UPDATE_MEMBERパラメータ

パラメータ

説明

p_collection_name

更新するコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_c001からp_c050

追加するメンバーの属性値。最大長は4,000バイトです。4,000文字を超える文字属性は、4,000文字に切り捨てられます。

p_n001からp_n005

追加または更新する数値属性の属性値。

p_d001からp_d005

追加または更新する日付属性の属性値。

p_clob001

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

p_blob001

バイナリ・コレクション・メンバー属性には、p_blob001を使用します。

p_xmltype001

整形式XMLを格納するには、p_xmltype001を使用します。

例

Departmentsというコレクションの2番目のメンバーを更新します。1つ目のメンバー属性をEngineeringに、2つ目のメンバー属性をSalesに更新します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER (
p_collection_name => 'Departments',
p_seq => '2',
p_c001 => 'Engineering',
p_c002 => 'Sales');

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

UPDATE_MEMBERSプロシージャ

このプロシージャを使用して、特定の名前付きコレクションのメンバーの配列を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。p_seq PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。つまり、p_seq.count = 2かつp_c001.count = 10である場合は、2つのメンバーのみがupdaapex_application_globaltedです。p_seqがnullであると、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBERS (
p_collection_name IN VARCHAR2,
p_seq  IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
p_c001 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
p_c002 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
p_c003 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
...
p_c050 IN apex_application_global.VC_ARR2 DEFAULT empty_vc_arr,
p_n001 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
p_n002 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
p_n003 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
p_n004 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
p_n005 IN apex_application_global.N_ARR DEFAULT empty_n_arr,
p_d001 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
p_d002 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
p_d003 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
p_d004 IN apex_application_global.D_ARR DEFAULT empty_d_arr,
p_d005 IN apex_application_global.D_ARR DEFAULT empty_d_arr)

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-25 UPDATE_MEMBERSパラメータ

パラメータ

説明

p_collection_name

更新するコレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。

p_seq

更新するメンバー順序番号の配列。p_seq配列のカウントは、すべての配列で使用されます。

p_c001からp_c050

更新する属性値の配列。

p_n001からp_n005

数値の属性値

p_d001からp_d005

更新する日付属性値の配列。

例

DECLARE
l_seq   apex_application_global.vc_arr2;
l_carr  apex_application_global.vc_arr2;
l_narr  apex_application_global.n_arr;
l_darr  apex_application_global.d_arr;
BEGIN
l_seq(1)  := 10;
l_seq(2)  := 15;
l_carr(1) := 'Apples';
l_carr(2) := 'Grapes';
l_narr(1) := 100;
l_narr(2) := 150;
l_darr(1) := sysdate;
l_darr(2) := sysdate;

APEX_COLLECTION.UPDATE_MEMBERS (
p_collection_name => 'Groceries',
p_seq  => l_seq,
p_c001 => l_carr,
p_n001 => l_narr,
p_d001 => l_darr);
END;

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

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

特定の名前付きコレクション内の指定したメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または1から50の範囲外であると、エラーが発生します。4,000バイトを超える属性値は、4,000バイトに切り捨てられます。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2,
p_attr_number IN VARCHAR2,
p_attr_value  IN VARCHAR2);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-26 UPDATE_MEMBER_ATTRIBUTEのシグネチャ1のパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_attr_number

更新するメンバー属性の属性番号。有効な値は1から50です。この範囲外の番号はすべて無視されます。

p_attr_value

更新するメンバー属性の属性値。

例

Departmentsというコレクションの2番目のメンバーを更新します(1つ目のメンバー属性をEngineeringに、2つ目のメンバー属性をSalesに更新します)。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'Departments',
p_seq => '2',
p_attr_number => '1',
p_attr_value => 'Engineering');
END;

参照:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6」

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

特定の名前付きコレクション内の指定したCLOBメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、CLOBでは1のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2,
p_clob_number IN NUMBER,
p_clob_value  IN CLOB);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-27 UPDATE_MEMBER_ATTRIBUTEのシグネチャ2のパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_clob_number

更新するCLOBメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_clob_value

更新するCLOBメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目のCLOB属性のみをEngineeringに設定します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'Departments',
p_seq => '2',
p_clob_number => '1',
p_clob_value => 'Engineering');
END;

参照:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6」

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

特定の名前付きコレクション内の指定したBLOBメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、BLOBでは1のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2,
p_blob_number IN NUMBER,
p_blob_value  IN BLOB);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-28 UPDATE_MEMBER_ATTRIBUTEのシグネチャ3のパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_blob_number

更新するBLOBメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_blob_value

更新するBLOBメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目のBLOB属性のみをBLOB変数の値l_blob_contentに設定します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'Departments',
p_seq => '2',
p_blob_number => '1',
p_blob_value => l_blob_content);
END;

参照:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6」

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

特定の名前付きコレクション内の指定したXMLTYPEメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、XMLTYPEでは1のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2,
p_xmltype_number IN NUMBER,
p_xmltype_value  IN BLOB);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-29 UPDATE_MEMBER_ATTRIBUTEのシグネチャ4のパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_xmltype_number

更新するXMLTYPEメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_xmltype_value

更新するXMLTYPEメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目のXML属性のみをXMLType変数の値l_xmltype_contentに設定します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'Departments',
p_seq => '2',
p_xmltype_number => '1',
p_xmltype_value => l_xmltype_content);
END;

参照:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6」

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5

特定の名前付きコレクション内の指定したNUMBERメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、NUMBERでは1から5のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2,
p_attr_number IN NUMBER,
p_number_value  IN NUMBER);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-30 UPDATE_MEMBER_ATTRIBUTEのシグネチャ5のパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_attr_number

更新するNUMBERメンバー属性の属性番号。有効な値は1から5です。この範囲外の番号はすべて無視されます。

p_number_value

更新するNUMBERメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の1つ目の数値属性を値3000に設定します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'Departments',
p_seq => '2',
p_attr_number => '1',
p_number_value => 3000);
END;

参照:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6」

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6

特定の名前付きコレクション内の指定したDATEメンバー属性を更新します。指定した名前のコレクションが、同じセッションのカレント・ユーザー用およびカレント・アプリケーションID用として存在しないと、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。指定した属性番号が無効であるか、または有効な範囲(現在、DATEでは1から5のみ)の外であると、エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name IN VARCHAR2,
p_seq IN VARCHAR2,
p_attr_number IN NUMBER,
p_date_value  IN DATE);

パラメータ

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

注意:
4,000文字を超える文字属性は、4,000文字に切り捨てられます。また、追加されるメンバーの数は、1番目の配列内の要素の数に基づきます。

表5-31 UPDATE_MEMBER_ATTRIBUTEのシグネチャ6のパラメータ

パラメータ

説明

p_collection_name

コレクションの名前。最大長は255バイトです。コレクション名は大/小文字が区別されず、大文字に変換されます。このコレクションが、カレント・ユーザーの指定された名前で、同じセッションに存在しないと、エラーが戻されます。

p_seq

更新するコレクション・メンバーの順序番号。

p_attr_number

更新するDATEメンバー属性の属性番号。有効な値は1から5です。この範囲外の番号はすべて無視されます。

p_date_value

更新するDATEメンバー属性の属性値。

例

Departmentsというコレクションの2番目のコレクション・メンバーの1つ目の属性を更新して、値100に設定します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'Departments',
p_seq => '2',
p_attr_number => '1',
p_date_value => 100 );
END;

参照:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」

6 APEX_CSS

APEX_CSSパッケージには、CSSスタイルをHTTP出力に追加するためのユーティリティ・ファンクションが用意されています。通常、このパッケージはプラグイン開発に使用されます。

- ADDプロシージャ

- ADD_3RD_PARTY_LIBRARY_FILEプロシージャ

- ADD_FILEプロシージャ

ADDプロシージャ

このプロシージャは、HTML出力にインラインで含められるCSSスタイルのスニペットを追加します。このプロシージャは、新しいCSSスタイルの宣言を追加する場合に使用します。

構文

APEX_CSS.ADD (
p_css          IN    VARCHAR2,
p_key          IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表6-1 ADDのパラメータ

パラメータ

説明

p_css

CSSスタイルのスニペット。たとえば、#test {color:#fff}とします。

p_key

スタイル・スニペットの識別子。指定して、同じ名前のスタイル・スニペットがすでに追加されている場合、新しいスタイル・スニペットは無視されます。

例

クラス・オートコンプリートのインラインCSS定義をHTMLページに追加します。キーautocomplete_widgetは、apex_css.addが再度コールされた場合に定義が再度追加されるのを防ぎます。

apex_css.add (
p_css => '.autocomplete { color:#ffffff }',
p_key => 'autocomplete_widget' );

ADD_3RD_PARTY_LIBRARY_FILEプロシージャ

このプロシージャは、サード・パーティのcssファイルをロードするためのリンク・タグを追加し、アプリケーションに関して指定したコンテンツ配信ネットワークも考慮します。サポートされるライブラリは、jQuery、jQueryUI、jQueryMobileです。

ライブラリがすでに追加されている場合、再度追加されることはありません。

構文

add_3rd_party_library_file (
p_library in varchar2,
p_file_name in varchar2,
p_directory in varchar2 default null,
p_version in varchar2 default null,
p_media_query in varchar2 default null );

パラメータ

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

表6-2 ADD_3RD_PARTY_LIBRARY_FILEパラメータ

パラメータ

説明

p_library

c_library_*定数のいずれかを使用します。

p_file_name

バージョン、.minおよび.cssを含めずにファイル名を指定します。

p_directory

ファイルp_file_nameがあるディレクトリ(オプション)。

p_version

値が指定されていない場合、同じバージョンのApplication Expressの値が使用されます(オプション)。

p_media_query

メディア問合せとして設定される値(オプション)。

例

次の例では、jQuery UIのアコーディオン・コンポーネントのカスケード・スタイルシート・ファイルをロードします。

apex_css.add_3rd_party_library_file (
p_library   => apex_css.c_library_jquery_ui,
p_file_name => 'jquery.ui.accordion' )

ADD_FILEプロシージャ

このプロシージャは、CSSライブラリをロードするためのリンク・タグを追加します。ライブラリがすでに追加されている場合、2回目は追加されません。

構文

APEX_CSS.ADD_FILE (
p_name           IN    VARCHAR2,
p_directory      IN    VARCHAR2 DEFAULT WWV_FLOW.G_IMAGE_PREFIX||'css/',
p_version        IN    VARCHAR2 DEFAULT NULL,
p_skip_extension IN    BOOLEAN DEFAULT FALSE
p_media_query    IN    VARCHAR2 DEFAULT NULL,
p_ie_condition   IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表6-3 ADD_FILEのパラメータ

パラメータ

説明

p_name

CSSファイルの名前。

p_directory

CSSファイルの読取り元となるURLの開始。このファンクションをプラグインに対して使用する場合は、このパラメータにp_plugin.file_prefixを設定する必要があります。

p_version

CSSファイルのバージョンの識別子。バージョンはCSSファイル名に追加されます。ほとんどの場合、値にデフォルトのNULLを使用することをお薦めします。

p_skip_extension

このファンクションは、CSSファイル名に自動的に.cssを追加します。このパラメータにTRUEを設定すると追加されません。

p_media_query

メディア問合せとして設定される値。

p_ie_condition

Internet Explorerの条件として使用される条件。

例

p_plugin.image_prefixに指定したディレクトリのCSSファイルjquery.autocomplete.cssをページのHTML出力に追加します。apex_css.add_fileがその名前で複数回コールされた場合でも1回のみ含められるようにします。

apex_css.add_file (
p_name => 'jquery.autocomplete',
p_directory => p_plugin.image_prefix );

7 APEX_CUSTOM_AUTH

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

- APPLICATION_PAGE_ITEM_EXISTSファンクション

- CURRENT_PAGE_IS_PUBLICファンクション

- DEFINE_USER_SESSIONプロシージャ

- GET_COOKIE_PROPSプロシージャ

- GET_LDAP_PROPSプロシージャ

- GET_NEXT_SESSION_IDファンクション

- GET_SECURITY_GROUP_IDファンクション

- GET_SESSION_IDファンクション

- GET_SESSION_ID_FROM_COOKIEファンクション

- GET_USERファンクション

- GET_USERNAMEファンクション

- IS_SESSION_VALIDファンクション

- LOGINプロシージャ

- LOGOUTプロシージャ[非推奨]

- POST_LOGINプロシージャ

- SESSION_ID_EXISTSファンクション

- SET_SESSION_IDプロシージャ

- SET_SESSION_ID_TO_NEXT_VALUEプロシージャ

- SET_USERプロシージャ

APPLICATION_PAGE_ITEM_EXISTSファンクション

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

構文

APEX_CUSTOM_AUTH.APPLICATION_PAGE_ITEM_EXISTS(
p_item_name   IN    VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表7-1 APPLICATION_PAGE_ITEM_EXISTSのパラメータ

パラメータ

説明

p_item_name

ページ・レベル・アイテムの名前。

例

次の例では、アプリケーションのカレント・ページ内にページ・レベル・アイテムITEM_NAMEが存在するかどうかを確認します。

DECLARE
L_VAL BOOLEAN;
BEGIN
VAL := APEX_CUSTOM_AUTH.APPLICATION_PAGE_ITEM_EXISTS(:ITEM_NAME);
IF L_VAL THEN
htp.p('Item Exists');
ELSE
htp.p('Does not Exist');
END IF;
END;

CURRENT_PAGE_IS_PUBLICファンクション

このファンクションは、現在のページの認証属性が「パブリック・ページ」に設定されているかどうかをチェックし、ブール値(TRUEまたはFALSE)を戻します

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「ページ属性の編集」

構文

APEX_CUSTOM_AUTH.CURRENT_PAGE_IS_PUBLIC
RETURN BOOLEAN;

例

次の例では、アプリケーションのカレント・ページがパブリックかどうかを確認します。

DECLARE
L_VAL BOOLEAN;
BEGIN
L_VAL := APEX_CUSTOM_AUTH.CURRENT_PAGE_IS_PUBLIC;
IF L_VAL THEN
htp.p('Page is Public');
ELSE
htp.p('Page is not Public');
END IF;
END;

DEFINE_USER_SESSIONプロシージャ

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

構文

APEX_CUSTOM_AUTH.DEFINE_USER_SESSION(
p_user         IN    VARCHAR2,
p_session_id   IN    NUMBER);

パラメータ

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

表7-2 DEFINE_USER_SESSIONのパラメータ

パラメータ

説明

p_user

ユーザーのログイン名です。

p_session_id

セッションID。

例

次の例では、新しいセッションIDが生成され、カレント・アプリケーション・ユーザーとともに登録されます。

APEX_CUSTOM_AUTH.DEFINE_USER_SESSION (
:APP_USER,
APEX_CUSTOM_AUTH.GET_NEXT_SESSION_ID);

参照:
「SET_USERプロシージャ」および「SET_SESSION_IDプロシージャ」

GET_COOKIE_PROPSプロシージャ

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

構文

APEX_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
p_secure                                    OUT BOOLEAN);

パラメータ

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

表7-3 GET_COOKIE_PROPSのパラメータ

パラメータ

説明

p_app_id

現行のワークスペースのアプリケーションIDです。

p_cookie_name

Cookie名です。

p_cookie_path

Cookieパスです。

p_cookie_domain

Cookieドメインです。

p_secure

Cookieのsecureプロパティを設定するためのフラグです。

例

次の例では、カレント・アプリケーションの認証スキームで使用されるセッションCookieの値を取得します。

DECLARE
l_cookie_name   varchar2(256);
l_cookie_path   varchar2(256);
l_cookie_domain varchar2(256);
l_secure        boolean;
BEGIN
APEX_CUSTOM_AUTH.GET_COOKIE_PROPS(
p_app_id => 2918,
p_cookie_name => l_cookie_name,
p_cookie_path => l_cookie_path,
p_cookie_domain => l_cookie_domain,
p_secure => l_secure);
END;

GET_LDAP_PROPSプロシージャ

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

構文

APEX_CUSTOM_AUTH.GET_LDAP_PROPS(
p_ldap_host                OUT VARCHAR2,
p_ldap_port                OUT INTEGER,
p_use_ssl                  OUT VARCHAR2,
p_use_exact_dn             OUT VARCHAR2,
p_search_filter            OUT VARCHAR2,
p_ldap_dn                  OUT VARCHAR2,
p_ldap_edit_function       OUT VARCHAR2);

パラメータ

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

表7-4 GET_LDAP_PROPSのパラメータ

パラメータ

説明

p_ldap_host

LDAPホスト名です。

p_ldap_port

LDAPポート番号です。

p_use_ssl

SSLが使用されているかどうかについてです。

p_use_exact_dn

完全な識別名を使用するかどうかについてです。

p_search_filter

完全なDNを使用しない場合に使用される検索フィルタです。

p_ldap_dn

LDAP DN文字列です。

p_ldap_edit_function

LDAP編集ファンクション名です。

例

次の例では、カレント・アプリケーションに関連付けられているLDAP属性を取得します。

DECLARE
l_ldap_host          VARCHAR2(256);
l_ldap_port          INTEGER;
l_use_ssl            VARCHAR2(1);
l_use_exact_dn       VARCHAR2(1);
l_search_filter      VARCHAR2(256);
l_ldap_dn            VARCHAR2(256);
l_ldap_edit_function VARCHAR2(256);
BEGIN
APEX_CUSTOM_AUTH.GET_LDAP_PROPS (
p_ldap_host       => l_ldap_host,
p_ldap_port       => l_ldap_port,
p_use_ssl         => l_use_ssl,
p_use_exact_dn    => l_use_exact_dn,
p_search_filter   => l_search_filter,
p_ldap_dn         => l_ldap_dn,
p_ldap_edit_function => l_ldap_edit_function);
END;

GET_NEXT_SESSION_IDファンクション

このファンクションは、Oracle Application Express順序ジェネレータから次のセッションIDを生成します。このファンクションは数値を戻します。

構文

APEX_CUSTOM_AUTH.GET_NEXT_SESSION_ID
RETURN NUMBER;

例

次の例では、次のセッションIDを生成して変数に格納します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_CUSTOM_AUTH.GET_NEXT_SESSION_ID;
END;

GET_SECURITY_GROUP_IDファンクション

このファンクションは、カレント・ユーザーのワークスペースを示すセキュリティ・グループIDの数値を戻します。

構文

APEX_CUSTOM_AUTH.GET_SECURITY_GROUP_ID
RETURN NUMBER;

例

次の例では、カレント・ユーザーのセキュリティ・グループIDを取得します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_CUSTOM_AUTH.GET_SECURITY_GROUP_ID;
END;

GET_SESSION_IDファンクション

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

構文

APEX_CUSTOM_AUTH.GET_SESSION_ID
RETURN NUMBER;

例

次の例では、カレント・ユーザーのセッションIDを取得します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_CUSTOM_AUTH.GET_SESSION_ID;
END;

GET_SESSION_ID_FROM_COOKIEファンクション

このファンクションは、現行のブラウザ・セッションのページ・リクエストでセッションCookieによって検索されたOracle Application ExpressのセッションIDを戻します。

構文

APEX_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE
RETURN NUMBER;

例

次の例では、現行のセッションCookieからセッションIDを取得します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE;
END;

GET_USERファンクション

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

構文

APEX_CUSTOM_AUTH.GET_USER
RETURN VARCHAR2;

例

次の例では、カレント・セッションに関連付けられているユーザー名を取得します。

DECLARE
VAL VARCHAR2(256);
BEGIN
VAL := APEX_CUSTOM_AUTH.GET_USER;
END;

GET_USERNAMEファンクション

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

構文

APEX_CUSTOM_AUTH.GET_USERNAME
RETURN VARCHAR2;

例

次の例では、カレント・アプリケーション・セッションに登録されているユーザー名を取得します。

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

IS_SESSION_VALIDファンクション

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

構文

APEX_CUSTOM_AUTH.IS_SESSION_VALID
RETURN BOOLEAN;

例

次の例では、カレント・セッションが有効かどうかを検証します。

DECLARE
L_VAL BOOLEAN;
BEGIN
L_VAL := APEX_CUSTOM_AUTH.IS_SESSION_VALID;
IF L_VAL THEN
htp.p('Valid');
ELSE
htp.p('Invalid');
END IF;
END;

LOGINプロシージャ

「ログインAPI」とも呼ばれるこのプロシージャは、認証およびセッションの登録を実行します。

構文

APEX_CUSTOM_AUTH.LOGIN(
p_uname                    IN  VARCHAR2  DEFAULT NULL,
p_password                 IN  VARCHAR2  DEFAULT NULL,
p_session_id               IN  VARCHAR2  DEFAULT NULL,
p_app_page                 IN  VARCHAR2  DEFAULT NULL,
p_entry_point              IN  VARCHAR2  DEFAULT NULL,
p_preserve_case            IN  BOOLEAN   DEFAULT FALSE);

パラメータ

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

表7-5 LOGINのパラメータ

パラメータ

説明

p_uname

ユーザーのログイン名です。

p_password

クリア・テキストのユーザー・パスワードです。

p_session_id

現行のOracle Application ExpressセッションID。

p_app_page

カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。

p_entry_point

内部でのみ使用します。

p_preserve_case

TRUEの場合は、セッションの登録時にp_unameを大文字で指定しないでください

例

次の例では、ユーザーの認証およびセッションの登録を実行します。

BEGIN
APEX_CUSTOM_AUTH.LOGIN (
p_uname       => 'FRANK',
p_password    => 'secret99',
p_session_id  => V('APP_SESSION'),
p_app_page    => :APP_ID||':1');
END;

注意:
p_session_id引数にバインド変数表記は使用しないでください。

LOGOUTプロシージャ[非推奨]

注意:
このプロシージャの使用は推奨されていません。かわりに、APEX_AUTHENTICATION.LOGOUTを使用してください。

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

構文

APEX_CUSTOM_AUTH.LOGOUT(
p_this_app                   IN VARCHAR2  DEFAULT NULL,
p_next_app_page_sess         IN VARCHAR2  DEFAULT NULL,
p_next_url                   IN VARCHAR2  DEFAULT NULL);

パラメータ

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

表7-6 LOGOUTのパラメータ

パラメータ

説明

p_this_app

カレント・アプリケーションIDです。

p_next_app_page_sess

リダイレクト先のアプリケーションおよびページ番号です。複数のページをコロン(:)で区切って指定します。また、セッションIDの制御が必要な場合は、オプションでこれらのページの後にコロン(:)、続けてセッションIDを指定します。

p_next_url

リダイレクト先のURLです(p_next_app_page_sessのかわりに使用します)。

例

次の例では、カレント・セッションからのロウアウトおよびアプリケーション1000のページ99へのリダイレクトを実行します。

BEGIN
APEX_CUSTOM_AUTH.LOGOUT (
p_this_app            => '1000',
p_next_app_page_sess  => '1000:99');
END;

POST_LOGINプロシージャ

認証ステップが完了している場合、このプロシージャはセッションの登録を実行します。Oracle Application Expressアプリケーション・ページのコンテキスト内からのみコールできます。

構文

APEX_CUSTOM_AUTH.POST_LOGIN(
p_uname                    IN  VARCHAR2  DEFAULT NULL,
p_session_id               IN  VARCHAR2  DEFAULT NULL,
p_app_page                 IN  VARCHAR2  DEFAULT NULL,
p_preserve_case            IN  BOOLEAN   DEFAULT FALSE);

パラメータ

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

表7-7 POST_LOGINのパラメータ

パラメータ

説明

p_uname

ユーザーのログイン名です。

p_session_id

現行のOracle Application ExpressセッションID。

p_app_page

カレント・アプリケーションIDです。ログイン・ページの後にコロン(:)で区切って指定します。

p_preserve_case

TRUEの場合は、セッションの登録時にp_unameを大文字で指定しないでください。

例

次の例では、認証の成功に続いて、セッションの登録を実行します。

BEGIN
APEX_CUSTOM_AUTH.POST_LOGIN (
p_uname       => 'FRANK',
p_session_id  => V('APP_SESSION'),
p_app_page    => :APP_ID||':1');
END;

SESSION_ID_EXISTSファンクション

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

構文

APEX_CUSTOM_AUTH.SESSION_ID_EXISTS
RETURN BOOLEAN;

例

次の例では、現行のセッションIDが有効かどうかおよび存在するかどうかを確認します。

DECLARE
L_VAL BOOLEAN;
BEGIN
L_VAL := APEX_CUSTOM_AUTH.SESSION_ID_EXISTS;
IF VAL THEN
htp.p('Exists');
ELSE
htp.p('Does not exist');
END IF;
END;

SET_SESSION_IDプロシージャ

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

構文

APEX_CUSTOM_AUTH.SET_SESSION_ID(
p_session_id    IN    NUMBER);

パラメータ

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

表7-8 SET_SESSION_IDのパラメータ

パラメータ

説明

p_session_id

登録するセッションID。

例

次の例では、登録されたセッションIDの値がブラウザCookieから取得されます。

APEX_CUSTOM_AUTH.SET_SESSION_ID(APEX_CUSTOM_AUTH.GET_SESSION_ID_FROM_COOKIE);

SET_SESSION_ID_TO_NEXT_VALUEプロシージャ

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

構文

APEX_CUSTOM_AUTH.SET_SESSION_ID_TO_NEXT_VALUE;

例

次の例では、カレント・セッションが有効でない場合、新しいセッションIDが生成され、登録されます。

IF NOT APEX_CUSTOM_AUTH.SESSION_ID_EXISTS THEN
APEX_CUSTOM_AUTH.SET_SESSION_ID_TO_NEXT_VALUE;
END IF;

SET_USERプロシージャ

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

構文

APEX_CUSTOM_AUTH.SET_USER(
p_user   IN    VARCHAR2);

パラメータ

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

表7-9 SET_USERのパラメータ

パラメータ

説明

p_user

登録するユーザーID。

例

次の例では、カレント・アプリケーション・ユーザーがNOBODYの場合、JOHN.DOEがアプリケーション・ユーザーとして登録されます。

IF V('APP_USER') = 'NOBODY' THEN
APEX_CUSTOM_AUTH.SET_USER('JOHN.DOE');
END IF;

8 APEX_DEBUG

APEX_DEBUGパッケージには、デバッグ・メッセージ・ログを管理するためのユーティリティ・ファンクションが用意されています。具体的には、このパッケージには、Application Expressアプリケーションに含まれるPL/SQLコードおよびデータベース・ストアド・プロシージャとファンクション内のPL/SQLコードのインストルメントおよびデバッグに必要なAPIが提供されています。PL/SQLコードをインストルメントすると、より迅速にバグを追跡し、予期しない動作を特定することが容易になります。

パッケージには、様々なデバッグ・レベルでのデバッグを有効または無効にする手段、およびメッセージ・ログをクリーンアップするユーティリティ・プロシージャもあります。

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデバッグ・モードへのアクセスに関する説明を参照するか、またはAPEX_DEBUG_MESSAGESビューを問い合せることによって、メッセージ・ログを表示できます。

詳細は、個々のAPIの説明を参照してください。

注意:
Oracle Application Express 4.2では、APEX_DEBUG_MESSAGEパッケージは、APEX_DEBUGにリネームされました。APEX_DEBUG_MESSAGEパッケージ名は、下位互換性のために引き続きサポートされます。ただし、Oracle Application Expressの旧バージョンでAPEX_DEBUGパッケージを実行する場合を除き、新規アプリケーションでは新しいAPEX_DEBUGパッケージを使用することをお薦めします。

- 定数

- DISABLEプロシージャ

- ENABLEプロシージャ

- ENTERプロシージャ

- ERRORプロシージャ

- INFOプロシージャ

- LOG_DBMS_OUTPUTプロシージャ

- LOG_LONG_MESSAGEプロシージャ

- LOG_MESSAGEプロシージャ[非推奨]

- LOG_PAGE_SESSION_STATEプロシージャ

- MESSAGEプロシージャ

- REMOVE_DEBUG_BY_AGEプロシージャ

- REMOVE_DEBUG_BY_APPプロシージャ

- REMOVE_DEBUG_BY_VIEWプロシージャ

- REMOVE_SESSION_MESSAGESプロシージャ

- TOCHARファンクション

- TRACEプロシージャ

- WARNプロシージャ

定数

このパッケージでは、次の定数が使用されます。

subtype t_log_level is pls_integer;
c_log_level_error constant t_log_level := 1; -- critical error
c_log_level_warn constant t_log_level := 2; -- less critical error
c_log_level_info constant t_log_level := 4; -- default level if debugging is enabled (for example, used by apex_application.debug)
c_log_level_app_enter constant t_log_level := 5; -- application: messages when procedures/functions are entered
c_log_level_app_trace constant t_log_level := 6; -- application: other messages within procedures/functions
c_log_level_engine_enter constant t_log_level := 8; -- Application Express engine: messages when procedures/functions are entered
c_log_level_engine_trace constant t_log_level := 9; -- Application Express engine: other messages within procedures/functions

DISABLEプロシージャ

このプロシージャは、デバッグ・メッセージを無効にします。

構文

APEX_DEBUG.DISABLE;

パラメータ

なし。

例

次の例に、デバッグ・メッセージを無効にする方法を示します。

BEGIN
APEX_DEBUG.DISABLE();
END;

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

ENABLEプロシージャ

このプロシージャは、デバッグ・メッセージを有効にします。重要性のレベルごとに、監視されるデバッグ・メッセージのタイプを指定できます。

注意:
ENABLEプロシージャは、ページ・ビューまたはページ受入れごとに1回のみコールする必要があります。

構文

APEX_DEBUG.ENABLE (
p_level    IN  T_LOG_LEVEL DEFAULT C_LOG_LEVEL_INFO );

パラメータ

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

表8-1 APEX_DEBUG.ENABLEプロシージャのパラメータ

パラメータ

説明

p_level

ログに記録するメッセージの1つ以上のレベル。1から9までの整数である必要があり、レベル1は重要度が最も高いメッセージで、レベル9(デフォルト)は重要度が最も低いメッセージです。特定のレベルを設定すると、そのレベルおよびそのレベルより下のメッセージが記録されます。たとえば、p_levelに2を設定すると、レベル1および2のメッセージが記録されます。

例

次の例に、レベル1、2および4のメッセージのロギングを有効にする方法を示します。これより高いレベルのメッセージは記録されません。

BEGIN
APEX_DEBUG.ENABLE(
apex_debug.c_log_level_info);
END;

ENTERプロシージャ

このプロシージャは、c_log_level_app_enterレベルのメッセージを記録します。APEX_DEBUG.ENTER()を使用して、プロシージャまたはファンクションの先頭にあるルーチン名とその引数を記録します。

構文

APEX_DEBUG.ENTER (
p_routine_name IN VARCHAR2,
p_name01 IN VARCHAR2 DEFAULT NULL,
p_value01 IN VARCHAR2 DEFAULT NULL,
p_name02 IN VARCHAR2 DEFAULT NULL,
p_value02 IN VARCHAR2 DEFAULT NULL,
p_name03 IN VARCHAR2 DEFAULT NULL,
p_value03 IN VARCHAR2 DEFAULT NULL,
p_name04 IN VARCHAR2 DEFAULT NULL,
p_value04 IN VARCHAR2 DEFAULT NULL,
p_name05 IN VARCHAR2 DEFAULT NULL,
p_value05 IN VARCHAR2 DEFAULT NULL,
p_name06 IN VARCHAR2 DEFAULT NULL,
p_value06 IN VARCHAR2 DEFAULT NULL,
p_name07 IN VARCHAR2 DEFAULT NULL,
p_value07 IN VARCHAR2 DEFAULT NULL,
p_name08 IN VARCHAR2 DEFAULT NULL,
p_value08 IN VARCHAR2 DEFAULT NULL,
p_name09 IN VARCHAR2 DEFAULT NULL,
p_value09 IN VARCHAR2 DEFAULT NULL,
p_name10 IN VARCHAR2 DEFAULT NULL,
p_value10 IN VARCHAR2 DEFAULT NULL,
p_value_max_length IN PLS_INTEGER DEFAULT 1000 );

パラメータ

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

表8-2 APEX_DEBUG.ENTERプロシージャのパラメータ

パラメータ

説明

p_routine_name

プロシージャまたはファンクションの名前。

p_namexx/p_valuexx

プロシージャまたはファンクションのパラメータの名前および値。

p_value_max_length

値p_valuexxは、この長さに切り捨てられます。

例

次の例に、APEX_ENTERを使用して、プロシージャの先頭にデバッグ・メッセージを追加する方法を示します。

procedure foo (
p_widget_id in number,
p_additional_data in varchar2,
p_emp_rec in emp%rowtype )
is
begin
apex_debug.enter('foo',
'p_widget_id' , p_widget_id,
'p_additional_data', p_additional_data,
'p_emp_rec.id' , p_emp_rec.id );
....do something....
end foo;

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」

ERRORプロシージャ

このプロシージャは、c_log_level_errorレベルのメッセージを記録します。記録は、デバッグ・モードがオフになっている場合も含め、常に行われます。

構文

APEX_DEBUG.ERROR (
p_message IN VARCHAR2,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
p3 IN VARCHAR2 DEFAULT NULL,
p4 IN VARCHAR2 DEFAULT NULL,
p5 IN VARCHAR2 DEFAULT NULL,
p6 IN VARCHAR2 DEFAULT NULL,
p7 IN VARCHAR2 DEFAULT NULL,
p8 IN VARCHAR2 DEFAULT NULL,
p9 IN VARCHAR2 DEFAULT NULL,
p_max_length IN PLS_INTEGER DEFAULT 1000 );

パラメータ

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

表8-3 APEX_DEBUG.ERRORプロシージャのパラメータ

パラメータ

説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

値p<n>は、この長さに切り捨てられます。

例

次の例に、APEX_ERRORを使用して、デバッグ・ログに重大なエラーを記録する方法を示します。

apex_debug.error('Critical error %s', sqlerrm);

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」

INFOプロシージャ

このプロシージャは、c_log_level_infoレベルのメッセージを記録します。

構文

APEX_DEBUG.INFO (
p_message IN VARCHAR2,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
p3 IN VARCHAR2 DEFAULT NULL,
p4 IN VARCHAR2 DEFAULT NULL,
p5 IN VARCHAR2 DEFAULT NULL,
p6 IN VARCHAR2 DEFAULT NULL,
p7 IN VARCHAR2 DEFAULT NULL,
p8 IN VARCHAR2 DEFAULT NULL,
p9 IN VARCHAR2 DEFAULT NULL,
p_max_length IN PLS_INTEGER DEFAULT 1000 );

パラメータ

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

表8-4 APEX_DEBUG.INFOプロシージャのパラメータ

パラメータ

説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

値p<n>は、この長さに切り捨てられます。

例

次の例に、APEX_DEBUG.INFOを使用して、デバッグ・ログにログ情報を記録する方法を示します。

apex_debug.info('Important: %s', 'fnord');

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「ENTERプロシージャ」

LOG_DBMS_OUTPUTプロシージャ

このプロシージャは、デバッグ・ログにdbms_output.get_linesのコンテンツを記述します。dbms_outputを使用するレガシー・アプリケーションのメッセージは、デバッグ・ログにコピーされます。デバッグ・ログに書き込むには、dbms_output.enableを実行する必要があります

構文

APEX_DEBUG.LOG_DBMS_OUTPUT;

パラメータ

なし。

例

次の例に、デバッグ・ログにDBMS_OUTPUTバッファのコンテンツを記録する方法を示します。

sys.dbms_output.enable;
sys.dbms_output.put_line('some data');
sys.dbms_output.put_line('other data');
apex_debug.log_dbms_output;

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」

LOG_LONG_MESSAGEプロシージャ

このプロシージャを使用して、Application ExpressのPLSQLコンポーネント、またはPLSQLプロシージャとファンクションからデバッグ・メッセージを生成します。このプロシージャは、LOG_MESSAGEと同様ですが、より長いメッセージのロギングが可能な点のみ異なります。このメッセージ・ログは、デバッグ出力で4,000の文字のチャンクに分割されます。1つのデバッグ・メッセージは4,000文字までに制限されているためです。

注意:
このプロシージャのかわりに、「ERRORプロシージャ」、「WARNプロシージャ」、「MESSAGEプロシージャ」、「INFOプロシージャ」、「ENTERプロシージャ」または「TRACEプロシージャ」を使用します。

構文

APEX_DEBUG.LOG_LONG_MESSAGE (
p_message    IN VARCHAR2  DEFAULT NULL,
p_enabled    IN BOOLEAN   DEFAULT FALSE,
p_level      IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_APP_TRACE);

パラメータ

表8-5に、APEX_DEBUG.LOG_LONG_MESSAGEプロシージャで使用可能なパラメータを示します。

表8-5 APEX_DEBUG.LOG_LONG_MESSAGEプロシージャのパラメータ

パラメータ

説明

p_message

長いログ・メッセージ(最大サイズは32767バイト)。

p_enabled

デバッグが有効かどうかに関係なく、メッセージを常にログに記録するにはTRUEを設定します。デバッグが有効な場合にのみメッセージをログに記録するにはFALSEを設定します

p_level

長いログ・メッセージのレベルを識別します。「定数」を参照してください。

例

次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、32767文字まで含むことができるレベル1のメッセージを表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定のFALSEよりも、この有効化の設定の方が優先されるため、p_enabledパラメータを指定する必要はありません。

DECLARE
l_msg VARCHAR2(32767) := 'Debug outputs anything up to varchar2 limit';
BEGIN
APEX_DEBUG.ENABLE (p_level => 2);

APEX_DEBUG.LOG_LONG_MESSAGE(
p_message => l_msg,
p_level => 1 );
END;

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」

LOG_MESSAGEプロシージャ[非推奨]

このプロシージャは、デバッグ・メッセージを記録します。

注意:
このプロシージャのかわりに、「ERRORプロシージャ」、「WARNプロシージャ」、「MESSAGEプロシージャ」、「INFOプロシージャ」、「ENTERプロシージャ」または「TRACEプロシージャ」を使用します。

構文

APEX_DEBUG.LOG_MESSAGE (
p_message IN VARCHAR2 DEFAULT NULL,
p_enabled IN BOOLEAN DEFAULT FALSE,
p_level IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_APP_TRACE );

パラメータ

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

表8-6 APEX_DEBUG.LOG_MESSAGEプロシージャのパラメータ

パラメータ

説明

p_message

最大長が1000バイトのデバッグ・メッセージ。

p_enabled

ロギングが有効になっている(値がTRUEに設定されている)場合に、メッセージが記録されます。

p_level

ログ・メッセージのレベルを識別します(1は重要度が最も高く、9は重要度が最も低いログ・メッセージです)。これは整数値です。

例

次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、レベル1のメッセージと変数値を表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定のFALSEよりも、この有効化の設定の方が優先されるため、p_enabledパラメータを指定する必要はありません。

DECLARE
l_value varchar2(100) := 'test value';
BEGIN
APEX_DEBUG.ENABLE (p_level => 2);

APEX_DEBUG.LOG_MESSAGE(
p_message => 'l_value = ' || l_value,
p_level => 1 );

END;

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」

LOG_PAGE_SESSION_STATEプロシージャ

このプロシージャは、セッションのアイテム値を記録します。

構文

APEX_DEBUG.LOG_PAGE_SESSION_STATE (
p_page_id IN NUMBER DEFAULT NULL,
p_enabled IN BOOLEAN DEFAULT FALSE,
p_level IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_APP_TRACE );

パラメータ

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

表8-7 APEX_DEBUG.LOG_SESSION_STATEプロシージャのパラメータ

パラメータ

説明

p_page_id

現在のアプリケーションとワークスペース・コンテキスト内のページを識別します。

p_enabled

ロギングが有効になっている(値がTRUEに設定されている)場合に、メッセージが記録されます。

p_level

ログ・メッセージのレベルを識別します(1は重要度が最も高く、9は重要度が最も低いログ・メッセージです)。整数値である必要があります。

例

次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、レベル1のメッセージをアプリケーションの現在のページのすべてのセッション・ステートを含めて表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定のFALSEよりも、この有効化の設定の方が優先されるため、p_enabledパラメータを指定する必要はありません。また、この例ではアプリケーションの現在のページのセッション・ステート情報を示すだけであるため、p_page_idを指定していません。

BEGIN
APEX_DEBUG.ENABLE (p_level => 2);

APEX_DEBUG.LOG_PAGE_SESSION_STATE (p_level => 1);

END;

MESSAGEプロシージャ

このプロシージャは、書式設定されたデバッグ・メッセージの一般バージョンを記録します。

構文

APEX_DEBUG.MESSAGE (
p_message IN VARCHAR2,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
p3 IN VARCHAR2 DEFAULT NULL,
p4 IN VARCHAR2 DEFAULT NULL,
p5 IN VARCHAR2 DEFAULT NULL,
p6 IN VARCHAR2 DEFAULT NULL,
p7 IN VARCHAR2 DEFAULT NULL,
p8 IN VARCHAR2 DEFAULT NULL,
p9 IN VARCHAR2 DEFAULT NULL,
p10 IN VARCHAR2 DEFAULT NULL,
p11 IN VARCHAR2 DEFAULT NULL,
p12 IN VARCHAR2 DEFAULT NULL,
p13 IN VARCHAR2 DEFAULT NULL,
p14 IN VARCHAR2 DEFAULT NULL,
p15 IN VARCHAR2 DEFAULT NULL,
p16 IN VARCHAR2 DEFAULT NULL,
p17 IN VARCHAR2 DEFAULT NULL,
p18 IN VARCHAR2 DEFAULT NULL,
p19 IN VARCHAR2 DEFAULT NULL,
p_max_length IN PLS_INTEGER DEFAULT 1000,
p_level IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_INFO,
p_force IN BOOLEAN DEFAULT FALSE );

パラメータ

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

表8-8 APEX_DEBUG.MESSAGEプロシージャのパラメータ

パラメータ

説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp19

'%s'プレースホルダに対する置換文字列。

p_max_length

値p<n>は、この長さに切り捨てられます。

p_level

メッセージのデフォルトのログ・レベルは、c_log_level_infoです。「定数」を参照してください。

p_force

TRUEの場合は、ページがデバッグ・モードでレンダリングされない場合や(URLまたは有効なプロシージャを使用して)構成されたデバッグ・メッセージよりp_levelが大きい場合でも、デバッグ・メッセージが生成されます。

例

次の例に、APEX_DEBUG.MESSAGEプロシージャを使用して、デバッグ・ログにテキストを追加する方法を示します。

apex_debug.message('the value of %s + %s equals %s', 3, 5, 'eight');

参照:
「ERRORプロシージャ」、「WARNプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」、「ENTERプロシージャ」

REMOVE_DEBUG_BY_AGEプロシージャ

このプロシージャを使用して、デバッグ・メッセージ・ログから、指定した日数よりも古いすべてのデータを削除します。

構文

APEX_DEBUG.REMOVE_DEBUG_BY_AGE (
p_application_id IN NUMBER,
p_older_than_days IN NUMBER);

パラメータ

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

表8-9 APEX_DEBUG.REMOVE_DEBUG_BY_AGEプロシージャのパラメータ

パラメータ

説明

p_application_id

アプリケーションのアプリケーションID

p_older_than_days

データが削除される前に、デバッグ・メッセージ・ログに保持される日数。

例

次の例に、現在のアプリケーションに関するデバッグ・メッセージで、保持日数が3日以上になるものを削除する方法を示します。

BEGIN
APEX_DEBUG.REMOVE_DEBUG_BY_AGE (
p_application_id  => TO_NUMBER(:APP_ID),
p_older_than_days => 3 );
END;

REMOVE_DEBUG_BY_APPプロシージャ

このプロシージャを使用して、デバッグ・メッセージ・ログから、指定したアプリケーションに属するすべてのデータを削除します。

構文

APEX_DEBUG.REMOVE_DEBUG_BY_APP (
p_application_id IN NUMBER);

パラメータ

表8-10に、APEX_DEBUG.REMOVE_DEBUG_BY_APPプロシージャで使用可能なパラメータを示します。

表8-10 APEX_DEBUG.REMOVE_DEBUG_BY_APPプロシージャのパラメータ

パラメータ

説明

p_application_id

アプリケーションのアプリケーションID

例

次の例に、現在のアプリケーションに関してログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。

BEGIN
APEX_DEBUG.REMOVE_DEBUG_BY_APP(
p_application_id => TO_NUMBER(:APP_ID) );
END;

REMOVE_DEBUG_BY_VIEWプロシージャ

このプロシージャを使用して、メッセージ・ログから、指定したビューのすべてのデータを削除します。

構文

APEX_DEBUG.REMOVE_DEBUG_BY_VIEW (
p_application_id IN NUMBER,
p_view_id IN NUMBER);

パラメータ

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

表8-11 APEX_DEBUG.REMOVE_DEBUG_BY_VIEWプロシージャのパラメータ

パラメータ

説明

p_application_id

アプリケーションのアプリケーションID

p_view_id

ビューのビューID。

例

次の例に、現在のアプリケーションに属している、ビュー識別子が12345のデバッグ・メッセージを削除する方法を示します。

BEGIN
APEX_DEBUG.REMOVE_DEBUG_BY_VIEW (
p_application_id => TO_NUMBER(:APP_ID),
p_view_id        => 12345 );
END;

REMOVE_SESSION_MESSAGESプロシージャ

このプロシージャでは、ワークスペース内の指定されたセッションがデフォルトで現在のセッションとなるため、デバッグ・メッセージ・ログからすべてのデータが削除されます。

構文

APEX_DEBUG.REMOVE_SESSION_MESSAGES (
p_session    IN NUMBER  DEFAULT NULL);

パラメータ

表8-12に、APEX_DEBUG.REMOVE_SESSION_MESSAGESプロシージャで使用可能なパラメータを示します。

表8-12 APEX_DEBUG.REMOVE_SESSION_MESSAGESプロシージャのパラメータ

パラメータ

説明

p_session

セッションID。デフォルトの設定は現在のセッションです。

例

次の例に、現在のセッションでログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。注意: p_sessionパラメータの値が渡されないため、プロシージャではデフォルトで現在のセッションが使用されます。

BEGIN
APEX_DEBUG.REMOVE_SESSION_MESSAGES();
END;

TOCHARファンクション

このプロシージャは、BOOLEANをVARCHAR2に変換します。

構文

APEX_DEBUG.TOCHAR (
p_value IN BOOLEAN )
return VARCHAR2;

パラメータ

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

表8-13 APEX_DEBUG.TOCHARプロシージャのパラメータ

パラメータ

説明

p_value

BOOLEAN 0または1(それぞれFALSEまたはTRUEに変換されます)。

例

次の例に、APEX_DEBUG.TOCHARファンクションを使用して、boolean値を他のデバッグ・プロシージャに渡せるようvarchar2に変換する方法を示します。

declare
l_state boolean;
begin
....
apex_debug.info('Value of l_state is %s', apex_debug.tochar(l_state));
....
end;

TRACEプロシージャ

このプロシージャは、c_log_level_app_traceレベルのメッセージを記録します。

構文

APEX_DEBUG.TRACE (
p_message IN VARCHAR2,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
p3 IN VARCHAR2 DEFAULT NULL,
p4 IN VARCHAR2 DEFAULT NULL,
p5 IN VARCHAR2 DEFAULT NULL,
p6 IN VARCHAR2 DEFAULT NULL,
p7 IN VARCHAR2 DEFAULT NULL,
p8 IN VARCHAR2 DEFAULT NULL,
p9 IN VARCHAR2 DEFAULT NULL,
p_max_length IN PLS_INTEGER DEFAULT 1000 );

パラメータ

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

表8-14 APEX_DEBUG.TRACEプロシージャのパラメータ

パラメータ

説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

値p<n>は、この長さに切り捨てられます。

例

次の例に、APEX_DEBUG.TRACEを使用して、デバッグ・ログに低レベルのデバッグ情報を記録する方法を示します。

apex_debug.trace('Low-level information: %s+%s=%s', 1, 2, 3);

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「WARNプロシージャ」、「ENTERプロシージャ」、「INFOプロシージャ」

WARNプロシージャ

このプロシージャは、c_log_level_warnレベルのメッセージを記録します。

構文

APEX_DEBUG.WARN (
p_message IN VARCHAR2,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
p3 IN VARCHAR2 DEFAULT NULL,
p4 IN VARCHAR2 DEFAULT NULL,
p5 IN VARCHAR2 DEFAULT NULL,
p6 IN VARCHAR2 DEFAULT NULL,
p7 IN VARCHAR2 DEFAULT NULL,
p8 IN VARCHAR2 DEFAULT NULL,
p9 IN VARCHAR2 DEFAULT NULL,
p_max_length IN PLS_INTEGER DEFAULT 1000 );

パラメータ

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

表8-15 APEX_DEBUG.WARNプロシージャのパラメータ

パラメータ

説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

値p<n>は、この長さに切り捨てられます。

例

次の例に、APEX_DEBUG.WARNを使用して、デバッグ・ログに非常に重要なデータを記録する方法を示します。

apex_debug.warn('Soft constraint %s violated: %s', 4711, sqlerrm);

参照:
「MESSAGEプロシージャ」、「ERRORプロシージャ」、「ENTERプロシージャ」、「TRACEプロシージャ」、「INFOプロシージャ」

9 APEX_ERROR

APEX_ERRORパッケージには、インタフェース宣言と、エラー処理ファンクションのためのいくつかのユーティリティ・ファンクションが用意されており、Application Expressアプリケーションでエラーを発生させるプロシージャおよびファンクションが含まれています。

- 結果の型に使用される定数および属性

- エラー処理ファンクションの例

- ADD_ERRORプロシージャのシグネチャ1

- ADD_ERRORプロシージャのシグネチャ2

- ADD_ERRORプロシージャのシグネチャ3

- ADD_ERRORプロシージャのシグネチャ4

- ADD_ERRORプロシージャのシグネチャ5

- AUTO_SET_ASSOCIATED_ITEMプロシージャ

- EXTRACT_CONSTRAINT_NAMEファンクション

- GET_ARIA_ERROR_ATTRIBUTESファンクション

- GET_FIRST_ORA_ERROR_TEXTファンクション

- INIT_ERROR_RESULTファンクション

結果の型に使用される定数および属性

次の定数は、t_errorおよびt_error_result型のAPIパラメータp_display_locationおよび属性display_locationに使用されます。

c_inline_with_field            constant varchar2(40):='INLINE_WITH_FIELD';
c_inline_with_field_and_notif  constant varchar2(40):='INLINE_WITH_FIELD_AND_NOTIFICATION';
c_inline_in_notification       constant varchar2(40):='INLINE_IN_NOTIFICATION';
c_on_error_page                constant varchar2(40):='ON_ERROR_PAGE';

次の定数は、t_error型でAPIパラメータassociated_typeに使用されます。

c_ass_type_page_item           constant varchar2(30):='PAGE_ITEM';
c_ass_type_region              constant varchar2(30):='REGION';
c_ass_type_region_column       constant varchar2(30):='REGION_COLUMN';

次のレコード構造はエラー処理コールアウト・ファンクションに渡され、またエラーの関連情報がすべて格納されています。

type t_error is record (
message  varchar2(32767),             /* Error message which will be displayed */
additional_info varchar2(32767),      /* Only used for display_location ON_ERROR_PAGE to display additional error information */
display_location  varchar2(40),       /* Use constants "used for display_location" below */
association_type  varchar2(40),       /* Use constants "used for asociation_type" below */
page_item_name    varchar2(255),      /* Associated page item name */
region_id         number,             /* Associated tabular form region id of the primary application */
column_alias      varchar2(255),      /* Associated tabular form column alias */
row_num           pls_integer,        /* Associated tabular form row */
is_internal_error boolean,            /* Set to TRUE if it's a critical error raised by the APEX engine, like an invalid SQL/PLSQL statements, ... Internal Errors are always displayed on the Error Page */
apex_error_code   varchar2(255),      /* Contains the system message code if it's an error raised by APEX */
ora_sqlcode       number,             /* SQLCODE on exception stack which triggered the error, NULL if the error was not raised by an ORA error */
ora_sqlerrm      varchar2(32767),     /* SQLERRM which triggered the error, NULL if the error was not raised by an ORA error */
error_backtrace   varchar2(32767),     /* Output of sys.dbms_utility.format_error_backtrace or sys.dbms_utility.format_call_stack */
error_statement   varchar2(32767),     /* Statement that was parsed when the error occurred - only suitable when parsing caused the error */
component         wwv_flow.t_component /* Component which has been processed when the error occurred */
);

次のレコード構造は、エラー処理コールアウト・ファンクションから戻される必要があります。

type t_error_result is record (
message          varchar2(32767), /* Error message which will be displayed */
additional_info  varchar2(32767), /* Only used for display_location ON_ERROR_PAGE to display additional error information */
display_location varchar2(40),    /* Use constants "used for display_location" below */
page_item_name   varchar2(255),   /* Associated page item name */
column_alias     varchar2(255)    /* Associated tabular form column alias */
);

エラー処理ファンクションの例

エラー処理ファンクションの例を次に示します。

create or replace function apex_error_handling_example (
p_error in apex_error.t_error )
return apex_error.t_error_result
is
l_result          apex_error.t_error_result;
l_reference_id    number;
l_constraint_name varchar2(255);
begin
l_result := apex_error.init_error_result (
p_error => p_error );

-- If it's an internal error raised by APEX, like an invalid statement or
-- code which cannot be executed, the error text might contain security sensitive
-- information. To avoid this security problem rewrite the error to
-- a generic error message and log the original error message for further
-- investigation by the help desk.

if p_error.is_internal_error then
-- mask all errors that are not common runtime errors (Access Denied
-- errors raised by application / page authorization and all errors
-- regarding session and session state)
if not p_error.is_common_runtime_error then
-- log error for example with an autonomous transaction and return
-- l_reference_id as reference#
-- l_reference_id := log_error (
--                       p_error => p_error );
--

-- Change the message to the generic error message which doesn't expose
-- any sensitive information.
l_result.message      := 'An unexpected internal application error has occurred. '||
'Please get in contact with XXX and provide '||
'reference# '||to_char(l_reference_id, '999G999G999G990')||
' for further investigation.';
l_result.additional_info := null;
end if;
else
-- Always show the error as inline error
-- Note: If you have created manual tabular forms (using the package
--       apex_item/htmldb_item in the SQL statement) you should still
--       use "On error page" on that pages to avoid loosing entered data
l_result.display_location := case
when l_result.display_location = apex_error.c_on_error_page then apex_error.c_inline_in_notification
else l_result.display_location
end;

-- If it's a constraint violation like
--
--   -) ORA-00001: unique constraint violated
--   -) ORA-02091: transaction rolled back (-> can hide a deferred constraint)
--   -) ORA-02290: check constraint violated
--   -) ORA-02291: integrity constraint violated - parent key not found
--   -) ORA-02292: integrity constraint violated - child record found
--
-- try to get a friendly error message from our constraint lookup configuration.
-- If the constraint in our lookup table is not found, fallback to
-- the original ORA error message.
if p_error.ora_sqlcode in (-1, -2091, -2290, -2291, -2292) then
l_constraint_name := apex_error.extract_constraint_name (
p_error => p_error );

begin
select message
into l_result.message
from constraint_lookup
where constraint_name = l_constraint_name;
exception when no_data_found then null; -- not every constraint has to be in our lookup table
end;
end if;

-- If an ORA error has been raised, for example a raise_application_error(-20xxx, '...')
-- in a table trigger or in a PL/SQL package called by a process and the
-- error has not been found in the lookup table, then display
-- the actual error text and not the full error stack with all the ORA error numbers.
if p_error.ora_sqlcode is not null and l_result.message = p_error.message then
l_result.message := apex_error.get_first_ora_error_text (
p_error => p_error );
end if;

-- If no associated page item/tabular form column has been set, use
-- apex_error.auto_set_associated_item to automatically guess the affected
-- error field by examine the ORA error for constraint names or column names.
if l_result.page_item_name is null and l_result.column_alias is null then
apex_error.auto_set_associated_item (
p_error        => p_error,
p_error_result => l_result );
end if;
end if;

return l_result;
end apex_error_handling_example;

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

このプロシージャは、エラー・ページ上でエラーを表示したり、通知にインラインでエラーを表示するために使用されるエラー・スタックにエラー・メッセージを追加します。検証または処理時にコールして、1つ以上のエラーをエラー・スタックに追加することができます。

注意:
このプロシージャは、Application Expressアプリケーションが最後の検証または処理を行う前にコールする必要があります。そのようにしないと、apex_error.c_on_error_pageの表示位置が指定されている場合を除いて、エラーは無視されます。

構文

APEX_ERROR.ADD_ERROR (
p_message          in varchar2,
p_additional_info  in varchar2 default null,
p_display_location in varchar2 );

パラメータ

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

表9-1 ADD_ERRORプロシージャのシグネチャ1のパラメータ

パラメータ

説明

p_message

表示されるエラー・メッセージ

p_additional_info

エラーがエラー・ページに表示される場合に必要なその他のエラー情報。

p_display_location

エラー・メッセージの表示位置を指定します。定数apex_error.inline_notification またはapex_error.c_error_pageを使用します。「結果の型に使用される定数および属性」を参照してください。

例

この例では、エラー・スタックにカスタム・エラー・メッセージを追加する方法を示しています。エラー・メッセージは通知にインラインで表示されます。この例は、検証または処理の際に使用できます。

apex_error.add_error (
p_message          => 'This custom account is not active!',
p_display_location => apex_error.c_inline_in_notification );

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

このプロシージャは、通知にインラインでページ・アイテムのエラーを表示するために使用されるエラー・スタックにエラー・メッセージを追加します。検証または処理時にコールして、1つ以上のエラーをエラー・スタックに追加することができます。

注意:
このプロシージャは、Application Expressアプリケーションが最後の検証または処理を行う前にコールする必要があります。そのようにしないと、apex_error.c_on_error_pageの表示位置が指定されている場合を除いて、エラーは無視されます。

構文

APEX_ERROR.ADD_ERROR (
p_message          in varchar2,
p_additional_info  in varchar2 default null,
p_display_location in varchar2,
p_page_item_name   in varchar2);

パラメータ

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

表9-2 ADD_ERRORプロシージャのシグネチャ2のパラメータ

パラメータ

説明

p_message

表示されるエラー・メッセージ

p_additional_info

エラーがエラー・ページに表示される場合に必要なその他のエラー情報。

p_display_location

エラー・メッセージの表示位置を指定します。定数apex_error.c_inline_with field またはapex_error.c_inline_with_field_and_notifを使用します。「結果の型に使用される定数および属性」を参照してください。

p_page_item_name

apex_error.c_inline_with_fieldまたはapex_error.c_inline_with_field_and_notifが表示位置として使用されている場合に強調表示される、現在のページのページ・アイテム名。

例

この例では、エラー・スタックにカスタム・エラー・メッセージを追加する方法を示しています。P5_CUSTOMER_IDアイテムがページ上で強調表示されます。エラー・メッセージは通知にインラインで表示されます。この例は、検証または処理の際に使用できます。

apex_error.add_error (
p_message          => 'Invalid Customer ID!',
p_display_location =>  apex_error.c_inline_with_field_and_notif,
p_page_item_name   => 'P5_CUSTOMER_ID');

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

このプロシージャは、テキストを共有コンポーネントで定義したとおりに表示するために使用するエラー・スタックにエラー・メッセージを追加します。このエラー・メッセージはすべての表示位置に表示できます。検証または処理時にコールして、1つ以上のエラーをエラー・スタックに追加することができます。

注意:
このプロシージャは、Application Expressアプリケーションが最後の検証または処理を行う前にコールする必要があります。そのようにしないと、apex_error.c_on_error_pageの表示位置が指定されている場合を除いて、エラーは無視されます。

構文

APEX_ERROR.ADD_ERROR (
p_error_code          in varchar2,
p0                    in varchar2 default null,
p1                    in varchar2 default null,
p2                    in varchar2 default null,
p3                    in varchar2 default null,
p4                    in varchar2 default null,
p5                    in varchar2 default null,
p6                    in varchar2 default null,
p7                    in varchar2 default null,
p8                    in varchar2 default null,
p9                    in varchar2 default null,
p_escape_placeholders in boolean  default true,
p_additional_info     in varchar2 default null,
p_display_location    in varchar2,
p_page_item_name      in varchar2 );

パラメータ

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

表9-3 ADD_ERRORプロシージャのシグネチャ3のパラメータ

パラメータ

説明

p_error_code

共有コンポーネントのテキスト・メッセージの名前。

p_additional_info

エラーがエラー・ページに表示される場合に必要なその他のエラー情報。

p0からp9

テキスト・メッセージに定義された%0から%9までのプレースホルダの値。

p_escape_placeholders

TRUEに設定すると、p0からp9で指定された値はsys.htf.escape_scでエスケープされてから、テキスト・メッセージのプレースホルダを置換します。FALSEに設定すると、値はエスケープされません。

p_display_location

エラー・メッセージの表示位置を指定します。p_display_locationに定義された定数を使用します。「結果の型に使用される定数および属性」を参照してください。

p_page_item_name

apex_error.c_inline_with_fieldまたはapex_error.c_inline_with_field_and_notifが表示位置として使用されている場合に強調表示される、現在のページのページ・アイテム名。

例

この例では、テキスト・メッセージに格納されているカスタム・エラー・メッセージをエラー・スタックに追加する方法を示しています。P5_CUSTOMER_IDアイテムがページ上で強調表示されます。エラー・メッセージは通知にインラインで表示されます。この例は、検証または処理の際に使用できます。

apex_error.add_error (
p_error_code       => 'INVALID_CUSTOMER_ID',
p0                 => l_customer_id,
p_display_location => apex_error.c_inline_with_field_and_notif,
p_page_item_name   => 'P5_CUSTOMER_ID' );

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

このプロシージャは、通知にインラインで表形式フォームのエラーを表示するために使用されるエラー・スタックにエラー・メッセージを追加します。検証または処理時にコールして、1つ以上のエラーをエラー・スタックに追加することができます。

注意:
このプロシージャは、Application Expressアプリケーションが最後の検証または処理を行う前にコールする必要があります。そのようにしないと、apex_error.c_on_error_pageの表示位置が指定されている場合を除いて、エラーは無視されます。

構文

APEX_ERROR.ADD_ERROR (
p_message          in varchar2,
p_additional_info  in varchar2 default null,
p_display_location in varchar2,
p_region_id        in number,
p_column_alias     in varchar2 default null,
p_row_num          in number );

パラメータ

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

表9-4 ADD_ERRORプロシージャのシグネチャ4のパラメータ

パラメータ

説明

p_message

表示されるエラー・メッセージ

p_additional_info

エラーがエラー・ページに表示される場合に必要なその他のエラー情報。

p_display_location

エラー・メッセージの表示位置を指定します。定数apex_error.c_inline_with field またはapex_error.c_inline_with_field_and_notifを使用します。「結果の型に使用される定数および属性」を参照してください。

p_region_id

現在ページの表形式フォーム・リージョンのID。IDは、ビューAPEX_APPLICATION_PAGE_REGIONSから読み取ることができます。

p_column_alias

apex_error.c_inline_with_fieldまたはapex_error.c_inline_with_field_and_notifが表示位置として使用されている場合に強調表示される、p_region_idに定義された表形式フォームの列エイリアス名。

p_row_num

エラーが発生した表形式フォームの行数。

例

この例では、列CUSTOMER_IDが強調表示されている、表形式フォームのカスタム・エラー・メッセージをエラー・スタックに追加する方法を示しています。エラー・メッセージは通知にインラインで表示されます。この例は、検証または処理の際に使用できます。

apex_error.add_error (
p_message          => 'Invalid Customer ID!',
p_display_location => apex_error.c_inline_with_field_and_notif,
p_region_id        => l_region_id,
p_column_alias     => 'CUSTOMER_ID',
p_row_num          => l_row_num );

ADD_ERRORプロシージャのシグネチャ5

このプロシージャは、テキストを共有コンポーネントで定義したとおりに表示するために使用される、表形式のフォームのエラー・スタックにエラー・メッセージを追加します。このエラー・メッセージはすべての表示位置に表示できます。検証または処理時にコールして、1つ以上のエラーをエラー・スタックに追加することができます。

注意:
このプロシージャは、Application Expressアプリケーションが最後の検証または処理を行う前にコールする必要があります。そのようにしないと、apex_error.c_on_error_pageの表示位置が指定されている場合を除いて、エラーは無視されます。

構文

APEX_ERROR.ADD_ERROR (
p_error_code          in varchar2,
p0                    in varchar2 default null,
p1                    in varchar2 default null,
p2                    in varchar2 default null,
p3                    in varchar2 default null,
p4                    in varchar2 default null,
p5                    in varchar2 default null,
p6                    in varchar2 default null,
p7                    in varchar2 default null,
p8                    in varchar2 default null,
p9                    in varchar2 default null,
p_escape_placeholders in boolean  default true,
p_additional_info     in varchar2 default null,
p_display_location    in varchar2,
p_region_id           in number,
p_column_alias        in varchar2 default null,
p_row_num             in number );

パラメータ

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

表9-5 ADD_ERRORプロシージャのシグネチャ5のパラメータ

パラメータ

説明

p_error_code

共有コンポーネントのテキスト・メッセージの名前。

p0からp9

テキスト・メッセージに定義された%0から%9までのプレースホルダの値。

p_escape_placeholders

TRUEに設定すると、p0からp9で指定された値はsys.htf.escape_scでエスケープされてから、テキスト・メッセージのプレースホルダを置換します。FALSEに設定すると、値はエスケープされません。

p_additional_info

エラーがエラー・ページに表示される場合に必要なその他のエラー情報。

p_display_location

エラー・メッセージの表示位置を指定します。p_display_locationに定義された定数を使用します。「結果の型に使用される定数および属性」を参照してください。

p_region_id

現在ページの表形式フォーム・リージョンのID。IDは、ビューAPEX_APPLICATION_PAGE_REGIONSから読み取ることができます。

p_column_alias

apex_error.c_inline_with_fieldまたはapex_error.c_inline_with_field_and_notifが表示位置として使用されている場合に強調表示される、p_region_idに定義された表形式フォームの列エイリアス名。

p_row_num

エラーが発生した表形式フォームの行数。

例

この例では、テキスト・メッセージに格納されているカスタム・エラー・メッセージをエラー・スタックに追加する方法を示しています。表形式フォームのCUSTOMER_ID列が強調表示されます。エラー・メッセージは通知にインラインで表示されます。この例は、検証または処理の際に使用できます。

apex_error.add_error (
p_error_code       => 'INVALID_CUSTOMER_ID',
p0                 => l_customer_id,
p_display_location => apex_error.c_inline_with_field_and_notif,
p_region_id        => l_region_id,
p_column_alias     => 'CUSTOMER_ID',
p_row_num          => l_row_num );

AUTO_SET_ASSOCIATED_ITEMプロシージャ

このプロシージャは関連付けられたページ・アイテムまたは表形式フォームの列を、p_error.ora_sqlerrmで指定されている制約に基づいて自動的に設定します。このプロシージャの機能は次のとおりです。

- schema.constraintパターンを検索して、制約を特定します。

- P、U、RおよびCタイプの制約のみをサポートします。

- タイプCの制約の場合(制約のチェック)、プロシージャは式を解析して制約式で使用されているそれらの列を特定します。

- これらの列を使用すると、プロシージャはその列に基づいて、最初に表示されるページ・アイテムまたは表形式フォームの列を取得し、それを関連するp_error_result.page_item_nameまたはp_error_result.column_aliasとして設定します。

- ページ・アイテムまたは表形式フォームの列が見つかった場合、p_error_result.display_locationがapex_error.c_inline_with_field_and_notifに設定されます。

構文

APEX_ERROR.AUTO_SET_ASSOCIATED_ITEM (
p_error_result in out nocopy t_error_result,
p_error        in            t_error );

パラメータ

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

表9-6 AUTO_SET_ASSOCIATED_ITEMプロシージャのパラメータ

パラメータ

説明

p_error_result

エラー処理ファンクションの結果の変数。

p_error

エラー処理ファンクションのp_errorパラメータ。

例

このプロシージャの使用方法の例は、「エラー処理ファンクションの例」を参照してください。

EXTRACT_CONSTRAINT_NAMEファンクション

このファンクションは、p_error.ora_sqlerrmに含まれる制約名を抽出します。制約は、パターンschema.constraintと一致する必要があります。

構文

APEX_ERROR.EXTRACT_CONSTRAINT_NAME (
p_error          in t_error,
p_include_schema in boolean default false )
return varchar2;

パラメータ

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

表9-7 EXTRACT_CONSTRAINT_NAMEファンクションのパラメータ

パラメータ

説明

p_error

エラー処理ファンクションのp_errorパラメータ。

p_include_schema

TRUEに設定すると、結果の先頭にはスキーマ名が付きます。たとえば、HR.DEMO_PRODUCT_INFO_PKのようになります。FALSEに設定すると、定数の名前だけが戻されます。

例

このプロシージャの使用方法の例は、「エラー処理ファンクションの例」を参照してください。

GET_ARIA_ERROR_ATTRIBUTESファンクション

このファンクションは、アイテムがページのエラーに関連付けられている場合は特に、アイテムのスクリーンショット・リーダー・ユーザビリティを向上させる上で、プラグイン開発者にとって役に立ちます。このファンクションは、メイン・フォーム要素が出力される、アイテムのレンダリング時にコールされます。戻されるWAI-ARIA属性は次のとおりです。

- aria-invalid="true" - ページ・アイテムの現在の値が無効であることを示します。ユーザーがページ・アイテムにフォーカスすると、スクリーン・リーダーによって「無効なエントリ」が通知されます。

- aria-describedby="[page_item_name]_error" - この属性値は、アイテムの関連付けられたエラー・メッセージを含む<div>タグのIDと組み合わせて、ユーザーがページ・アイテムにフォーカスすると、スクリーン・リーダーによって実際のエラーが通知されるようにできます。

注意:
これらの属性は、スクリーン・リーダーのユーザビリティを向上させるだけなので、属性は、現在のセッションがスクリーン・リーダー・モードで実行されている場合にしか戻されません。

構文

function get_aria_error_attributes (
p_item_name     in varchar2 )
return varchar2;

パラメータ

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

表9-8 GET_ARIA_ERROR_ATTRIBUTESファンクションのパラメータ

パラメータ

説明

p_item_name

ページ・アイテムの名前。この値は、1番目のパラメータとしてすべてのアイテム・プラグインのレンダリング・ファンクション・コールバックに渡される、apex_plugin.t_page_itemレコード型の名前属性を使用して利用できます。

例

次の例に、アイテム・プラグインのレンダリング・ファンクション・コールバックの処理時に、SELECT要素のレンダリングでこのファンクションを使用する方法について示します。このファンクションは、ページ・アイテムで、それに関連付けられたエラーが発生した場合や、ユーザーがスクリーン・リーダー・モードで実行している場合に、追加の属性を戻します。

...
l_name := apex_plugin.get_input_name_for_page_item(false);
sys.htp.prn('<select name="'||l_name||'" id="'||p_item.name||'" '||
apex_error.get_aria_error_attributes(p_item.name)||'>');
...

GET_FIRST_ORA_ERROR_TEXTファンクション

このファンクションは、p_error.ora_sqlerrmに格納されている最初のエラー・メッセージのテキストを戻します。p_error_ora_sqlerrmに値が含まれていない場合、NULLが戻されます。

構文

APEX_ERROR.GET_FIRST_ORA_ERROR_TEXT (
p_error            in t_error,
p_include_error_no in boolean default false )
return varchar2;

パラメータ

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

表9-9 GET_FIRST_ORA_TEXTファンクションのパラメータ

パラメータ

説明

p_error

エラー処理ファンクションのp_errorパラメータ。

p_include_error_no

TRUEに設定すると、戻されたエラー・メッセージにはORA-xxxxが含まれます。FALSEに設定すると、エラー・メッセージのテキストだけが戻されます。

例

このプロシージャの使用方法の例は、「エラー処理ファンクションの例」を参照してください。

INIT_ERROR_RESULTファンクション

このファンクションは、p_errorに格納された値で初期化されたt_error_result型を戻します。

注意:
このファンクションは、今後t_error_resultに変更があった場合でも、初期化に互換性があるかを確認するために使用する必要があります。

構文

APEX_ERROR.INIT_ERROR_RESULT (
p_error  in t_error)
return   t_error_result;

パラメータ

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

表9-10 INT_ERROR_RESULTファンクションのパラメータ

パラメータ

説明

p_error

エラー処理ファンクションのp_errorパラメータ。

例

このファンクションの使用方法の例は、「エラー処理ファンクションの例」を参照してください。

10 APEX_ESCAPE

APEX_ESCAPEパッケージには、データがそれ以降の処理に適するように、文字列内の特殊文字をエスケープする機能が用意されています。

- 定数

- HTMLファンクション

- HTML_ATTRIBUTEファンクション

- HTML_TRUNCファンクション

- HTML_WHITELISTファンクション

- JS_LITERALファンクション

- JSONファンクション

- LDAP_DNファンクション

- LDAP_SEARCH_FILTERファンクション

- NOOPファンクション

- REGEXPファンクション

- SET_HTML_ESCAPING_MODEプロシージャ

定数

APEX_ESCAPEパッケージでは、次の定数が使用されます。

c_ldap_dn_reserved_chars constant varchar2(8) := '"+,;<=>\';
c_ldap_search_reserved_chars constant varchar2(5) := '*()\/';
c_html_whitelist_tags constant varchar2(255) := '<h1>,</h1>,<h2>,</h2>,<h3>,</h3>,<h4>,</h4>,<p>,</p>,<b>,</b>,<strong>,</strong>,<i>,</i>,<ul>,</ul>,<ol>,</ol>,<li>,</li>,<br />,<hr/>';

HTMLファンクション

このファンクションは、HTML環境でコンテキストが変更される可能性のある文字をエスケープします。これは、既知のsys.htf.escape_scの拡張バージョンです。

ファンクションの結果は、apex_escape.set_html_escaping_modeを使用して定義されるエスケープ・モードによって異なります。デフォルトのエスケープ・モードは「拡張」ですが、これは、手動でset_html_escaping_modeをコールするか、アプリケーションのセキュリティ属性「HTMLエスケープ・モード」を「基本」に設定することで上書きできます。モードが「基本」の場合、ファンクションはsys.htf.escape_scと同様に動作します。そうでない場合は、次のルールが適用されます。

次の表(表10-1)に、このファンクションによって変換されるASCII文字と、その文字がエスケープされた値を示します。

表10-1 変換されるASCII文字がエスケープされた値

実際のASCI文字

戻されるエスケープされた文字

&

&amp;

"

&quot;

<

&lt;

>

&gt;

'

&#x27;

/

&#x2F;

構文

APEX_ESCAPE.HTML (
p_string IN VARCHAR2 )
return VARCHAR2;

パラメータ

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

表10-2 HTMLファンクションのパラメータ

パラメータ

説明

p_string

エスケープされる文字列のテキスト

例

この例では、基本(B)モードおよび拡張(E)モードでエスケープをテストします。

declare
procedure eq(p_str1 in varchar2,p_str2 in varchar2)
is
begin
if p_str1||'.' <> p_str2||'.' then
raise_application_error(-20001,p_str1||' <> '||p_str2);
end if;
end eq;
begin
apex_escape.set_html_escaping_mode('B');
eq(apex_escape.html('hello &"<>''/'), 'hello &amp;&quot;&lt;&gt;''/');
apex_escape.set_html_escaping_mode('E');
eq(apex_escape.html('hello &"<>''/'), 'hello
&amp;&quot;&lt;&gt;&#x27;&#x2F;');
end;

参照:
「HTML_TRUNCファンクション」、「HTML_WHITELISTファンクション」、「HTML_ATTRIBUTEファンクション」、「SET_HTML_ESCAPING_MODEプロシージャ」

HTML_ATTRIBUTEファンクション

このファンクションを使用すると、HTMLのエンティティ属性の値がエスケープされます。これによって、英数字以外および「,」、「.」、「-」、「_」のすべての文字が、16進数でエスケープされます。

構文

APEX_ESCAPE.HTML_ATTRIBUTE (
p_string IN VARCHAR2 )
return VARCHAR2;

パラメータ

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

表10-3 HTML_ATTRIBUTEファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

例

「HTML_TRUNCファンクション」を参照してください。

参照:
「HTML_TRUNCファンクション」、「HTMLファンクション」、「HTML_WHITELISTファンクション」、「SET_HTML_ESCAPING_MODEプロシージャ」

HTML_TRUNCファンクション

HTML_TRUNCファンクションは、HTMLをエスケープし、戻される文字列をp_length文字に制限します。このファンクションは、入力CLOBの最初のp_length文字を戻し、それらの文字をエスケープします。このファンクションは、入力CLOBが大きすぎてvarchar2変数に適合できず、入力CLOBの一部の表示のみで十分な場合に使用できます。

構文

APEX_ESCAPE.HTML_TRUNC (
p_string IN CLOB,
p_length IN NUMBER DEFAULT 4000 )
return VARCHAR2;

パラメータ

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

表10-4 HTML_TRUNCファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

p_length

エスケープされるp_stringの文字数。

例

この例では、タイトルおよびテキスト本文のHTMLリストを生成します。HTMLのエンティティ属性はHTML_ATTRIBUTEを使用して、通常のテキストはHTMLおよびHTML_TRUNCを使用してエスケープされます。

begin
htp.p('<ul>');
for l_data in ( select title, cls, body
from my_topics )
loop
sys.htp.p('<li><span class="'||
apex_escape.html_attribute(l_data.cls)||'">'||
apex_escape.html(l_data.title)||'</span>');
sys.htp.p(apex_escape.html_trunc(l_data.body));
sys.htp.p('</li>');
end loop;
htp.p('</ul>');
end;

参照:
「HTML_ATTRIBUTEファンクション」、「HTMLファンクション」、「HTML_WHITELISTファンクション」、「SET_HTML_ESCAPING_MODEプロシージャ」

HTML_WHITELISTファンクション

HTML_WHITELISTファンクションは、ホワイトリストに指定されているタグを除き、入力テキストのすべての文字でHTMLエスケープを実行します。このファンクションは、入力テキストに単純なHTMLマークアップが含まれる場合に、攻撃者によってクロスサイト・スクリプティングを目的とした悪質なタグが使用されないようにするために有用です。

構文

APEX_ESCAPE.HTML_WHITELIST (
p_html IN VARCHAR2,
p_whitelist_tags IN VARCHAR2 DEFAULT c_html_whitelist_tags )
return VARCHAR2;

パラメータ

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

表10-5 HTML_WHITELISTファンクションのパラメータ

パラメータ

説明

p_html

フィルタ処理されるテキスト文字列。

p_whitelist_tags

p_htmlに保持される、カンマで区切られたタグのリスト。

例

次の例に、HTML_WHITELISTを使用して、ホワイトリストのタグを保持しながら、文字列から不要なHTMLマークアップを排除する方法を示します。

begin     sys.htp.p(apex_escape.html_whitelist(         '<h1>Hello<script>alert("XSS");</script></h1>')); end;

参照:
「HTML_ATTRIBUTEファンクション」、「HTMLファンクション」、「HTML_TRUNCファンクション」、「SET_HTML_ESCAPING_MODEプロシージャ」

JS_LITERALファンクション

JS_LITERALファンクションは、JavaScript文字列のエスケープおよび(オプションで)クォートを行います。このファンクションは、影響を受ける文字を\xHHまたは\uHHHHと同等のものに置換します。結果は、<script>タグまたはインライン(「javascript:xxx」)内のJavaScriptコードに挿入できます。影響を受けない文字には、aからz、AからZ、0から9、コンマ「,」、ピリオド「.」および下線「_」が含まれます。

構文

APEX_ESCAPE.JS_LITERAL (
p_string IN VARCHAR2,
p_quote  IN VARCHAR2 DEFAULT "" )
return VARCHAR2;

パラメータ

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

表10-6 JS_LITERALファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

p_quote

NULL以外の場合、この文字列は結果の左および右に配置されます。引用文字は、一重引用符または二重引用符である必要があります。

例

ここでは、JS_LITERALを使用して、l_string変数内の特殊文字をエスケープする方法を示します。

declare
l_string varchar2(4000) := 'O''Brien';
begin
sys.htp.p('<script>'||
'alert('||apex_escape.js_literal(l_string)||');'||'</script>');
end;

JSONファンクション

このファンクションは、特殊文字をすべてエスケープしたp_stringを戻します。

構文

APEX_ESCAPE.JSON (
p_string  IN VARCHAR2 )
RETURN VARCHAR2;

パラメータ

表10-7 JSONファンクションのパラメータ

パラメータ

説明

p_string

エスケープされる文字列。

戻り値/発生するエラー

表10-8 JSONファンクションの戻り値

戻り値

説明

VARCHAR2

エスケープされた文字列。

例

次の例では、{ "name": "O\u0027Brien"}と出力します

declare
l_string varchar2(4000) := 'O''Brien';
begin
sys.htp.p('{ "name": "'||apex_escape.json(l_string)||'"}');
end;

LDAP_DNファンクション

LDAP_DNファンクションは、RFC 4514に従って、LDAP識別名の予約文字をエスケープします。RFCでは、"+,;<=>\は予約文字であると説明されています(p_reserved_charsを参照)。これらは、バックスラッシュによってエスケープされます(「becomes \」など)。印字できない文字ASCII 0 - 31およびコード> 127を持つ文字(p_escape_non_asciiを参照)は、\xx(xxは16進文字コード)としてエスケープされます。文字列の先頭または末尾のスペース文字および先頭の#も、バックスラッシュでエスケープされます。

構文

APEX_ESCAPE.LDAP_DN (
p_string IN VARCHAR2,
p_reserved_chars IN VARCHAR2 DEFAULT c_ldap_dn_reserved_chars,
p_escaped_non_ascii IN BOOLEAN DEFAULT TRUE )
return VARCHAR2;

パラメータ

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

表10-9 LDAP_DNファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

p_reserved_chars

p_stringに含まれる場合に、バックスラッシュでエスケープされる文字のリスト。

p_escaped_non_ascii

TRUEの場合、p_stringでASCII 127を超える文字はバックスラッシュでエスケープされます。これはRFC 4514およびRFC 2253でサポートされますが、古いLDAPサーバーおよびMicrosoft ADでは、エラーが発生することがあります。

例

この例では、l_nameの文字をエスケープし、結果をl_escapedに移動します。

declare
l_name varchar2(4000) := 'Joe+User';
l_escaped varchar2(4000);
begin
l_escaped := apex_escape.ldap_dn(l_name);
htp.p(l_name||' becomes '||l_escaped);
end;

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

LDAP_SEARCH_FILTERファンクション

LDAP_SEARCH_FILTERファンクションは、RFC 4515に従って、LDAP検索フィルタの予約文字をエスケープします。RFCでは、*()\/は予約文字であると説明されています(p_reserved_charsを参照)。これらの印字できない文字(ASCII 0 - 31)およびコード> 127を持つ文字(p_escape_non_asciiを参照)は、\xx(xxは16進文字コード)としてエスケープされます。

構文

APEX_ESCAPE.LDAP_SEARCH_FILTER (
p_string              IN VARCHAR2,
p_reserved_chars    IN VARCHAR2 DEFAULT c_ldap_search_reserved_chars,
p_escape_non_ascii IN BOOLEAN DEFAULT TRUE )
return VARCHAR2;

パラメータ

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

表10-10 LDAP_SEARCH_FILTERファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

p_reserved_chars

p_stringに含まれる場合に、\xxでエスケープされる文字のリスト(\xxは、文字のASCIIの16進コードを表します)。

p_escape_non_ascii

TRUEの場合、p_stringでASCII 127を超える文字は\xxでエスケープされます(xxは、その文字のASCIIの16進コードを表します)。これはRFC 4514でサポートされますが、古いLDAPサーバーおよびMicrosoft ADでは、エラーが発生することがあります。

例

この例では、l_nameのテキストをエスケープし、結果をl_escapedに移動します。

declare
l_name varchar2(4000) := 'Joe*User';
l_escaped varchar2(4000);
begin
l_escaped := apex_escape.ldap_search_filter(l_name);
htp.p(l_name||' becomes '||l_escaped);
end;

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

NOOPファンクション

p_stringを変更せずに戻します。このファンクションは、SQLインジェクションのdbms_assert.noopと同様、インジェクションの自動検出テストをサイレントで実行する場合に使用します。

構文

APEX_ESCAPE.NOOP (
p_string IN VARCHAR2)
return VARCHAR2 deterministic;

パラメータ

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

表10-11 APEX_ESCAPE.NOOPファンクションのパラメータ

パラメータ

説明

p_string

入力テキスト文字列。

例

次の例に、NOOPを使用して、テキストをエスケープしないという開発者の意図を明示的に表す方法を示します。

begin
sys.htp.p(apex_escape.noop('Cats & Dogs'));
end;

REGEXPファンクション

このファンクションは、正規表現のコンテキストを変更する可能性がある文字をエスケープします。ユーザー入力を保護するために使用してください。次に、このファンクションによってバックスラッシュ(\)でエスケープされるASCII文字を示します。

\.^$*+-?()[]{|

構文

APEX_ESCAPE.REGEXP (
p_string IN VARCHAR2);

パラメータ

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

表10-12 APEX_ESCAPE.REGEXPファンクションのパラメータ

パラメータ

説明

p_string

エスケープするテキスト。

例

次の例では、必ずMary-Annの特殊文字"-"がエスケープされ、正規表現エンジンによって無視されます。

declare
l_subscribers varchar2(4000) := 'Christina,Hilary,Mary-Ann,Joel';
l_name varchar2(4000) := 'Mary-Ann';
begin
if regexp_instr(l_subscribers,'(^|,)'|| apex_escape.regexp(l_name)||'($|,)')>0
then
sys.htp.p('found');
else
sys.htp.p('not found')
endif;
end

SET_HTML_ESCAPING_MODEプロシージャ

SET_HTML_ESCAPING_MODEプロシージャは、wwv_flow_escape.htmlのHTMLエスケープ・モードを構成します。

構文

APEX_ESCAPE.SET_HTML_ESCAPING_MODE (
p_mode IN VARCHAR2);

パラメータ

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

表10-13 APEX_ESCAPE.SET_HTML_ESCAPING_MODEプロシージャのパラメータ

パラメータ

説明

p_mode

Bと等しい場合は、sys.htf.escape_scなどの基本的なエスケープを実行します。Eと等しい場合は、拡張エスケープを実行します。

例

例は、「HTMLファンクション」を参照してください。

参照:
「HTML_WHITELISTファンクション」、「HTMLファンクション」、「HTML_TRUNCファンクション」、「HTML_ATTRIBUTEファンクション」

11 APEX_INSTANCE_ADMIN

APEX_INSTANCE_ADMINパッケージには、Oracle Application Expressのランタイム環境を管理するためのユーティリティが用意されています。APEX_INSTANCE_ADMINパッケージを使用すると、電子メール設定、Oracleウォレット設定、レポート出力設定の取得および設定を行ったり、スキーマとワークスペースのマッピングを管理できます。APEX_INSTANCE_ADMINは、SYS、SYSTEM、APEX_050000のデータベース・ユーザーに加え、ロールAPEX_ADMINISTRATOR_ROLEが付与されているすべてのデータベース・ユーザーが実行できます。

- 使用可能なパラメータ値

- ADD_SCHEMAプロシージャ

- ADD_WORKSPACEプロシージャ

- CREATE_SCHEMA_EXCEPTIONプロシージャ

- FREE_WORKSPACE_APP_IDSプロシージャ

- GET_PARAMETERファンクション

- GET_SCHEMASファンクション

- GET_WORKSPACE_PARAMETER

- REMOVE_APPLICATIONプロシージャ

- REMOVE_SAVED_REPORTSプロシージャ

- REMOVE_SCHEMAプロシージャ

- REMOVE_SCHEMA_EXCEPTIONプロシージャ

- REMOVE_SCHEMA_EXCEPTIONSプロシージャ

- REMOVE_SUBSCRIPTIONプロシージャ

- REMOVE_WORKSPACEプロシージャ

- REMOVE_WORKSPACE_EXCEPTIONSプロシージャ

- RESERVE_WORKSPACE_APP_IDSプロシージャ

- RESTRICT_SCHEMAプロシージャ

- SET_LOG_SWITCH_INTERVALプロシージャ

- SET_WORKSPACE_PARAMETER

- SET_PARAMETERプロシージャ

- SET_WORKSPACE_CONSUMER_GROUPプロシージャ

- TRUNCATE_LOGプロシージャ

- UNRESTRICT_SCHEMAプロシージャ

使用可能なパラメータ値

表11-1に、APEX_INSTANCE_ADMINパッケージ内で設定可能なすべてのパラメータ(電子メール、ウォレット、レポート出力用のパラメータなど)の値を示します。

表11-1 使用可能なパラメータ

パラメータ名

説明

ACCOUNT_LIFETIME_DAYS

アカウントが期限切れになるまでの、エンド・ユーザー・アカウント・パスワードの最大有効日数。

ALLOW_DB_MONITOR

Yに設定すると、データベース監視が有効化されます。Nに設定すると、無効化されます。

ALLOW_HOSTNAMES

設定すると、URLのホスト名部分にこの値が含まれる場合、ユーザーはアプリケーションにしかナビゲートできません。インスタンス管理者は、ワークスペース・レベルでさらに詳細な値を構成できます。

ALLOW_PUBLIC_FILE_UPLOAD

Yに設定すると、ファイルのアップロードはユーザー認証がなくても許可されます。デフォルトのNに設定すると、許可されません。

ALLOW_RAS

このパラメータは、Oracle Database 12cを実行している場合にのみサポートされます。

Yに設定すると、アプリケーションに対してReal Application Securityのサポートが有効になります。N (デフォルト)に設定すると、Real Application Securityを使用できません。

ALLOW_REST

デフォルトのYに設定すると、開発者はレポート・リージョンをRESTfulサービスとして公開できます。Nに設定すると、許可されません。

APEX_BUILDER_AUTHENTICATION

内部ビルダー・アプリケーションの認証スキームを制御します。有効なパラメータ値は次のとおりです。

- APEX - Application Expressワークスペース・アカウント認証(デフォルト)

- DB - データベース・アカウント認証

- HEADER - 認証に基づいたHTTPヘッダー変数

- SSO - Oracle Single Sign-On認証

- LDAP - LDAP認証

APEX_REST_PATH_PREFIX

Application Expressで公開される組込みRESTfulサービスへのアクセスに使用されるURIパス接頭辞を制御します。たとえば、#APP_IMAGES#トークンを使用して静的アプリケーション・ファイルを参照するための組込みRESTfulサービスがあります。デフォルトの接頭辞(r)がユーザー定義のRESTfulサービスと競合する場合、このプリファレンスを調整して競合を回避します。

APPLICATION_ACTIVITY_LOGGING

アプリケーション・アクティビティ・ログのインスタンス全体の設定を制御します([A]常に使用、[N]使用しない、[U]アプリケーションの設定を使用)。

APPLICATION_ID_MAX

Webシートまたはデータベース・アプリケーションの使用可能な最大ID。

APPLICATION_ID_MIN

Webシートまたはデータベース・アプリケーションの使用可能な最小ID。

AUTOEXTEND_TABLESPACES

デフォルトのYに設定すると、プロビジョニングされた表領域は最大サイズまで自動拡張します。Nに設定すると、表領域は自動拡張しません。

BIGFILE_TABLESPACES_ENABLED

Yに設定すると、Oracle Application Expressを介してプロビジョニングされる表領域は、bigfile表領域として作成されます。Nに設定すると、表領域は、スモールファイル表領域として作成されます。

CHECKSUM_HASH_FUNCTION

URLチェックサム用の一方向ハッシュの作成に使用されるアルゴリズムを定義します。有効な値は、MD5 (非推奨)、SH1 (SHA-1)、SH256 (SHA-2、256ビット)、SH384 (SHA-2、384ビット)、SH512 (SHA-2、512ビット)およびnullです。SHA-2アルゴリズムは、Oracle Database Release 12g以上でのみ使用できます。null値は、使用可能な最もセキュアなアルゴリズムと評価され、デフォルトです。

CHECK_FOR_UPDATES

Nに設定すると、個々の開発者が指定したプリファレンスに関係なく、Oracle Application ExpressおよびOracle REST Data Servicesの製品更新のチェックがインスタンス全体で無効になります。デフォルトはYです。

DELETE_UPLOADED_FILES_AFTER_DAYS

アプリケーション・エクスポート・ファイル、Webシート・エクスポート・ファイル、スプレッドシート・データ・ロード・ファイルなどのアップロードされたファイルは、この数字の日数を過ぎると自動的に削除されます。デフォルトは14です。

DISABLE_ADMIN_LOGIN

Yに設定すると、管理サービスは無効化されます。デフォルトのNに設定すると、無効化されません。

DISABLE_WORKSPACE_LOGIN

Yに設定すると、ワークスペース・ログインは無効化されます。デフォルトのNに設定すると、ログインは無効化されません。

DISABLE_WS_PROV

Yに設定すると、ワークスペースの作成は、電子メール通知経由で送信されたリクエストに対して無効化されます。デフォルトのNに設定すると、無効化されません。

EMAIL_IMAGES_URL

Application Expressインスタンスのイメージ・ディレクトリへの完全なURLを指定します(イメージ・ディレクトリの後ろに末尾のスラッシュを含みます)。例: http://your_server/i/

この設定は、Oracle Application Expressシステム生成の電子メールに使用されます。

EMAIL_INSTANCE_URL

Oracle Application ExpressインスタンスへのURLを指定します(データベース・アクセス記述子の後に末尾のスラッシュを含めます)。例: http://your_server/pls/apex/

この設定は、Oracle Application Expressシステム生成の電子メールに使用されます。

ENABLE_TRANSACTIONAL_SQL

デフォルトのYに設定すると、トランザクションSQLコマンドがこのインスタンスに対して有効化されます。Nに設定すると、有効化されません。

ENCRYPTED_TABLESPACES_ENABLED

Yに設定すると、Oracle Application Expressを介してプロビジョニングされる表領域は、暗号化された表領域として作成されます。Nに設定すると、表領域は暗号化されません。

EXPIRE_FIND_USER_ACCOUNTS

Yに設定すると、Application Expressアカウントの有効期限が有効化されます。Nに設定すると、有効化されません。

HTTP_ERROR_STATUS_ON_ERROR_PAGE_ENABLED

APEX_INSTANCE_ADMIN.SET_PARAMETERプロシージャと組み合わせて使用します。

N (デフォルト)に設定すると、Oracle Application Expressでは、すべての未処理エラーに関するエラー・ページがエンドユーザーに表示されます。Yに設定すると、Application Expressエンジンで未処理エラーが見つかった場合、HTTP 400ステータスがエンドユーザーのクライアント・ブラウザに戻されます。

HTTP_RESPONSE_HEADERS

改行(chr(10))で区切られた、httpレスポンス・ヘッダーのリスト。Application Expressでは、ページのレンダリング前にこれらのヘッダーが各リクエストに書き込まれます。ヘッダー内の置換文字列#CDN#は、Application Expressで認識されているコンテンツ配信ネットワークで置き換えられます。

HTTP_STS_MAX_AGE

REQUIRE_HTTPSは、このパラメータが関連する場合、Aに設定する必要があります。Application Expressでは、HTTP_STS_MAX_AGEが0 (ゼロ)より大きい値である場合、max-age=<value>を指定してStrict-Transport-SecurityヘッダーをHTTPSリクエストで生成します。リクエスト・プロトコルがHTTPの場合、リクエストを処理するかわりに、Application ExpressはHTTPS URLにリダイレクトします。

INBOUND_PROXIES

プロキシ・サーバー(これを介してリクエストが到達する)のIPアドレスのカンマ区切りリスト。

LOGIN_THROTTLE_DELAY

ログイン失敗後の、時間の増加(秒単位)を決定するフラグ。

LOGIN_THROTTLE_METHODS

このメソッドは、ログインの失敗数をカウントします。USERNAME_IP、USERNAME, IPのコロン区切りのリストです。

MAX_SESSION_IDLE_SEC

内部アプリケーションをアイドルにできる秒数。

MAX_SESSION_IDLE_SEC

内部アプリケーションをアイドルにできる秒数。

MAX_SESSION_LENGTH_SEC

内部アプリケーションのセッションが存在できる秒数。

MAX_SESSION_LENGTH_SEC

内部アプリケーションのセッションが存在できる秒数。

PASSWORD_ALPHA_CHARACTERS

パスワードの複雑性ルールに使用するアルファベット文字。アルファベット文字のデフォルトのリストは次のとおりです。

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

PASSWORD_HASH_FUNCTION

ワークスペース・ユーザー・パスワード用の一方向ハッシュの作成に使用されるアルゴリズムを定義します。有効な値は、MD5 (非推奨)、SH1 (SHA-1)、SH256 (SHA-2、256ビット)、SH384 (SHA-2、384ビット)、SH512 (SHA-2、512ビット)およびnullです。SHA-2アルゴリズムは、Oracle Database Release 12g以上でのみ使用できます。null値は、使用可能な最もセキュアなアルゴリズムと評価され、デフォルトです。

PASSWORD_HASH_ITERATIONS

PASSWORD_HASH_FUNCTIONの反復数(デフォルトは10000)を定義します。

PASSWORD_HISTORY_DAYS

アカウントの期限が切れるまでに、開発者または管理者アカウントのパスワードを使用できる最大日数を定義します。デフォルト値は45日です。

PASSWORD_PUNCTUATION_CHARACTERS

パスワードの複雑性ルールに使用する記号。記号のデフォルトのリストには、!"#$%&()``*+,-/:;<=>?_などがあります。

PLSQL_EDITING

デフォルトのYに設定すると、SQLワークショップ・オブジェクト・ブラウザが有効化され、ユーザーはPL/SQLを編集およびコンパイルすることができます。Nに設定すると、ユーザーは許可されません。

PRINT_BIB_LICENSED

標準サポートまたは拡張サポートのいずれかを指定します。拡張サポートの場合は、Oracle BI Publisherの使用許諾が必要です。有効な値は、次のとおりです。

- APEX_LISTENER - Oracle Rest Data Servicesが必要です

- ADVANCED - Oracle BI Publisherが必要です

- STANDARD

PRINT_SVR_HOST

プリント・サーバー変換エンジンのホスト・アドレス(localhostなど)を指定します。プリント・サーバーが別の場所にインストールされている場合は、対応するホスト・アドレスを入力します。

PRINT_SVR_PORT

プリント・サーバー・エンジンのポート(8888など)を定義します。値は、正の整数である必要があります。

PRINT_SVR_PROTOCOL

有効な値は、次のとおりです。

- http

- https

PRINT_SVR_SCRIPT

プリント・サーバー・エンジンのスクリプトを定義します。次に例を示します。

/xmlpserver/convert

QOS_MAX_SESSION_KILL_TIMEOUT

QOS_MAX_SESSION_REQUESTSに達した場合に、アクティブで古いセッションが存続できる秒数。LAST_CALL_ETがQOS_MAX_SESSION_KILL_TIMEOUTより大きい、最も古いデータベース・セッションが中断されます。

QOS_MAX_SESSION_REQUESTS

このワークスペースに関連付けられた1つのセッションに許容された同時リクエストの数。

QOS_MAX_SESSION_REQUESTS

このワークスペースに関連付けられた1つのセッションに許容された同時リクエストの数。

QOS_MAX_WORKSPACE_REQUESTS

このワークスペースのセッションに許容された同時リクエストの数。

REQ_NEW_SCHEMA

Yに設定すると、新しいワークスペース・リクエストに対する新しいスキーマのオプションが有効化されます。デフォルトのNに設定すると、オプションは無効化されます。

REQUIRE_HTTPS

Application Expressインスタンス全体にHTTPSを強制する場合は、Aに設定します。Application Expressの開発アプリケーションおよび管理アプリケーション内でHTTPSを強制する場合は、Iに設定します。プロトコルがHTTPまたはHTTPSのいずれかである場合に、すべてのアプリケーションを使用できるようにするには、Nに設定します。アプリケーション・スキームのCookieのSecure属性を設定すると、開発者もアプリケーション・レベルでHTTPSを強制できます。

REQUIRE_HTTPS

Yに設定すると、Application Express開発アプリケーションおよび管理アプリケーション内の認証ページを、プロトコルがHTTPSである場合にのみ使用できます。Nに設定すると、プロトコルがHTTPまたはHTTPSである場合に、これらのアプリケーション・ページを使用できます。

REQUIRE_VERIFICATION_CODE

Yに設定すると、検証コードが表示され、このコードは、他のユーザーが新しいワークスペースをリクエストするときに必要になります。デフォルトのNに設定すると、検証コードは必要ありません。

RESTFULL_SERVICES_ENABLED

デフォルトのYに設定すると、RESTfulサービスの開発は有効化されます。Nに設定すると、RESTfulサービスは有効化されません。

RM_CONSUMER_GROUP

設定すると、これはすべてのページ・イベントに使用されるリソース・マネージャ・コンシューマ・グループです。さらに特殊なグループをワークスペース・レベルで構成できます。

SERVICE_REQUEST_FLOW

デフォルトのプロビジョニング・モードを決定します。デフォルトはMANUALです。

SERVICE_REQUESTS_ENABLED

デフォルトのYに設定すると、スキーマ、記憶域、終了に対するワークスペース・サービス・リクエストが有効化されます。Nに設定すると、これらのリクエストは無効化されます。

SMTP_FROM

割当てリクエストの承認や、パスワードのリセットなど、電子メールを作成する管理タスクに対する送信元アドレスを定義します。

有効な電子メール・アドレスを入力します。次に例を示します。

someone@somewhere.com

SMTP_HOST_ADDRESS

SMTPサーバーのサーバー・アドレスを定義します。別のサーバーをSMTPリレーとして使用する場合は、このパラメータをそのサーバーのアドレスに変更します。

デフォルト設定:

localhost

SMTP_HOST_PORT

メール・リクエスト用にSMTPサーバーが待機するポートを定義します。

デフォルト設定:

25

SMTP_PASSWORD

Application ExpressがSMTPサーバーに対して認証するために必要なパスワードを、パラメータSMTP_USERNAMEとともに定義します。

SMTP_TLS_MODE

Application Expressによって、SMTPサーバーへの暗号化された接続を開くかどうかを定義します。暗号化は、データベース・バージョン11.2.0.2以降でのみサポートされます。以前のデータベースのバージョンでは、接続は暗号化されません。

Nに設定すると、接続は暗号化されません(デフォルト)。

Yに設定すると、接続が暗号化されてからデータが送信されます。

STARTTLSの場合、Application ExpressはSMTPコマンドEHLO <SMTP_HOST_ADDRESS>およびSTARTTLSを送信してから接続を暗号化します。

SMTP_USERNAME

Application ExpressがSMTPサーバーに対して認証するために必要なユーザー名を定義します(デフォルトはnullです)。データベース・バージョン11.2.0.2以降では、Application ExpressはUTL_MAILのAUTHプロシージャを使用して認証を行います。このプロシージャはSMTPサーバーを使って認証モードをネゴシエートします。以前のデーターベース・バージョンでは、認証モードは常にAUTH LOGINです。SMTP_USERNAMEがnullの場合、認証は使用されません。

SQL_SCRIPT_MAX_OUTPUT_SIZE

個々のスクリプト結果で使用可能な最大許容サイズ。デフォルトは200000です。

STRONG_SITE_ADMIN_PASSWORD

デフォルトのYに設定すると、apex_adminパスワードは、デフォルトで設定された強力な複雑性ルールに準拠する必要があります。Nに設定すると、パスワードは強力な複雑性ルールに従う必要はありません。

SYSTEM_HELP_URL

開発環境内の「ヘルプ」リンクからアクセスするヘルプおよびドキュメントの場所。デフォルトは、http://apex.oracle.com/doc41です。

TRACING_ENABLED

Y (デフォルト)に設定すると、URLで&p_trace=YESを使用することで、「デバッグ」が有効化されているアプリケーションのサーバー側のデータベース・トレース・ファイルを生成することもできます。

Nに設定すると、トレース・ファイルを作成するリクエストは無視されます。

USERNAME_VALIDATION

ビルダー認証スキームがAPEXでない場合に、ユーザー名の検証に使用する正規表現。デフォルトは次のとおりです。

^[[:alnum:]._%-]+@[[:alnum:].-]+\.[[:alpha:]]{2,4}$

WALLET_PATH

ファイル・システムでのウォレットへのパス。次に例を示します。

file:/home/<username>/wallets

WALLET_PWD

ウォレットに関連付けられているパスワード。

WEBSHEET_SQL_ACCESS

デフォルトのYに設定すると、Webシート・アプリケーションでSQLタグおよびSQLレポートが使用できます。Nに設定すると、これらは使用できません。

WORKSPACE_EMAIL_MAXIMUM

24時間以内に、APEX_MAIL経由で送信できるワークスペース当たりの電子メールの最大数。デフォルトは1000です。

WORKSPACE_MAX_FILE_BYTES

ワークスペースにアップロードされるファイルの最大バイト数。ワークスペース・レベルの設定により、インスタンス・レベルの設定はオーバーライドされます。

WORKSPACE_MAX_OUTPUT_SIZE

スクリプト結果に割り当てられる最大領域。デフォルトは2000000です。

WORKSPACE_PROVISION_DEMO_OBJECTS

デフォルトのYに設定すると、デモンストレーション・アプリケーションおよびデーターベース・オブジェクトが新しいワークスペースに作成されます。Nに設定すると、これらは現在のワークスペースに作成されません。

WORKSPACE_WEBSHEET_OBJECTS

デフォルトのYに設定すると、Application Express Webシート・データーベース・オブジェクトが新しいワークスペースに作成されます。Nに設定すると、これらは現在のワークスペースに作成されません。

参照:
『Oracle Application Express管理ガイド』のランタイム環境での電子メールの構成に関する項、ウォレット情報の構成に関する項およびランタイム環境でのレポート出力設定の構成に関する項。

ADD_SCHEMAプロシージャ

ADD_SCHEMAプロシージャは、ワークスペースとスキーマのマッピングにスキーマを追加します。

構文

APEX_INSTANCE_ADMIN.ADD_SCHEMA(
p_workspace    IN VARCHAR2,
p_schema       IN VARCHAR2);

パラメータ

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

表11-2 ADD_SCHEMAのパラメータ

パラメータ

説明

p_workspace

スキーマ・マッピングを追加するワークスペースの名前。

p_schema

スキーマとワークスペースのマッピングに追加するスキーマ。

例

次の例に、ADD_SCHEMAプロシージャを使用してスキーマをワークスペースにマッピングする方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.ADD_SCHEMA('MY_WORKSPACE','FRANK');
END;

ADD_WORKSPACEプロシージャ

ADD_WORKSPACEプロシージャは、Application Expressインスタンスにワークスペースを追加します。

構文

APEX_INSTANCE_ADMIN.ADD_WORKSPACE(
p_workspace_id        IN NUMBER DEFAULT NULL,
p_workspace           IN VARCHAR2,
p_source_identifier   IN VARCHAR2 DEFAULT NULL,
p_primary_schema      IN VARCHAR2,
p_additional_schemas  IN VARCHAR2,
p_rm_consumer_group   IN VARCHAR2 DEFAULT NULL );

パラメータ

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

表11-3 ADD_WORKSPACEのパラメータ

パラメータ

説明

p_workspace_id

Application Expressインスタンス内でワークスペースを一意に識別するID。これをNULLのままにすると、新しい一意のIDが割り当てられます。

p_workspace

追加するワークスペースの名前。

p_source_identifier

異なるインスタンス間のフィードバックを同期する際に使用するワークスペースに対する短い識別子。

p_primary_schema

新しいワークスペースに関連付けるプライマリ・データベース・スキーマ。

p_additional_schemas

このワークスペースに関連付ける追加スキーマを列挙したコロン区切りのリスト。

p_rm_consumer_group

このワークスペースのアプリケーションを実行する際に使用される、リソース・マネージャのコンシューマ・グループ。

例

次の例に、ADD_WORKSPACEプロシージャを使用して、HRおよびOE用の追加のスキーマ・マッピングとともにSCOTTというプライマリ・スキーマを使用するMY_WORKSPACEという新しいワークスペースを追加する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.ADD_WORKSPACE (
p_workspace_id       => 8675309,
p_workspace          => 'MY_WORKSPACE',
p_primary_schema     => 'SCOTT',
p_additional_schemas => 'HR:OE' );
END;

CREATE_SCHEMA_EXCEPTIONプロシージャ

このプロシージャは、特定のワークスペースへの制限付きスキーマの割当てを許可する例外を作成します。

構文

APEX_INSTANCE_ADMIN.CREATE_SCHEMA_EXCEPTION (
p_schema    in varchar2,
p_workspace in varchar2 );

パラメータ

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

表11-4 CREATE_SCHEMA_EXCPETIONのパラメータ

パラメータ

説明

p_schema

スキーマ。

p_workspace

ワークスペース。

例

この例では、ワークスペースHR_WORKSPACEへの制限付きスキーマHRの割当てを許可しています。

begin
apex_instance_admin.create_schema_exception (
p_schema    => 'HR',
p_workspace => 'HR_WORKSPACE' );
commit;
end;

参照:
「RESTRICT_SCHEMAプロシージャ」、「UNRESTRICT_SCHEMAプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONSプロシージャ」、「REMOVE_WORKSPACE_EXCEPTIONSプロシージャ」

FREE_WORKSPACE_APP_IDSプロシージャ

このプロシージャは、指定されたワークスペースIDについてアプリケーションIDの予約を削除します。誤って予約されたため、またはワークスペースがすでに存在しないために予約がもう必要ない場合に、このプロシージャを使用して予約を取り消します。特定のワークスペース用にアプリケーションIDを予約する場合は、「RESERVE_WORKSPACE_APP_IDSプロシージャ」を参照してください。

構文

APEX_INSTANCE_ADMIN.FREE_WORKSPACE_APP_IDS (
p_workspace_id IN NUMBER );

パラメータ

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

表11-5 FREE_WORKSPACE_APP_IDSのパラメータ

パラメータ

説明

p_workspace_id

ワークスペースの一意のID。

例

この例では、IDが1234567890のワークスペースに属するアプリケーションIDの予約を取り消す方法を示しています。

begin
apex_instance_admin.free_workspace_app_ids(1234567890);
end;

GET_PARAMETERファンクション

GET_PARAMETERファンクションは、ランタイム環境の管理に使用されるパラメータの値を取得します。

構文

APEX_INSTANCE_ADMIN.GET_PARAMETER(
p_parameter     IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表11-6 GET_PARAMETERのパラメータ

パラメータ

説明

p_parameter

取得するインスタンス・パラメータ。

「使用可能なパラメータ値」を参照してください。

例

次の例に、GET_PARAMETERファンクションを使用して、Oracle Application Expressインスタンスに対して現在定義されているSMTP_HOST_ADDRESSパラメータを取得する方法を示します。

DECLARE
L_VAL VARCHAR2(4000);
BEGIN
L_VAL :=APEX_INSTANCE_ADMIN.GET_PARAMETER('SMTP_HOST_ADDRESS');
DBMS_OUTPUT.PUT_LINE('The SMTP Host Setting Is: '||L_VAL);
END;

GET_SCHEMASファンクション

GET_SCHEMASファンクションは、特定のワークスペースにマッピングされているスキーマのカンマ区切りリストを取得します。

構文

APEX_INSTANCE_ADMIN.GET_SCHEMAS(
p_workspace     IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表11-7 GET_SCHEMASのパラメータ

パラメータ

説明

p_workspace

スキーマ・リストを取得するワークスペースの名前。

例

次の例に、GET_SCHEMAファンクションを使用して、ワークスペースにマッピングされた基礎となるスキーマを取得する方法を示します。

DECLARE
L_VAL VARCHAR2(4000);
BEGIN
L_VAL :=APEX_INSTANCE_ADMIN.GET_SCHEMAS('MY_WORKSPACE');
DBMS_OUTPUT.PUT_LINE('The schemas for my workspace: '||L_VAL);
END;

GET_WORKSPACE_PARAMETER

GET_WORKSPACE_PARAMETERプロシージャはワークスペース・パラメータを取得します。

構文

get_workspace_parameter(
p_workspace     IN VARCHAR2,
p_parameter     IN VARCHAR2,

パラメータ

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

表11-8 GET_WORKSPACE_PARAMETERのパラメータ

パラメータ

説明

p_workspace

ワークスペース・パラメータを取得するワークスペースの名前。

p_parameter

このワークスペースの同じ名前のインスタンス・パラメータ値をオーバーライドするパラメータ名。次のようなパラメータ名があります。

- ALLOW_HOSTNAMES

- QOS_MAX_WORKSPACE_REQUESTS

- QOS_MAX_SESSION_REQUESTS

- QOS_MAX_SESSION_KILL_TIMEOUT

- RM_CONSUMER_GROUP

- WORKSPACE_EMAIL_MAXIMUM

- WORKSPACE_MAX_FILE_BYTES

例

次の例では、HRワークスペースのALLOW_HOSTNAMESを出力しています。

BEGIN
DBMS_OUTPUT.PUT_LINE (
APEX_INSTANCE_ADMIN.GET_WORKSPACE_PARAMETER (
p_workspace => 'HR',
p_parameter => 'ALLOW_HOSTNAMES' ));
END;

REMOVE_APPLICATIONプロシージャ

REMOVE_APPLICATIONプロシージャは、Application Expressインスタンスから、指定されたアプリケーションを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_APPLICATION (
p_application_id IN NUMBER);

パラメータ

表 11-9に、REMOVE_APPLICATIONプロシージャのパラメータを示します。

表11-9 REMOVE_APPLICATIONのパラメータ

パラメータ

説明

p_application_id

削除するアプリケーションのID。

例

次の例は、REMOVE_APPLICATIONプロシージャを使用して、Application ExpressインスタンスからIDに100を持つアプリケーションを削除する方法を示しています。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_APPLICATION(100);
END;

REMOVE_SAVED_REPORTプロシージャ

REMOVE_SAVED_REPORTプロシージャは、特定のアプリケーションに対して特定のユーザーが保存した対話モード・レポートの設定を削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SAVED_REPORT(
p_application_id     IN NUMBER,
p_report_id          IN NUMBER);

パラメータ

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

表11-10 REMOVE_SAVED_REPORTのパラメータ

パラメータ

説明

p_application_id

ユーザーが保存した対話モード・レポートの情報を削除する対象アプリケーションのID。

p_report_id

削除する保存済のユーザーの対話モード・レポートのID。

例

次の例に、REMOVE_SAVED_REPORTプロシージャを使用して、IDが100のアプリケーションに対してユーザーが保存したIDが123の対話モード・レポートを削除する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_SAVED_REPORT(100,123);
END;

REMOVE_SAVED_REPORTSプロシージャ

REMOVE_SAVED_REPORTSプロシージャは、特定のアプリケーションまたはインスタンス全体に対してユーザーが保存したすべての対話モード・レポートの設定を削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SAVED_REPORTS(
p_application_id     IN NUMBER DEFAULT NULL);

パラメータ

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

表11-11 REMOVE_SAVED_REPORTSのパラメータ

パラメータ

説明

p_application_id

ユーザーが保存した対話モード・レポートの情報を削除する対象アプリケーションのID。このパラメータをNULLのままにしておくと、インスタンス全体に対してユーザーが保存したすべての対話モード・レポートが削除されます。

例

次の例に、REMOVE_SAVED_REPORTSプロシージャを使用して、IDが100のアプリケーションに対してユーザーが保存した対話モード・レポートの情報を削除する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_SAVED_REPORTS(100);
END;

REMOVE_SCHEMAプロシージャ

このREMOVE_SCHEMAは、ワークスペースからスキーマへのマッピングを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SCHEMA(
p_workspace     IN VARCHAR2,
p_schema        IN VARCHAR2);

パラメータ

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

表11-12 REMOVE_SCHEMAのパラメータ

パラメータ

説明

p_workspace

スキーマ・マッピングを削除するワークスペースの名前。

p_schema

スキーマとワークスペースのマッピングから削除するスキーマ。

例

次の例に、REMOVE_SCHEMAプロシージャを使用して、ワークスペースとスキーマのマッピングMY_WORKSPACEからFrankというスキーマを削除する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_SCHEMA('MY_WORKSPACE','FRANK');
END;

REMOVE_SCHEMA_EXCEPTIONプロシージャ

このプロシージャは、指定されたワークスペースへの制限付きスキーマの割当てを許可する例外を削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SCHEMA_EXCEPTION (
p_schema    in varchar2,
p_workspace in varchar2 );

パラメータ

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

表11-13 REMOVE_SCHEMA_EXCEPTIONのパラメータ

パラメータ

説明

p_schema

スキーマ。

p_workspace

ワークスペース。

例

この例では、ワークスペースHR_WORKSPACEへのスキーマHRの割当てを許可する例外を削除しています。

begin
apex_instance_admin.remove_schema_exception (
p_schema    => 'HR',
p_workspace => 'HR_WORKSPACE' );
commit;
end;

参照:
「CREATE_SCHEMA_EXCEPTIONプロシージャ」、「RESTRICT_SCHEMAプロシージャ」、「UNRESTRICT_SCHEMAプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONSプロシージャ」、「REMOVE_WORKSPACE_EXCEPTIONSプロシージャ」

REMOVE_SCHEMA_EXCEPTIONSプロシージャ

このプロシージャは、ワークスペースへの指定されたスキーマの割当てを許可する例外すべてを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SCHEMA_EXCEPTIONS (
p_schema in varchar2 );

パラメータ

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

表11-14 REMOVE_SCHEMA_EXCEPTIONSのパラメータ

パラメータ

説明

p_schema

スキーマ。

例

この例では、ワークスペースへのHRスキーマの割当てを許可する例外すべてを削除しています。

begin
apex_instance_admin.remove_schema_exceptions (
p_schema => 'HR' );
commit;
end;

参照:
「CREATE_SCHEMA_EXCEPTIONプロシージャ」、「RESTRICT_SCHEMAプロシージャ」、「UNRESTRICT_SCHEMAプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONプロシージャ」、「REMOVE_WORKSPACE_EXCEPTIONSプロシージャ」

REMOVE_SUBSCRIPTIONプロシージャ

REMOVE_SUBSCRIPTIONプロシージャは、特定の対話モード・レポートのサブスクリプションを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SUBSCRIPTION(
p_subscription_id     IN NUMBER);

パラメータ

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

表11-15 REMOVE_SUBSCRIPTIONプロシージャのパラメータ

パラメータ

説明

p_subscription_id

削除する対話モード・レポートのサブスクリプションのID。

例

次の例に、REMOVE_SUBSCRIPTIONプロシージャを使用して、IDが12345の対話モード・レポートのサブスクリプションを削除する方法を示します。APEX_APPLICATION_PAGE_IR_SUBビューは、削除するサブスクリプションIDの特定に役立ちます。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_SUBSCRIPTION (
p_subscription_id => 12345);
END;

REMOVE_WORKSPACEプロシージャ

REMOVE_WORKSPACEプロシージャは、Application Expressインスタンスからワークスペースを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_WORKSPACE(
p_workspace         IN VARCHAR2,
p_drop_users        IN VARCHAR2 DEFAULT 'N',
p_drop_tablespaces  IN VARCHAR2 DEFAULT 'N' );

パラメータ

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

表11-16 REMOVE_WORKSPACEのパラメータ

パラメータ

説明

p_workspace

削除するワークスペースの名前。

p_drop_users

'Y'を指定すると、ワークスペースに関連付けられているデータベース・ユーザーも削除されます。デフォルトは'N'です。

p_drop_tablespaces

'Y'を指定すると、ワークスペースに関連付けられているデータベース・ユーザーに関連付けられた表領域も削除されます。デフォルトは'N'です。

例

次の例に、REMOVE_WORKSPACEプロシージャを使用して、関連するデータベース・ユーザーおよび表領域とともにMY_WORKSPACEという既存のワークスペースを削除する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_WORKSPACE('MY_WORKSPACE','Y','Y');
END;

REMOVE_WORKSPACE_EXCEPTIONSプロシージャ

このプロシージャは、指定されたワークスペースへの制限付きスキーマの割当てを許可する例外すべてを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_WORKSPACE_EXCEPTIONS (      p_workspace in varchar2 );

パラメータ

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

表11-17 REMOVE_WORKSPACE_EXCEPTIONSのパラメータ

パラメータ

説明

p_workspace

ワークスペース。

例

この例では、HR_WORKSPACEへの制限付きスキーマの割当てを許可する例外をすべて削除しています。

begin    apex_instance_admin.remove_schema_exceptions (            p_workspace => 'HR_WORKSPACE' );    commit;end;

参照:
「CREATE_SCHEMA_EXCEPTIONプロシージャ」、「RESTRICT_SCHEMAプロシージャ」、「UNRESTRICT_SCHEMAプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONSプロシージャ」

RESERVE_WORKSPACE_APP_IDSプロシージャ

このプロシージャは、指定されたワークスペースのWebシート・アプリケーションおよびデータベース・アプリケーションのIDを永久予約します。ワークスペースとそのアプリケーションが削除されている場合でも、開発者がこのようなIDの1つを使用して別のアプリケーションを作成することはできません。予約を取り消すには、「FREE_WORKSPACE_APP_IDSプロシージャ」を参照してください。

構文

APEX_INSTANCE_ADMIN.RESERVE_WORKSPACE_APP_IDS (
p_workspace_id IN NUMBER );

パラメータ

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

表11-18 RESERVE_WORKSPACE_APP_IDSのパラメータ

パラメータ

説明

p_workspace_id

ワークスペースの一意のID。

例

この例では、アプリケーションIDが特定の範囲内に限定されている2つの別個のApplication Expressインスタンスを設定しています。後で、ワークスペースとそのすべてのアプリケーションをインスタンス1からインスタンス2に移動します。移動するワークスペースについて、開発者はそのアプリケーションIDをすべて予約して、同じIDのアプリケーションがインスタンス1で作成されないようにします。

1. Application Expressインスタンス1の設定後、アプリケーションIDが100000から199999の範囲内にあることを確認します。

begin
apex_instance_admin.set_parameter('APPLICATION_ID_MIN', 100000);
apex_instance_admin.set_parameter('APPLICATION_ID_MAX', 199999);
end;

2. Application Expressインスタンス2の設定後、アプリケーションIDが200000から299999の範囲内にあることを確認します。

begin
apex_instance_admin.set_parameter('APPLICATION_ID_MIN', 200000);
apex_instance_admin.set_parameter('APPLICATION_ID_MAX', 299999);
end;

3. その後、IDが1234567890のワークスペースMY_WORKSPACEをインスタンス1からインスタンス2に移動することを運用チームが決定します。必要な手順は次のとおりです。

1. インスタンス1でワークスペース、アプリケーションおよびデータをエクスポートします(ここには示しません)。

2. インスタンス1の他のアプリケーションでこのワークスペースのアプリケーションIDを再利用できないようにします。

begin
apex_instance_admin.reserve_workspace_app_ids(1234567890);
end;

3. インスタンス1でワークスペース、付随するデータおよびユーザーを削除します。

begin
apex_instance_admin.remove_workspace('MY_WORKSPACE');
end;

4. インスタンス2でワークスペース、アプリケーションおよびデータをインポートします(ここには示しません)。

RESTRICT_SCHEMAプロシージャ

このプロシージャは、ワークスペースにスキーマを割り当てる権限を取り消します。

構文

APEX_INSTANCE_ADMIN.RESTRICT_SCHEMA (
p_schema in varchar2 );

パラメータ

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

表11-19 RESTRICT_SCHEMAのパラメータ

パラメータ

説明

p_schema

スキーマ。

例

この例では、ワークスペースにスキーマHRを割り当てる権限を取り消しています。

begin
apex_instance_admin.restrict_schema(p_schema => 'HR');
commit;
end;

参照:
「CREATE_SCHEMA_EXCEPTIONプロシージャ」、「UNRESTRICT_SCHEMAプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONSプロシージャ」、「REMOVE_WORKSPACE_EXCEPTIONSプロシージャ」

SET_LOG_SWITCH_INTERVALプロシージャ

Application Expressによってメンテナンスされる各ログの、ログ・スイッチ間隔を設定します。

構文

APEX_INSTANCE_ADMIN.SET_LOG_SWITCH_INTERVAL(
p_log_name              IN VARCHAR2,
p_log_switch_after_days IN NUMBER );

パラメータ

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

表11-20 SET_LOG_SWITCH_INTERVALパラメータ

パラメータ

説明

p_log_name

ログの名前を指定します。有効な値は、ACCESS、ACTIVITY、CLICKTHRUおよびDEBUGです。

p_log_switch_after_days

この間隔は、1から180の間の正の整数である必要があります。

例

この例では、ACTIVITYログのログ・スイッチ間隔を30日間に設定しています。

begin
apex_instance_admin.set_log_switch_interval( p_log_name in 'ACTIVITY', p_log_switch_after_days => 30 );
commit;
end;

SET_WORKSPACE_PARAMETER

SET_WORKSPACE_PARAMETERプロシージャは、指定のワークスペース・パラメータを設定します。

構文

SET_WORKSPACE_PARAMETER(
p_workspace     IN VARCHAR2,
p_parameter     IN VARCHAR2,
p_value         IN VARCHAR2 );

パラメータ

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

表11-21 SET_WORKSPACE_PARAMETERのパラメータ

パラメータ

説明

p_workspace

ワークスペース・パラメータを設定するワークスペースの名前。

p_parameter

このワークスペースの同じ名前のインスタンス・パラメータ値をオーバーライドするパラメータ名。次のようなパラメータ名があります。

- ALLOW_HOSTNAMES

- QOS_MAX_WORKSPACE_REQUESTS

- QOS_MAX_SESSION_REQUESTS

- QOS_MAX_SESSION_KILL_TIMEOUT

- RM_CONSUMER_GROUP

- WORKSPACE_EMAIL_MAXIMUM

- WORKSPACE_MAX_FILE_BYTES

p_value

パラメータ値。

例

次の例では、set_workspace_parameterプロシージャ使用して、ホスト名またはドメイン名にhr.example.comが含まれているHRワークスペースのアプリケーションへのアクセス用URLを制限する方法を示しています。

BEGIN
apex_instance_admin.set_workspace_parameter (
p_workspace => 'HR',
p_parameter => 'ALLOW_HOSTNAMES' ));
p_value     => 'hr.example.com' );
END;

SET_PARAMETERプロシージャ

SET_PARAMETERプロシージャは、ランタイム環境の管理に使用されるパラメータを設定します。パラメータの変更を有効にするためにコミットを発行する必要があります。

構文

APEX_INSTANCE_ADMIN.SET_PARAMETER(
p_parameter     IN VARCHAR2,
p_value         IN VARCHAR2 DEFAULT 'N');

パラメータ

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

表11-22 SET_PARAMETERのパラメータ

パラメータ

説明

p_parameter

設定するインスタンス・パラメータ。

p_value

パラメータの値。

「使用可能なパラメータ値」を参照してください。

例

次の例に、SET_PARAMETERプロシージャを使用して、Oracle Application ExpressインスタンスのSMTP_HOST_ADDRESSパラメータを設定する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'mail.example.com');
COMMIT;
END;

SET_WORKSPACE_CONSUMER_GROUPプロシージャ

SET_WORKSPACE_CONSUMER_GROUPプロシージャは、リソース・マネージャ・コンシューマ・グループをワークスペースに設定します。

構文

set_workspace_consumer_group(
p_workspace in varchar2,
p_rm_consumer_group in varchar2 );

パラメータ

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

表11-23 SET_WORKSPACE_CONSUMER_GROUPパラメータ

パラメータ

説明

p_workspace

これは、リソース・コンシューマ・グループが設定されているワークスペース名です。

p_rm_consumer_group

パラメータP_RM_CONSUMER_GROUPは、Oracle Databaseリソース・マネージャ・コンシューマ・グループの名前です。このコンシューマ・グループは、このプロシージャが起動される際に存在している必要はありません。ただし、ワークスペースにリソース・マネージャ・コンシューマ・グループが設定されていて、このコンシューマ・グループが存在しない場合、ユーザーがこのワークスペースへのログインを試行する際に、あるいはワークスペースでアプリケーションを実行する際にエラーが発生します。

P_RM_CONSUMER_GROUPの値がnullの場合、指定されたワークスペースと関連するリソース・マネージャ・コンシューマ・グループがクリアされます。

例

次の例ではワークスペースを、リソース・マネージャ・コンシューマ・グループCUSTOM_GROUP1に設定します。

begin
apex_instance_admin.set_workspace_consumer_group(
p_workspace => 'MY_WORKSPACE',
p_rm_consumer_group => 'CUSTOM_GROUP1' );
commit;
end;
/

TRUNCATE_LOGプロシージャ

TRUNCATE_LOGプロシージャは、入力パラメータによって指定されたログ・エントリを切り捨てます。

構文

APEX_INSTANCE_ADMIN.TRUNCATE_LOG(
p_log     IN VARCHAR2);

パラメータ

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

表11-24 TRUNCATE_LOGのパラメータ

パラメータ

説明

p_log

このパラメータには、次のいずれかの値を指定できます。

ACTIVITY: ページ・アクセスを記録するすべてのエントリを削除します。

USER_ACCESS: ユーザー・ログインを記録するすべてのエントリを削除します。

MAIL: 送信されたメールを記録するすべてのエントリを削除します。

CLICKS: 外部サイトへのクリックを記録するすべてのエントリを削除します。

LOCK_INSTALL_SCRIPT: 開発者によるサポートするオブジェクト・スクリプトのロックを記録するエントリをすべて削除します。

LOCK_PAGE: 開発者によるページのロックを記録するすべてのエントリを削除します。

WORKSPACE_HIST: ワークスペースの日次サマリーを記録するすべてのエントリを削除します。

PURGE: ワークスペースの自動的なパージ・アクティビティを記録するすべてのエントリを削除します。

FILE: ファイルの自動的なパージ・アクティビティを記録するすべてのエントリを削除します。

SCRIPT: SQLワークショップで実行されたSQLスクリプトの結果を記録するすべてのエントリを削除します。

SQL: SQLワークショップのSQLコマンドで実行されたコマンドの履歴を記録するすべてのエントリを削除します。

例

次の例に、TRUNCATE_LOGプロシージャを使用して、Application Expressアプリケーション・ページへのアクセスを記録するすべてのログ・エントリを削除する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.TRUNCATE_LOG('ACTIVITY');
END;

UNRESTRICT_SCHEMAプロシージャ

このプロシージャは、ワークスペースにスキーマを割り当てる権限が前に取り消されている場合、その権限を再度付与します。

構文

APEX_INSTANCE_ADMIN.UNRESTRICT_SCHEMA (
p_schema in varchar2 );

パラメータ

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

表11-25 RESTRICT_SCHEMAのパラメータ

パラメータ

説明

p_schema

スキーマ。

例

この例では、ワークスペースにスキーマHRを割り当てる権限を再度付与しています。

begin
apex_instance_admin.unrestrict_schema(p_schema => 'HR');
commit;
end;

参照:
「CREATE_SCHEMA_EXCEPTIONプロシージャ」、「RESTRICT_SCHEMAプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONプロシージャ」、「REMOVE_SCHEMA_EXCEPTIONSプロシージャ」、「REMOVE_WORKSPACE_EXCEPTIONSプロシージャ」

12 APEX_IR

APEX_IRパッケージは、対話モード・レポートに関連付けられたOracle Application Express環境でプログラミングする際に使用可能なユーティリティを提供します。APEX_IRパッケージを使用すると、対話モード・レポートの実行時の問合せの取得、フィルタの追加、レポート設定のリセットまたはクリア、保存されたレポートの削除およびサブスクリプションの管理が可能です。

- ADD_FILTERプロシージャのシグネチャ1

- ADD_FILTERプロシージャのシグネチャ2

- CHANGE_SUBSCRIPTION_EMAILプロシージャ

- CHANGE_REPORT_OWNERプロシージャ

- CHANGE_SUBSCRIPTION_EMAILプロシージャ

- CHANGE_SUBSCRIPTION_LANGプロシージャ

- CLEAR_REPORTプロシージャのシグネチャ1

- CLEAR_REPORTプロシージャのシグネチャ2

- DELETE_REPORTプロシージャ

- DELETE_SUBSCRIPTIONプロシージャ

- GET_LAST_VIEWED_REPORT_IDファンクション

- GET_REPORTファンクション

- RESET_REPORTプロシージャのシグネチャ1

- RESET_REPORTプロシージャのシグネチャ2

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

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

注意:
ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。

構文

APEX_IR.ADD_FILTER(
p_page_id       IN NUMBER,
p_region_id     IN NUMBER,
p_report_column IN VARCHAR2,
p_filter_value  IN VARCHAR2,
p_operator_abbr IN VARCHAR2 DEFAULT NULL,
p_report_id     IN NUMBER DEFAULT NULL);

パラメータ

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

表12-1 ADD_FILTERプロシージャのシグネチャ1のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_column

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

p_filter_value

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

p_operator_abbr

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

EQ = 等しい

NEQ = 等しくない

LT = 未満

LTE = 以下

GT = より大きい

GTE = 以上

LIKE = SQLのLike演算子

NLIKE = 類似ではない

N = Null

NN = NULLではない

C = 含む

NC = 含まない

IN = SQL In演算子

NIN = SQL Not In演算子

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート設定にフィルタが追加されます。

例

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

BEGIN
APEX_IR.ADD_FILTER(
p_page_id       => 1,
p_region_id     => 2505704029884282,
p_report_column => 'DEPTNO',
p_filter_value  => '30',
p_operator_abbr => 'EQ',
p_report_id     => 880629800374638220);
END;

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

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

注意:
ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。

構文

APEX_IR.ADD_FILTER(
p_page_id       IN NUMBER,
p_region_id     IN NUMBER,
p_report_column IN VARCHAR2,
p_filter_value  IN VARCHAR2,
p_operator_abbr IN VARCHAR2 DEFAULT NULL,
p_report_alias  IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表12-2 ADD_FILTERプロシージャのシグネチャ2

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_column

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

p_filter_value

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

p_operator_abbr

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

EQ = 等しい

NEQ = 等しくない

LT = 未満

LTE = 以下

GT = より大きい

GTE = 以上

LIKE = SQLのLike演算子

NLIKE = 類似ではない

N = Null

NN = NULLではない

C = 含む

NC = 含まない

IN = SQL In演算子

NIN = SQL Not In演算子

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名。p_report_aliasがNULLの場合、最後に表示されたレポート設定にフィルタが追加されます。

例

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

BEGIN
APEX_IR.ADD_FILTER(
p_page_id       => 1,
p_region_id     => 2505704029884282,
p_report_column => 'DEPTNO',
p_filter_value  => '30',
p_operator_abbr => 'EQ',
p_report_alias  => 'CATEGORY_REPORT');
END;

CHANGE_SUBSCRIPTION_EMAILプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションの電子メール・アドレスを変更します。電子メールが送信されると、サブスクリプションにより、定義した電子メール・アドレスにメッセージが送信されます。

構文

APEX_IR.CHANGE_SUBSCRIPTION_EMAIL (
p_subscription_id    IN NUMBER,
p_email_address      IN VARCHAR2);

パラメータ

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

表12-3 CHANGE_SUBSCRIPTION_EMAILのパラメータ

パラメータ

説明

p_subscription_id

現在のワークスペース内で電子メール・アドレスを変更するサブスクリプションID。

p_email_address

変更後の新しい電子メール・アドレス。電子メール・アドレスは、有効な電子メール構文である必要があり、nullに設定することはできません。

例

次の例に、CHANGE_SUBSCRIPTION_EMAILプロシージャを使用して、対話モード・レポートのサブスクリプション956136850459718525の電子メール・アドレスをsome.user@somecompany.comに変更する方法を示します。

BEGIN
APEX_IR.CHANGE_SUBSCRIPTION_EMAIL (
p_subscription_id => 956136850459718525,
p_email_address => 'some.user@somecompany.com');
END;

CHANGE_REPORT_OWNERプロシージャ

このプロシージャは、レポートIDを使用して保存された対話モード・レポートの所有者を変更します。このプロシージャでは、デフォルトの対話モード・レポートの所有者を変更できません。

構文

APEX_IR.CHANGE_REPORT_OWNER (
p_report_id    in number,
p_old_owner    in varchar2,
p_new_owner    in varchar2);

パラメータ

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

表12-4 CHANGE_REPORT_OWNERプロシージャ

パラメータ

説明

p_report_id

カレント・アプリケーション・ページで保存したレポートID。

p_old_owner

変更前の所有者の名前(大/小文字を区別)。所有者は、レポートにアクセスする有効なログイン・ユーザーである必要があります。

p_new_owner

変更後の新しい所有者の名前(大/小文字を区別)。所有者は、レポートにアクセスする有効なログイン・ユーザーである必要があります。

例

次の例に、CHANGE_REPORT_OWNERプロシージャを使用して、保存されたレポートのJOHNという古い所有者の名前をJOHN.DOEという新しい所有者の名前に変更する方法を示します。保存されたレポートのレポートIDは1235704029884282です。

BEGIN
APEX_IR.CHANGE_REPORT_OWNER (
p_report_id    => 1235704029884282,
p_old_owner    => 'JOHN',
p_new_owner    => 'JOHN.DOE');
END;

CHANGE_SUBSCRIPTION_EMAILプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションの電子メール・アドレスを変更します。電子メールが送信されると、サブスクリプションにより、定義した電子メール・アドレスにメッセージが送信されます。

構文

APEX_IR.CHANGE_SUBSCRIPTION_EMAIL (
p_subscription_id    IN NUMBER,
p_email_address      IN VARCHAR2);

パラメータ

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

表12-5 CHANGE_SUBSCRIPTION_EMAILのパラメータ

パラメータ

説明

p_subscription_id

現在のワークスペース内で電子メール・アドレスを変更するサブスクリプションID。

p_email_address

変更後の新しい電子メール・アドレス。電子メール・アドレスは、有効な電子メール構文である必要があり、nullに設定することはできません。

例

次の例に、CHANGE_SUBSCRIPTION_EMAILプロシージャを使用して、対話モード・レポートのサブスクリプション956136850459718525の電子メール・アドレスをsome.user@somecompany.comに変更する方法を示します。

BEGIN
APEX_IR.CHANGE_SUBSCRIPTION_EMAIL (
p_subscription_id => 956136850459718525,
p_email_address => 'some.user@somecompany.com');
END;

CHANGE_SUBSCRIPTION_LANGプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションの言語を変更します。

構文

APEX_IR.CHANGE_SUBSCRIPTION_LANG(
p_subscription_id IN NUMBER,
p_language        IN VARCHAR2);

パラメータ

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

表12-6 CHANGE_SUBSCRIPTION_LANGプロシージャのパラメータ

パラメータ

説明

p_subscription_id

現行のワークスペース内の言語を変更するサブスクリプションID。

p_language

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

例

次の例に、CHANGE_SUBSCRIPTION_LANGプロシージャを使用して、現行のワークスペースにあるIDが567890123のサブスクリプションをドイツ語に変更する方法を示します。

BEGIN
APEX_IR.CHANGE_SUBSCRIPTION_LANG(
p_subscription_id => 567890123,
p_language        => 'de');
END;

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

このプロシージャは、レポートIDを使用して、レポート設定をクリアします。

注意:
ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。

構文

APEX_IR.CLEAR_REPORT(
p_page_id   IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);

パラメータ

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

表12-7 CLEAR_REPORTプロシージャのシグネチャ1のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート設定がクリアされます。

例

次の例に、CLEAR_REPORTプロシージャを使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ対話モード・レポート設定をクリアする方法を示します。

BEGIN
APEX_IR.CLEAR_REPORT(
p_page_id      => 1,
p_region_id    => 2505704029884282,
p_report_id    => 880629800374638220);
END;

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

このプロシージャは、レポート別名を使用して、レポート設定をクリアします。

注意:
ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。

構文

APEX_IR.CLEAR_REPORT(
p_page_id      IN NUMBER,
p_region_id    IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表12-8 CLEAR_REPORTプロシージャのシグネチャ2のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名。p_report_aliasがNULLの場合、最後に表示されたレポート設定がクリアされます。

例

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

BEGIN
APEX_IR.CLEAR_REPORT(
p_page_id      => 1,
p_region_id    => 2505704029884282,
p_report_alias => 'CATEGORY_REPORT');
END;

DELETE_REPORTプロシージャ

このプロシージャは、保存した対話モード・レポートを削除します。現在ログインしているワークスペースおよびアプリケーションで、特定の保存されたレポートを削除します。

構文

APEX_IR.DELETE_REPORT(
p_report_id IN NUMBER);

パラメータ

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

表12-9 DELETE_REPORTプロシージャのパラメータ

パラメータ

説明

p_report_id

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

例

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

BEGIN
APEX_IR.DELETE_REPORT (
p_report_id => 880629800374638220);
END;

DELETE_SUBSCRIPTIONプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションを削除します。

構文

APEX_IR.DELETE_SUBSCRIPTION(
p_subscription_id IN NUMBER);

パラメータ

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

表12-10 DELETE_SUBSCRIPTIONプロシージャのパラメータ

パラメータ

説明

p_subscription_id

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

例

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

BEGIN
APEX_IR.DELETE_SUBSCRIPTION(
p_subscription_id => 567890123);
END;

GET_LAST_VIEWED_REPORT_IDファンクション

このファンクションは、指定されたページおよびリージョンで最後に表示された基本レポートのIDを戻します。

構文

APEX_IR.GET_LAST_VIEWED_REPORT_ID(
p_page_id   IN NUMBER,
p_region_id IN NUMBER);

パラメータ

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

表12-11 GET_LAST_VIEWED_REPORT_IDファンクションのパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョンのID。

例

次の例に、GET_LAST_VIEWED_REPORT_IDファンクションを使用して、リージョンが2505704029884282のカレント・アプリケーションのページ1で最後に表示されたレポートIDを取得する方法を示します。

DECLARE
l_report_id number;
BEGIN
l_report_id := APEX_IR.GET_LAST_VIEWED_REPORT_ID (
p_page_id   => 1,
p_region_id => 2505704029884282);
END;

GET_REPORTファンクション

このファンクションは、対話モード・レポートの実行時の問合せを戻します。

構文

APEX_IR.GET_REPORT(
p_page_id   IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);

パラメータ

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

表12-12 GET_REPORTファンクションのパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョンのID。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート問合せが取得されます。

例

次の例に、GET_REPORTファンクションを使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ実行時のレポート問合せをバインド変数情報とともに取得する方法を示します。

DECLARE
l_report apex_ir.t_report;
l_query varchar2(32767);
BEGIN
l_report := APEX_IR.GET_REPORT (
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_id => 880629800374638220);
l_query := l_report.sql_query;
sys.htp.p('Statement = '||l_report.sql_query);
for i in 1..l_report.binds.count
loop
sys.htp.p(i||'. '||l_report.binds(i).name||' = '||l_report.binds(i).value);
end loop;
END;

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

このプロシージャは、レポートIDを使用して、レポート設定を開発者が定義したデフォルト設定にリセットします。

注意:
ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。

構文

APEX_IR.RESET_REPORT(
p_page_id   IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);

パラメータ

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

表12-13 RESET_REPORTプロシージャのシグネチャ1のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョンのID。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート設定がリセットされます。

例

次の例に、RESET_REPORTプロシージャのシグネチャ1を使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ対話モード・レポート設定をリセットする方法を示します。

BEGIN
APEX_IR.RESET_REPORT(
p_page_id      => 1,
p_region_id    => 2505704029884282,
p_report_id    => 880629800374638220);
END;

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

このプロシージャは、レポート別名を使用して、レポート設定をリセットします。

注意:
ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。

構文

APEX_IR.RESET_REPORT(
p_page_id      IN NUMBER,
p_region_id    IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表12-14 RESET_REPORTプロシージャのシグネチャ2のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョンのID。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名。p_report_aliasがNULLの場合、最後に表示されたレポート設定がリセットされます。

例

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

BEGIN
APEX_IR.RESET_REPORT(
p_page_id      => 1,
p_region_id    => 2505704029884282,
p_report_alias => 'CATEGORY_REPORT');
END;

13 APEX_ITEM

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

- CHECKBOX2ファンクション

- DATE_POPUPファンクション

- DATE_POPUP2ファンクション

- DISPLAY_AND_SAVEファンクション

- HIDDENファンクション

- MD5_CHECKSUMファンクション

- MD5_HIDDENファンクション

- POPUP_FROM_LOVファンクション

- POPUP_FROM_QUERYファンクション

- POPUPKEY_FROM_LOVファンクション

- POPUPKEY_FROM_QUERYファンクション

- RADIOGROUPファンクション

- SELECT_LISTファンクション

- SELECT_LIST_FROM_LOVファンクション

- SELECT_LIST_FROM_LOV_XLファンクション

- SELECT_LIST_FROM_QUERYファンクション

- SELECT_LIST_FROM_QUERY_XLファンクション

- TEXTファンクション

- TEXTAREAファンクション

- TEXT_FROM_LOVファンクション

- TEXT_FROM_LOV_QUERYファンクション

CHECKBOX2ファンクション

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

構文

APEX_ITEM.CHECKBOX2(
p_idx                       IN    NUMBER,
p_value                     IN    VARCHAR2 DEFAULT NULL,
p_attributes                IN    VARCHAR2 DEFAULT NULL,
p_checked_values            IN    VARCHAR2 DEFAULT NULL,
p_checked_values_delimiter  IN    VARCHAR2 DEFAULT ':',
p_item_id                   IN    VARCHAR2 DEFAULT NULL,
p_item_label                IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-1 CHECKBOX2のパラメータ

パラメータ

説明

p_idx

どのAPEX_APPLICATIONグローバル変数を使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。

p_value

チェック・ボックス、非表示フィールドまたは入力フォーム・アイテムの値

p_attributes

HTMLタグ属性を制御(無効にするなど)します。

p_checked_values

デフォルトで選択される値

p_checked_values_delimiter

前述のパラメータp_checked_valuesの値を区切ります。

p_item_id

<input>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

デフォルトのチェック・ボックスの動作

次の例に、emp表の各従業員に対して選択された状態のチェック・ボックスを作成する方法を示します。

SELECT APEX_ITEM.CHECKBOX2(1,empno,'CHECKED') "Select",
ename, job
FROM   emp
ORDER BY 1

次の例に、従業員のすべてのチェック・ボックスが選択されていない状態で表示する方法を示します。

SELECT APEX_ITEM.CHECKBOX2(1,empno) "Select",
ename, job
FROM   emp
ORDER BY 1

次の例に、部門10の従業員のチェック・ボックスを選択する方法を示します。

SELECT APEX_ITEM.CHECKBOX2(1,empno,DECODE(deptno,10,'CHECKED',NULL)) "Select",
ename, job
FROM   emp
ORDER BY 1

次の例に、部門10または20の従業員のチェック・ボックスを選択する方法を示します。

SELECT APEX_ITEM.CHECKBOX2(1,deptno,NULL,'10:20',':') "Select",
ename, job
FROM   emp
ORDER BY 1

送信時プロセスの作成

アプリケーションでチェック・ボックスを使用する場合、送信時プロセスを作成して、選択した行で特定のタイプのアクションを実行する必要がある場合があります。たとえば、次のロジックを使用する「削除」ボタンがあるとします。

SELECT APEX_ITEM.CHECKBOX2(1,empno) "Select",
ename, job
FROM   emp
ORDER  by 1

次に送信時プロセスの例を示します。

FOR I in 1..APEX_APPLICATION.G_F01.COUNT LOOP
DELETE FROM emp WHERE empno = to_number(APEX_APPLICATION.G_F01(i));
END LOOP;

次の例に、一意のIDを使用して、emp表の各従業員に対して未選択のチェック・ボックスを作成する方法を示します。この操作は、JavaScriptコード内からレコードを参照する場合に有効です。

SELECT APEX_ITEM.CHECKBOX2(1,empno,NULL,NULL,NULL,'f01_#ROWNUM#') "Select",
ename, job
FROM   emp
ORDER BY 1

DATE_POPUPファンクション

日付フィールドを含むフォームでこのファンクションを使用します。DATE_POPUPファンクションは、ポップアップ・カレンダのボタンが付いた日時フィールドを動的に生成します。

構文

APEX_ITEM.DATE_POPUP(
p_idx                       IN    NUMBER,
p_row                       IN    NUMBER,
p_value                     IN    VARCHAR2 DEFAULT NULL,
p_date_format               IN    DATE DEFAULT 'DD-MON-YYYY',
p_size                      IN    NUMBER DEFAULT 20,
p_maxlength                 IN    NUMBER DEFAULT 2000,
p_attributes                IN    VARCHAR2 DEFAULT NULL,
p_item_id                   IN    VARCHAR2 DEFAULT NULL,
p_item_label                IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-2 DATE_POPUPのパラメータ

パラメータ

説明

p_idx

どのAPEX_APPLICATIONグローバル変数を使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。

p_row

このパラメータは非推奨です。この値を指定しても無視されます。

p_value

フィールド・アイテムの値

p_date_format

有効なデータベースの日付書式

p_size

HTMLタグ属性を制御(無効にするなど)します。

p_maxlength

入力可能な最大文字数を決定します。<input> HTMLタグの最大長の属性になります

p_attributes

追加するHTMLパラメータ

p_item_id

<input>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

参照:
TO_CHARまたはTO_DATEファンクションの詳細は、Oracle Database SQL言語リファレンスを参照してください。

例

次の例に、APEX_ITEM.DATE_POPUPを使用して、hiredate列のポップアップ・カレンダのボタンを作成する方法を示します。

SELECT
empno,
APEX_ITEM.HIDDEN(1,empno)||
APEX_ITEM.TEXT(2,ename) ename,
APEX_ITEM.TEXT(3,job) job,
mgr,
APEX_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hd,
APEX_ITEM.TEXT(5,sal) sal,
APEX_ITEM.TEXT(6,comm) comm,
deptno
FROM emp
ORDER BY 1

DATE_POPUP2ファンクション

日付フィールドを含むフォームでこのファンクションを使用します。DATE_POPUP2ファンクションは、ボタンが付いたjQueryベースのポップアップ・カレンダがある日時フィールドを動的に生成します。

構文

APEX_ITEM.DATE_POPUP2(
p_idx                   in number,
p_value                 in date     default null,
p_date_format           in varchar2 default null,
p_size                  in number   default 20,
p_maxLength             in number   default 2000,
p_attributes            in varchar2 default null,
p_item_id               in varchar2 default null,
p_item_label            in varchar2 default null,
p_default_value         in varchar2 default null,
p_max_value             in varchar2 default null,
p_min_value             in varchar2 default null,
p_show_on               in varchar2 default 'button',
p_number_of_months      in varchar2 default null,
p_navigation_list_for   in varchar2 default 'NONE',
p_year_range            in varchar2 default null,
p_validation_date       in varchar2 default null)
RETURN VARCHAR2;

パラメータ

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

表13-3 DATE_POPUP2のパラメータ

パラメータ

説明

p_idx

どのAPEX_APPLICATIONグローバル変数を使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。

p_value

フィールド・アイテムの値

p_date_format

有効なデータベースの日付書式

p_size

HTMLタグ属性を制御(無効にするなど)します。

p_maxlength

入力可能な最大文字数を決定します。<input> HTMLタグの最大長の属性になります

p_attributes

追加するHTMLパラメータ

p_item_id

<input>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

p_default_value

DatePickerカレンダ・ポップアップで選択する必要があるデフォルトの日付

p_max_value

DatePickerから選択できる日付の最大値

p_min_value

DatePickerから選択できる日付の最小値

p_show_on

DatePickerを表示する場合を決定します。ボタンのクリックまたはアイテムの選択、あるいはその両方で表示できます。

p_number_of_months

表示される月の数を決定します。値は、[row,column]のような配列形式である必要があります。

p_navigation_list_for

月または年、あるいはその両方の変更時に選択リストを表示するかどうかを決定します。指定可能な値はMONTH、YEAR、MONTH_AND_YEARです。デフォルトはnullです。

p_year_range

年の選択リストに表示される年の範囲。

p_validation_date

日付の検証が失敗した日付値の格納に使用されます。

参照:
TO_CHARまたはTO_DATEファンクションの詳細は、Oracle Database SQL言語リファレンスを参照してください。

DISPLAY_AND_SAVEファンクション

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

構文

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

パラメータ

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

表13-4 DISPLAY_AND_SAVEのパラメータ

パラメータ

説明

p_idx

どのAPEX_APPLICATIONグローバル変数を使用するかを決定する番号。値の有効範囲は、1から50です。たとえば、1を指定するとF01、2を指定するとF02が作成されます。

p_value

現在の値

p_item_id

<span>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

例

次の例に、APEX_ITEM.DISPLAY_AND_SAVEファンクションの使用方法を示します。

SELECT APEX_ITEM.DISPLAY_AND_SAVE(10,empno) c FROM emp

HIDDENファンクション

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

構文

APEX_ITEM.HIDDEN(
p_idx         IN    NUMBER,
p_value       IN    VARCHAR2 DEFAULT
p_attributes  IN    VARCHAR2 DEFAULT NULL,
p_item_id     IN    VARCHAR2 DEFAULT NULL,
p_item_label  IN    VARCHAR2 DEFAULT NULL
) RETURN VARCHAR2;

パラメータ

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

表13-5 HIDDENのパラメータ

パラメータ

説明

p_idx

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

参照: 「APEX_APPLICATION」

p_value

非表示の入力フォーム・アイテムの値

p_attributes

追加するHTMLパラメータ

p_item_id

<input>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

例

通常、表の主キーは非表示列として格納され、後続の更新処理で使用されます。次に例を示します。

SELECT
empno,
APEX_ITEM.HIDDEN(1,empno)||
APEX_ITEM.TEXT(2,ename) ename,
APEX_ITEM.TEXT(3,job) job,
mgr,
APEX_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hiredate,
APEX_ITEM.TEXT(5,sal) sal,
APEX_ITEM.TEXT(6,comm) comm,
deptno
FROM emp
ORDER BY 1

前述の問合せは、次のページ・プロセスを使用して結果を処理します。

BEGIN
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
UPDATE emp
SET
ename=APEX_APPLICATION.G_F02(i),
job=APEX_APPLICATION.G_F03(i),
hiredate=to_date(APEX_APPLICATION.G_F04(i),'dd-mon-yyyy'),
sal=APEX_APPLICATION.G_F05(i),
comm=APEX_APPLICATION.G_F06(i)
WHERE empno=to_number(APEX_APPLICATION.G_F01(i));
END LOOP;
END;

G_F01列(非表示のEMPNOに対応)は、各行を更新するキーとして使用されることに注意してください。

MD5_CHECKSUMファンクション

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

このファンクションは、名前属性がfcsと等しく、最大50個の入力値に基づいたMD5チェックサムを値として持つ非表示のフォーム・フィールドを生成します。APEX_ITEM.MD5_CHECKSUMでも、Oracle DatabaseのDBMS_CRYPTOを使用して、MD5チェックサムが生成されます。

UTL_RAW.CAST_TO_RAW(DBMS_CRYPTO.MD5())

MD5チェックサムでは、データがネットワークを介して転送される際に、ハッシュやシーケンスによってデータ整合性が確保され、データが改ざんまたは盗用されていないことが保証されます。

構文

APEX_ITEM.MD5_CHECKSUM(
p_value01   IN    VARCHAR2 DEFAULT NULL,
p_value02   IN    VARCHAR2 DEFAULT NULL,
p_value03   IN    VARCHAR2 DEFAULT NULL,
...
p_value50   IN    VARCHAR2 DEFAULT NULL,
p_col_sep   IN    VARCHAR2 DEFAULT '|',
p_item_id   IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-6 MD5_CHECKSUMのパラメータ

パラメータ

説明

p_value01

...

p_value50

50個の値が入力可能です。このパラメータを指定しない場合、デフォルトはNULLになります

p_col_sep

p_valueの入力を区切るために使用する文字列。デフォルトは縦線(|)です

p_item_id

HTMLフォーム・アイテムのID

例

このファンクションは、fcsという名前を持つ非表示のフォーム要素を生成します。その後、値にはAPEX_APPLICATION.G_FCS配列を使用してアクセスできます。

SELECT APEX_ITEM.MD5_CHECKSUM(ename,job,sal) md5_cks,
ename, job, sal
FROM emp

MD5_HIDDENファンクション

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

このファンクションは、最大50個の入力値に基づいたMD5チェックサムを値として持つ非表示のフォーム・フィールドを生成します。APEX_ITEM.MD5_HIDDENでも、Oracle DatabaseのDBMS_CRYPTOを使用して、MD5チェックサムが生成されます。

UTL_RAW.CAST_TO_RAW(DBMS_CRYPTO.MD5())

MD5チェックサムでは、データがネットワークを介して転送される際に、ハッシュやシーケンスによってデータ整合性が確保され、データが改ざんまたは盗用されていないことが保証されます。

構文

APEX_ITEM.MD5_HIDDEN(
p_idx       IN    NUMBER,
p_value01   IN    VARCHAR2 DEFAULT NULL,
p_value02   IN    VARCHAR2 DEFAULT NULL,
p_value03   IN    VARCHAR2 DEFAULT NULL,
...
p_value50   IN    VARCHAR2 DEFAULT NULL,
p_col_sep   IN    VARCHAR2 DEFAULT '|',
p_item_id   IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-7 MD5_HIDDENのパラメータ

パラメータ

説明

p_idx

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

p_value01

...

p_value50

50個の値が入力可能です。このパラメータを指定しない場合、デフォルトはNULLになります

p_col_sep

p_valueの入力を区切るために使用する文字列。デフォルトは縦線(|)です

p_item_id

HTMLフォーム・アイテムのID

例

p_idxパラメータは生成されるFXXフォーム要素を指定します。次の例では、7はF07を生成します。また、HTML非表示フォーム要素が生成されることにも注意してください。

SELECT APEX_ITEM.MD5_HIDDEN(7,ename,job,sal)md5_h, ename, job, sal
FROM emp

POPUP_FROM_LOVファンクション

このファンクションは、アプリケーションの共有値リスト(LOV)からHTMLポップアップ選択リストを生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、POPUP_FROM_LOVファンクションは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.POPUP_FROM_LOV(
p_idx              IN    NUMBER,
p_value            IN    VARCHAR2 DEFAULT NULL,
p_lov_name         IN    VARCHAR2,
p_width            IN    VARCHAR2 DEFAULT NULL,
p_max_length       IN    VARCHAR2 DEFAULT NULL,
p_form_index       IN    VARCHAR2 DEFAULT '0',
p_escape_html      IN    VARCHAR2 DEFAULT NULL,
p_max_elements     IN    VARCHAR2 DEFAULT NULL,
p_attributes       IN    VARCHAR2 DEFAULT NULL,
p_ok_to_query      IN    VARCHAR2 DEFAULT 'YES',
p_item_id          IN    VARCHAR2 DEFAULT NULL,
p_item_label       IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-8 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サイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが#FORM_OPEN#置換文字列の前にある場合、この索引は0 (ゼロ)で、Oracle Application Expressによって自動的にオープンされるフォームはフォーム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というLOVからポップアップを生成する問合せの例を示します。

SELECT APEX_ITEM.POPUP_FROM_LOV (1,deptno,'DEPT_LOV') dt
FROM emp

POPUP_FROM_QUERYファンクション

このファンクションは問合せからHTMLポップアップ選択リストを生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、POPUP_FROM_QUERYファンクションは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.POPUP_FROM_QUERY(

p_idx              IN    NUMBER,
p_value            IN    VARCHAR2 DEFAULT NULL,
p_lov_query        IN    VARCHAR2,
p_width            IN    VARCHAR2 DEFAULT NULL,
p_max_length       IN    VARCHAR2 DEFAULT NULL,
p_form_index       IN    VARCHAR2 DEFAULT '0',
p_escape_html      IN    VARCHAR2 DEFAULT NULL,
p_max_elements     IN    VARCHAR2 DEFAULT NULL,
p_attributes       IN    VARCHAR2 DEFAULT NULL,
p_ok_to_query      IN    VARCHAR2 DEFAULT 'YES',
p_item_id          IN    VARCHAR2 DEFAULT NULL,
p_item_label       IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-9 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サイトにポストする検索フィールドなど)を埋め込む必要がある場合にのみ使用します。このフォームが#FORM_OPEN#置換文字列の前にある場合、この索引は0 (ゼロ)で、Oracle Application Expressによって自動的にオープンされるフォームはフォーム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 APEX_ITEM.POPUP_FROM_QUERY (1,deptno,'SELECT dname, deptno FROM dept') dt
FROM emp

POPUPKEY_FROM_LOVファンクション

このファンクションは、共有LOVからポップアップ・キー選択リストを生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、POPUPKEY_FROM_LOVファンクションは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.POPUPKEY_FROM_LOV(
p_idx              IN    NUMBER,
p_value            IN    VARCHAR2 DEFAULT NULL,
p_lov_name         IN    VARCHAR2,
p_width            IN    VARCHAR2 DEFAULT NULL,
p_max_length       IN    VARCHAR2 DEFAULT NULL,
p_form_index       IN    VARCHAR2 DEFAULT '0',
p_escape_html      IN    VARCHAR2 DEFAULT NULL,
p_max_elements     IN    VARCHAR2 DEFAULT NULL,
p_attributes       IN    VARCHAR2 DEFAULT NULL,
p_ok_to_query      IN    VARCHAR2 DEFAULT 'YES',
p_item_id          IN    VARCHAR2 DEFAULT NULL,
p_item_label       IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

ポップアップに関連付けられたテキスト・フィールドはLOV問合せの1列目に表示されますが、実際の値は問合せの2列目で指定されます。

パラメータ

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

表13-10 POPUPKEY_FROM_LOVのパラメータ

パラメータ

説明

p_idx

フォーム要素名を示します。たとえば、1はF01、2はF02です。通常、p_idxは指定した列の定数です。

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

SELECT APEX_ITEM.POPUPKEY_FROM_LOV (1,deptno,'DEPT') dt,
APEX_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 Application Expressによって自動的にオープンされるフォームはフォーム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

<input>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

例

次の例に、共有LOVからポップアップ・キー選択リストを生成する方法を示します。

SELECT APEX_ITEM.POPUPKEY_FROM_LOV (1,deptno,'DEPT') dt
FROM emp

POPUPKEY_FROM_QUERYファンクション

このファンクションは、SQL問合せからポップアップ・キー選択リストを生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、POPUPKEY_FROM_QUERYファンクションは、F01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.POPUPKEY_FROM_QUERY(
p_idx              IN    NUMBER,
p_value            IN    VARCHAR2 DEFAULT NULL,
p_lov_query        IN    VARCHAR2,
p_width            IN    VARCHAR2 DEFAULT NULL,
p_max_length       IN    VARCHAR2 DEFAULT NULL,
p_form_index       IN    VARCHAR2 DEFAULT '0',
p_escape_html      IN    VARCHAR2 DEFAULT NULL,
p_max_elements     IN    VARCHAR2 DEFAULT NULL,
p_attributes       IN    VARCHAR2 DEFAULT NULL,
p_ok_to_query      IN    VARCHAR2 DEFAULT 'YES',
p_item_id          IN    VARCHAR2 DEFAULT NULL,
p_item_label       IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-11 POPUPKEY_FROM_QUERYのパラメータ

パラメータ

説明

p_idx

フォーム要素名。たとえば、1はF01、2はF02です。通常、p_idxは指定した列の定数です。

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

SELECT APEX_ITEM.POPUPKEY_FROM_QUERY (1,deptno,'SELECT dname, deptno FROM dept') dt,
APEX_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 Application Expressによって自動的にオープンされるフォームはフォーム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 APEX_ITEM.POPUPKEY_FROM_QUERY (1,deptno,'SELECT dname, deptno FROM dept') dt
FROM emp

RADIOGROUPファンクション

このファンクションは、SQL問合せからラジオ・グループを生成します。

構文

APEX_ITEM.RADIOGROUP(
p_idx              IN    NUMBER,
p_value            IN    VARCHAR2 DEFAULT NULL,
p_selected_value   IN    VARCHAR2 DEFAULT NULL,
p_display          IN    VARCHAR2 DEFAULT NULL,
p_attributes       IN    VARCHAR2 DEFAULT NULL,
p_onblur           IN    VARCHAR2 DEFAULT NULL,
p_onchange         IN    VARCHAR2 DEFAULT NULL,
p_onfocus          IN    VARCHAR2 DEFAULT NULL,
p_item_id          IN    VARCHAR2 DEFAULT NULL,
p_item_label       IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-12 RADIOGROUPのパラメータ

パラメータ

説明

p_idx

どのAPEX_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。

p_item_id

<input>タグのHTML属性のID

p_item_label

アイテムに対して作成された非表示のラベル

例

次の例に、ラジオ・グループのデフォルトとしてemp表から部門20を選択する方法を示します。

SELECT APEX_ITEM.RADIOGROUP (1,deptno,'20',dname) dt
FROM   dept
ORDER  BY 1

SELECT_LISTファンクション

このファンクションは、静的選択リストを動的に生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.SELECT_LIST(
p_idx           IN   NUMBER,
p_value         IN   VARCHAR2 DEFAULT NULL,
p_list_values   IN   VARCHAR2 DEFAULT NULL,
p_attributes    IN   VARCHAR2 DEFAULT NULL,
p_show_null     IN   VARCHAR2 DEFAULT 'NO',
p_null_value    IN   VARCHAR2 DEFAULT '%NULL%',
p_null_text     IN   VARCHAR2 DEFAULT '%',
p_item_id       IN   VARCHAR2 DEFAULT NULL,
p_item_label    IN   VARCHAR2 DEFAULT NULL,
p_show_extra    IN   VARCHAR2 DEFAULT 'YES')
RETURN VARCHAR2;

パラメータ

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

表13-13 SELECT_LISTのパラメータ

パラメータ

説明

p_idx

フォーム要素名。たとえば、1はF01、2はF02です。通常、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_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 APEX_ITEM.SELECT_LIST(1,'Y','Yes;Y,No;N')yn
FROM emp

次の例に、APEX_ITEM.SELECT_LISTを使用して、次に示す条件で静的選択リストを生成する方法を示します。

- フォーム配列要素F03が生成される(p_idxパラメータ)。

- 各要素の初期値がempの行のdeptnoの値と等しくなる(p_valueパラメータ)。

- 選択リストに4つのオプションが含まれる(p_list_valuesパラメータ)。

- 選択リスト内のテキストが赤色で表示される(p_attributesパラメータ)。

- NULLのオプションが表示され(p_show_null)、このオプションによってテキストとして-Select-が表示される(p_null_textパラメータ)。

- 各行に対してHTML ID属性が生成され、各行の#ROWNUM#はカレント行rownumに置換される(p_item_idパラメータ)。(つまり、行4に対してf03_4のIDが生成される。)

- 各行に対してHTMLラベル要素が生成される(p_item_labelパラメータ)。

- deptnoの現行の値が、p_list_valuesパラメータに渡されたLOVに含まれていない場合でも表示される(p_show_extraパラメータ)。

SELECT  empno "Employee #",
ename "Name",
APEX_ITEM.SELECT_LIST(
p_idx           =>   3,
p_value         =>   deptno,
p_list_values   =>   'ACCOUNTING;10,RESEARCH;20,SALES;30,OPERATIONS;40',
p_attributes    =>   'style="color:red;"',
p_show_null     =>   'YES',
p_null_value    =>   NULL,
p_null_text     =>   '-Select-',
p_item_id       =>   'f03_#ROWNUM#',
p_item_label    =>   'Label for f03_#ROWNUM#',
p_show_extra    =>   'YES') "Department"
FROM  emp;

SELECT_LIST_FROM_LOVファンクション

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

構文

APEX_ITEM.SELECT_LIST_FROM_LOV(
p_idx           IN   NUMBER,
p_value         IN   VARCHAR2 DEFAULT NULL,
p_lov           IN   VARCHAR2,
p_attributes    IN   VARCHAR2 DEFAULT NULL,
p_show_null     IN   VARCHAR2 DEFAULT 'YES',
p_null_value    IN   VARCHAR2 DEFAULT '%NULL%',
p_null_text     IN   VARCHAR2 DEFAULT '%',
p_item_id       IN   VARCHAR2 DEFAULT NULL,
p_item_label    IN   VARCHAR2 DEFAULT NULL,
p_show_extra    IN   VARCHAR2 DEFAULT 'YES')
RETURN VARCHAR2;

パラメータ

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

表13-14 SELECT_LIST_FROM_LOVのパラメータ

パラメータ

説明

p_idx

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

p_value

現在の値。この値はp_lovパラメータの値である必要があります。

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

<select>タグのHTML属性のID。

p_item_label

アイテムに対して作成された非表示のラベル。

p_show_extra

p_valueの値が選択リストで指定されていない場合でも、現在の値を表示します。

例

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

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

SELECT_LIST_FROM_LOV_XLファンクション

このファンクションは、共有の値リスト(LOV)から大規模(32KBを超える)な選択リストを動的に生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。このファンクションはSELECT_LIST_FROM_LOVと同じですが、戻り値はCLOBになります。4000文字を超える列値を処理する必要があるSQL問合せで、このファンクションを使用します。

構文

APEX_ITEM.SELECT_LIST_FROM_LOV_XL(
p_idx           IN   NUMBER,
p_value         IN   VARCHAR2 DEFAULT NULL,
p_lov           IN   VARCHAR2,
p_attributes    IN   VARCHAR2 DEFAULT NULL,
p_show_null     IN   VARCHAR2 DEFAULT 'YES',
p_null_value    IN   VARCHAR2 DEFAULT '%NULL%',
p_null_text     IN   VARCHAR2 DEFAULT '%',
p_item_id       IN   VARCHAR2 DEFAULT NULL,
p_item_label    IN   VARCHAR2 DEFAULT NULL,
p_show_extra    IN   VARCHAR2 DEFAULT 'YES')
RETURN CLOB;

パラメータ

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

表13-15 SELECT_LIST_FROM_LOV_XLのパラメータ

パラメータ

説明

p_idx

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

p_value

現在の値。この値はp_lovパラメータの値である必要があります。

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

<select>タグのHTML属性のID。

p_item_label

アイテムに対して作成された非表示のラベル。

p_show_extra

p_valueの値が選択リストで指定されていない場合でも、現在の値を表示します。

例

次の例に、アプリケーションで定義されたLOVに基づいて選択リストを作成する方法を示します。

SELECT APEX_ITEM.SELECT_LIST_FROM_LOV_XL(2,job,'JOB_FLOW_LOV')job
FROM emp

SELECT_LIST_FROM_QUERYファンクション

このファンクションは、問合せから静的選択リストを動的に生成します。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.SELECT_LIST_FROM_QUERY(
p_idx           IN    NUMBER,
p_value         IN    VARCHAR2 DEFAULT NULL,
p_query         IN    VARCHAR2,
p_attributes    IN    VARCHAR2 DEFAULT NULL,
p_show_null     IN    VARCHAR2 DEFAULT 'YES',
p_null_value    IN    VARCHAR2 DEFAULT '%NULL%',
p_null_text     IN    VARCHAR2 DEFAULT '%',
p_item_id       IN    VARCHAR2 DEFAULT NULL,
p_item_label    IN    VARCHAR2 DEFAULT NULL,
p_show_extra    IN    VARCHAR2 DEFAULT 'YES')
RETURN VARCHAR2;

パラメータ

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

表13-16 SELECT_LIST_FROM_QUERYのパラメータ

パラメータ

説明

p_idx

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

p_value

現在の値。この値はp_queryパラメータの値である必要があります。

p_query

2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。

SELECT dname, deptno FROM dept

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

また、この問合せのSELECT句に指定されている列が1つのみの場合は、表示する目的と戻す目的の両方でこの列の値が使用されることにも注意してください。

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

<select>タグのHTML属性のID。

p_item_label

アイテムに対して作成された非表示のラベル。

p_show_extra

p_valueの値が選択リストで指定されていない場合でも、 現在の値を表示します。

例

次の例に、SQL問合せに基づく選択リストを示します。

SELECT APEX_ITEM.SELECT_LIST_FROM_QUERY(3,job,'SELECT DISTINCT job FROM emp')job
FROM emp

SELECT_LIST_FROM_QUERY_XLファンクション

このファンクションはSELECT_LIST_FROM_QUERYと同じですが、戻り値はCLOBになります。そのため、4000文字を超える列値を処理する必要があるSQL問合せで使用できます。APEX_ITEMパッケージで使用可能な他のファンクションと同様に、これらの選択リストのファンクションはF01からF50のフォームの配列要素でフォームを生成するように設計されています。

構文

APEX_ITEM.SELECT_LIST_FROM_QUERY_XL(
p_idx           IN    NUMBER,
p_value         IN    VARCHAR2 DEFAULT NULL,
p_query         IN    VARCHAR2,
p_attributes    IN    VARCHAR2 DEFAULT NULL,
p_show_null     IN    VARCHAR2 DEFAULT 'YES',
p_null_value    IN    VARCHAR2 DEFAULT '%NULL%',
p_null_text     IN    VARCHAR2 DEFAULT '%',
p_item_id       IN    VARCHAR2 DEFAULT NULL,
p_item_label    IN    VARCHAR2 DEFAULT NULL,
p_show_extra    IN    VARCHAR2 DEFAULT 'YES')
RETURN CLOB;

パラメータ

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

表13-17 SELECT_LIST_FROM_QUERY_XLパラメータ

パラメータ

説明

p_idx

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

p_value

現在の値。この値はp_queryパラメータの値である必要があります。

p_query

2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。

SELECT dname, deptno FROM dept

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

また、この問合せのSELECT句に指定されている列が1つのみの場合は、表示する目的と戻す目的の両方でこの列の値が使用されることにも注意してください。

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

<select>タグのHTML属性のID。

p_item_label

アイテムに対して作成された非表示のラベル。

p_show_extra

p_valueの値が選択リストで指定されていない場合でも、 現在の値を表示します。

例

次の例に、SQL問合せに基づく選択リストを示します。

SELECT APEX_ITEM.SELECT_LIST_FROM_QUERY_XL(3,job,'SELECT DISTINCT job FROM emp')job
FROM emp

TEXTファンクション

このファンクションは、SQL問合せからテキスト・フィールド(またはテキスト入力フォーム・アイテム)を生成します。

構文

APEX_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)
RETURN VARCHAR2;

パラメータ

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

表13-18 TEXTのパラメータ

パラメータ

説明

p_idx

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

参照: 「APEX_APPLICATION」

p_value

テキスト・フィールド・アイテムの値。

p_size

HTMLタグ属性を制御(無効にするなど)します。

p_maxlength

テキスト・ボックスに入力可能な最大文字数。

p_attributes

追加するHTMLパラメータ。

p_item_id

<input>タグのHTML属性のID。

p_item_label

アイテムに対して作成された非表示のラベル。

例

次の問合せの例に、各行に1つの更新フィールドを生成する方法を示します。ename、salおよびcomm列ではAPEX_ITEM.TEXTファンクションを使用して、各行にHTMLテキスト・フィールドを生成します。また、各列がそれぞれの配列に格納されるように問合せ内の各アイテムに一意のp_idxパラメータが渡されることに注意してください。

SELECT
empno,
APEX_ITEM.HIDDEN(1,empno)||
APEX_ITEM.TEXT(2,ename) ename,
APEX_ITEM.TEXT(3,job) job,
mgr,
APEX_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hiredate,
APEX_ITEM.TEXT(5,sal) sal,
APEX_ITEM.TEXT(6,comm) comm,
deptno
FROM emp
ORDER BY 1

TEXTAREAファンクション

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

構文

APEX_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 NULL,
p_item_id     IN    VARCHAR2 DEFAULT NULL,
p_item_label  IN    VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

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

表13-19 TEXTAREAのパラメータ

パラメータ

説明

p_idx

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

参照: 「APEX_APPLICATION」

p_value

テキスト領域アイテムの値。

p_rows

テキスト領域の高さ(HTML行属性)

p_cols

テキスト領域の幅(HTML行属性)。

p_attributes

追加するHTMLパラメータ。

p_item_id

<textarea>タグのHTML属性のID。

p_item_label

アイテムに対して作成された非表示のラベル。

例

次の例に、SQL問合せに基づくテキスト領域を作成する方法を示します。

SELECT APEX_ITEM.TEXTAREA(3,ename,5,80) a
FROM emp

TEXT_FROM_LOVファンクション

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

構文

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

パラメータ

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

表13-20 TEXT_FROM_LOVパラメータ

パラメータ

説明

p_value

フィールド・アイテムの値。

p_valueがLOVで指定されていない場合、p_null_textが表示される値になることに注意してください。

p_lov

共有LOVのテキストの名前。このLOVはアプリケーションで定義する必要があります。

p_null_text

フィールド・アイテムの値がNULLの場合に表示される値

例

次の例では、名前付きLOV (EMPNO_ENAME_LOV)から表示値を導出する方法を示します。

SELECT APEX_ITEM.TEXT_FROM_LOV(empno,'EMPNO_ENAME_LOV') c FROM emp

TEXT_FROM_LOV_QUERYファンクション

このファンクションを使用して、アイテムをテキストとして表示します。そのテキストは、LOV問合せから表示値を導出します。

構文

APEX_ITEM.TEXT_FROM_LOV_QUERY (
p_value       IN    VARCHAR2 DEFAULT NULL,
p_query       IN    VARCHAR2,
p_null_text   IN    VARCHAR2 DEFAULT '%')
RETURN VARCHAR2;

パラメータ

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

表13-21 TEXT_FROM_LOV_QUERYのパラメータ

パラメータ

説明

p_value

フィールド・アイテムの値。

p_query

2つの列(表示列および戻り列)を選択するSQL問合せ。次に例を示します。

SELECT dname, deptno FROM dept

この問合せのSELECT句に指定されている列が1つのみの場合は、表示する目的と戻す目的の両方でこの列の値が使用されることに注意してください。

p_null_text

フィールド・アイテムの値がNULLの場合、または対応するエントリがLOV問合せの値p_valueで指定されていない場合に表示される値。

例

次の例では、問合せから表示値を導出する方法を示します。

SELECT APEX_ITEM.TEXT_FROM_LOV_QUERY(empno,'SELECT ename, empno FROM emp') c from emp

14 APEX_JAVASCRIPT

APEX_JAVASCRIPTパッケージには、動的なJavaScriptコードをHTTP出力に追加するためのユーティリティ・ファンクションが用意されています。通常、このパッケージはプラグイン開発に使用されます。

- ADD_3RD_PARTY_LIBRARY_FILEプロシージャ

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

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

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

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

- ADD_INLINE_CODEプロシージャ

- ADD_LIBRARYプロシージャ

- ADD_ONLOAD_CODEプロシージャ

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

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

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

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

- ESCAPEファンクション

ADD_3RD_PARTY_LIBRARY_FILEプロシージャ

このプロシージャは、サード・パーティのJavaScriptファイルをロードするためのスクリプト・タグを追加し、アプリケーションに関して指定したコンテンツ配信ネットワークも考慮します。サポートされるライブラリは、jQuery、jQueryUIおよびjQuery Mobileです。

構文

add_3rd_party_library_file (
p_library in varchar2,
p_file_name in varchar2,
p_directory in varchar2 default null,
p_version in varchar2 default null );

パラメータ

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

表14-1 ADD_3RD_PARTY_LIBRARY_FILEのパラメータ

パラメータ

説明

p_library

c_library_*定数のいずれかを使用します。

p_file_name

バージョン、.minおよび.jsを含めずにファイル名を指定します。

p_directory

ファイルp_file_nameがあるディレクトリ(オプション)。

p_version

値が指定されていない場合、同じバージョンのApplication Expressの値が使用されます(オプション)。

例

この例では、jQuery UIのドラッグ可能な機能のJavaScriptファイルをロードします。

apex_javascript.add_3rd_party_library_file (
p_library   =>apex_javascript.c_library_jquery_ui,
p_file_name => 'jquery.ui.draggable' )

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

このファンクションは、属性と、その属性の二重引用符で囲まれたエスケープされたテキストを戻します。

注意:
このファンクションは、HTMLタグはエスケープしません。HTMLタグがJavaScriptオブジェクトの属性の割当てに悪影響を与えないようにするだけです。XSS(クロスサイト・スクリプティング)攻撃を防ぐには、SYS.HTF.ESCAPE_SCをコールして、HTMLページに文字列を差し込む際に、埋め込まれたJavaScriptコードが実行されるのを防ぐ必要もあります。

構文

APEX_JAVASCRIPT.ADD_ATTRIBUTE (
p_name       IN VARCHAR2,
p_value      IN VARCHAR2,
p_omit_null  IN BOOLEAN:=TRUE,
p_add_comma  IN BOOLEAN:=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-2 ADD_ATTRIBUTEのシグネチャ1のパラメータ

パラメータ

説明

p_name

JavaScriptオブジェクト属性の名前。

p_value

JavaScriptオブジェクト属性に割り当てられるテキスト。

p_omit_null

TRUEを設定すると、p_valueが空の場合にNULL.が戻されます。

p_add_comma

TRUEを設定すると、戻される値の後にカンマが追加されます。

例

addEmployee JavaScriptファンクションへのコールを追加し、様々な属性値を持つJavaScriptオブジェクトを渡します。このコールの出力は、次のようになります。

addEmployee(
{"FirstName":"John",
"LastName":"Doe",
"Salary":2531.29,
"Birthday":new Date(1970,1,15,0,0,0),
"isSalesman":true
});

最後の属性では、False(p_omit_null)とFALSE(p_add_comma)という組合せのパラメータを使用して、最後の属性が常に生成されるようにする必要があります。これによって、後続のカンマを追加する必要があるかどうかについて、他のパラメータを調べる必要がなくなります。

apex_javascript.add_onload_code (
'addEmployee('||
'{'||
apex_javascript.add_attribute('FirstName',  sys.htf.escape_sc(l_first_name))||
apex_javascript.add_attribute('LastName',   sys.htf.escape_sc(l_last_name))||
apex_javascript.add_attribute('Salary',     l_salary)||
apex_javascript.add_attribute('Birthday',   l_birthday)||
apex_javascript.add_attribute('isSalesman', l_is_salesman, false, false)||
'});' );

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

このファンクションは、属性とその属性の数値を戻します。

構文

APEX_JAVASCRIPT.ADD_ATTRIBUTE (
p_name       IN VARCHAR2,
p_value      IN NUMBER,
p_omit_null  IN BOOLEAN:=TRUE,
p_add_comma  IN BOOLEAN:=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-3 ADD_ATTRIBUTEのシグネチャ2のパラメータ

パラメータ

説明

p_name

JavaScriptオブジェクト属性の名前。

p_value

JavaScriptオブジェクト属性に割り当てられる数値。

p_omit_null

TRUEを設定すると、p_valueが空の場合にNULL.が戻されます。

p_add_comma

TRUEを設定すると、戻される値の後にカンマが追加されます。

例

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

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

このファンクションは、属性と、JavaScriptのブール値のTRUE、FALSEまたはNULLを戻します。

構文

APEX_JAVASCRIPT.ADD_ATTRIBUTE (
p_name       IN VARCHAR2,
p_value      IN BOLLEAN,
p_omit_null  IN BOOLEAN:=TRUE,
p_add_comma  IN BOOLEAN:=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-4 ADD_ATTRIBUTEのシグネチャ3のパラメータ

パラメータ

説明

p_name

JavaScriptオブジェクト属性の名前。

p_value

JavaScriptオブジェクト属性に割り当てられるブール値。

p_omit_null

p_omit_nullにTRUEを設定すると、p_valueがNULLの場合、このファンクションはNULLを戻します。

p_add_comma

TRUEを設定すると、戻される値の後にカンマが追加されます。

例

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

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

このファンクションは、属性と、その属性の日付を戻します。p_valueがnullの場合は、値nullが戻されます。

構文

APEX_JAVASCRIPT.ADD_ATTRIBUTE (
p_name       IN VARCHAR2,
p_value      IN DATE,
p_omit_null  IN BOOLEAN:=TRUE,
p_add_comma  IN BOOLEAN:=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-5 ADD_ATTRIBUTEのシグネチャ4のパラメータ

パラメータ

説明

p_name

JavaScriptオブジェクト属性の名前。

p_value

JavaScriptオブジェクト属性に割り当てられる日付。

p_omit_null

p_omit_nullにTRUEを設定すると、p_valueがNULLの場合、このファンクションはNULLを戻します。

p_add_comma

TRUEを設定すると、戻される値の後にカンマが追加されます。

例

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

ADD_INLINE_CODEプロシージャ

このプロシージャは、インラインで含められるコード・スニペットをHTML出力に追加します。たとえば、新しいファンクションまたはグローバル変数宣言を追加する場合にこのプロシージャを使用できます。コードを実行する場合は、ADD_ONLOAD_CODEプロシージャを使用する必要があります。

構文

APEX_JAVASCRIPT.ADD_INLINE_CODE (
p_code       IN VARCHAR2,
p_key        IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表14-6 ADD_INLINE_CODEのパラメータ

パラメータ

説明

p_code

JavaScriptコード・スニペット。「$s('P1_TEST',123);」など。

p_key

コード・スニペットの識別子。識別子を指定した場合、同じ名前のコード・スニペットがすでに追加されていると、新しいコード・スニペットは無視されます。p_keyがNULLの場合、スニペットは常に追加されます。

例

次の例では、JavaScriptファンクションinitMySuperWidgetをHTML出力に含めます。このプラグインがページで複数回使用され、add_inline_codeが複数回コールされた場合でも、すべてのコールがp_keyに対して同じ値を持つため、HTML出力に1回しか追加されません。

apex_javascript.add_inline_code (
p_code => 'function initMySuperWidget(){'||chr(10)||
'  // do something'||chr(10)||
'};',
p_key  => 'my_super_widget_function' );

ADD_LIBRARYプロシージャ

このプロシージャは、JavaScriptライブラリをロードするためのスクリプト・タグを追加します。ライブラリが追加されている場合、2回目は追加されません。

構文

APEX_JAVASCRIPT.ADD_LIBRARY (
p_name                   IN VARCHAR2,
p_directory              IN VARCHAR2,
p_version                IN VARCHAR2 DEFAULT NULL,
p_check_to_add_minified  IN BOOLEAN DEFAULT FALSE,
p_skip_extension         IN BOOLEAN  DEFAULT FALSE,
p_ie_condition           IN VARCHAR2 DEFAULT NULL,
p_key                    IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表14-7 ADD_LIBRARYのパラメータ

パラメータ

説明

p_name

JavaScriptファイルの名前。指定時に.jsを使用する必要はありません。

p_directory

JavaScriptライブラリをロードするディレクトリ。末尾のスラッシュを付ける必要があります。

p_version

バージョン識別子。

p_check_to_add_minified

TRUEの場合、プロシージャは.min拡張子の追加が適切かどうかをテストし、適切な場合は追加します。これは、アプリケーションがDEBUGモードで実行されていない場合に追加され、DEBUGモードでは省略されます。

p_skip_extension

TRUEの場合、拡張子.jsは追加されません。

p_ie_condition

Internet Explorerの条件として使用される条件。

p_key

ライブラリがすでにロードされているかどうかを示すために使用する名前。指定しなければ、p_directory||p_name||p_versionにデフォルト設定します。

例

次の例には、p_plugin.file_prefixで指定したディレクトリのJavaScriptライブラリ・ファイルmy_library.1.2.min.js(アプリケーションがDEBUGモードで実行されていない場合)またはmy_library.1.2.js(アプリケーションがDEBUGモードで実行されている場合)が含まれます。p_check_to_add_minifiedがTRUEに設定されているため、アプリケーションがDEBUGモードで実行されていない場合に、.min拡張子の追加が行われます。p_skip_extensionが指定されていないため、これを.jsにデフォルト設定します。また、p_keyが指定されていないため、キーはp_plugin.file_prefix||mylibrary.1.2にデフォルト設定します。

apex_javascript.add_library (
p_name                  => 'mylibrary.1.2',
p_directory             => p_plugin.file_prefix,
p_check_to_add_minified => true );

ADD_ONLOAD_CODEプロシージャ

このプロシージャは、onloadイベントによって実行されるHTML出力にjavascriptコード・スニペットを追加します。同じキーを持つエントリが存在する場合、それは無視されます。p_keyがNULLの場合、スニペットは常に追加されます。

構文

APEX_JAVASCRIPT.ADD_ONLOAD_CODE (
p_code           IN VARCHAR2,
p_key            IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表14-8 ADD_ONLOAD_CODEのパラメータ

パラメータ

説明

p_code

onloadイベントの間に実行されるJavaScriptコード・スニペット。

p_key

指定されたコード・スニペットを識別する任意の名前。名前を指定した場合、同じp_keyを持つコールが他になければ、このコード・スニペットが追加されます。p_keyがNULLの場合、コード・スニペットは常に追加されます。

例

JavaScriptコールinitMySuperWidget()をonloadバッファに追加します。このプラグインがページで複数回使用され、add_onload_codeが複数回コールされた場合でも、すべてのコールがp_keyに対して同じ値を持つため、HTML出力に1回しか追加されません。

apex_javascript.add_onload_code (
p_code => 'initMySuperWidget();'
p_key  => 'my_super_widget' );

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

このファンクションは、二重引用符で囲まれたエスケープされたテキストを戻します。たとえば、"That\'s a test"のような文字列が戻されます。

注意:
このファンクションは、HTMLタグはエスケープしません。HTMLタグがJavaScriptオブジェクトの属性の割当てに悪影響を与えないようにするだけです。XSS(クロスサイト・スクリプティング)攻撃を防ぐには、SYS.HTF.ESCAPE_SCをコールして、HTMLページに文字列を差し込む際に、埋め込まれたJavaScriptコードが実行されるのを防ぐ必要もあります。

構文

APEX_JAVASCRIPT.ADD_VALUE (
p_value          IN VARCHAR2,
p_add_comma      IN BOOLEAN :=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-9 ADD_VALUEのシグネチャ1のパラメータ

パラメータ

説明

p_value

エスケープされ、二重引用符で囲まれるテキスト。

p_add_comma

p_add_commaがTRUEの場合、後続のカンマが追加されます。

例

次の例では、onloadバッファにいくつかのJavaScriptコードを追加します。p_item.attribute_01の値を、まず、XSS攻撃を防ぐためにhtf.escape_scでエスケープし、apex_javascript.add_valueをコールしてJavaScript変数lTestに割り当てます。Add_valueは、値を適切にエスケープし、二重引用符で囲みます。カンマは不要なため、p_add_commaはFALSEに設定します。

apex_javascript.add_onload_code (
'var lTest = '||apex_javascript.add_value(sys.htf.escape_sc(p_item.attribute_01), FALSE)||';'||chr(10)||
'showMessage(lTest);' );

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

このファンクションは、p_valueをJavaScriptの数値として戻します。p_valueがNULLの場合は、値nullが戻されます。

構文

APEX_JAVASCRIPT.ADD_VALUE (
p_value          IN NUMBER,
p_add_comma      IN BOOLEAN :=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-10 ADD_VALUEのシグネチャ2のパラメータ

パラメータ

説明

p_value

JavaScriptの数値として戻される数値。

p_add_comma

p_add_commaがTRUEの場合、後続のカンマが追加されます。デフォルトはTRUEです。

例

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

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

このファンクションは、p_valueをJavaScriptのブール値として戻します。p_valueがNULLの場合は、値nullが戻されます。

構文

APEX_JAVASCRIPT.ADD_VALUE (
p_value          IN BOOLEAN,
p_add_comma      IN BOOLEAN :=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-11 ADD_VALUEのシグネチャ3のパラメータ

パラメータ

説明

p_value

JavaScriptのブール値として戻されるブール値。

p_add_comma

p_add_commaがTRUEの場合、後続のカンマが追加されます。デフォルトはTRUEです。

例

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

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

このファンクションは、p_valueをJavaScriptの日付オブジェクトとして戻します。p_valueがNULLの場合は、値nullが戻されます。

構文

APEX_JAVASCRIPT.ADD_VALUE (
p_value          IN NUMBER,
p_add_comma      IN BOOLEAN :=TRUE)
RETURN VARCHAR2;

パラメータ

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

表14-12 ADD_VALUEのシグネチャ4のパラメータ

パラメータ

説明

p_value

JavaScriptの日付オブジェクトとして戻される日付。

p_add_comma

p_add_commaがTRUEの場合、後続のカンマが追加されます。デフォルトはTRUEです。

例

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

ESCAPEファンクション

このファンクションはJavaScriptで使用されるテキストをエスケープします。このファンクションは次の置換を行います。

表14-13 置換する値の表

置換

置換後

<

\u003c

>

\u003e

\

\\

/

\/

"

\u0022

'

\u0027

タブ

\t

chr(10)

\n

注意:
このファンクションは、HTMLタグがJavaScriptオブジェクトの属性の割当てに悪影響を与えないようにするとともに、HTMLタグ「<」および「>」をエスケープします。その他のHTMLタグはエスケープされないため、XSS(クロスサイト・スクリプティング)攻撃を確実に防ぐには、SYS.HTF.ESCAPE_SCをコールして、HTMLページに文字列を差し込む際に、埋め込まれたJavaScriptコードが実行されるのを防ぐ必要もあります。

構文

APEX_JAVASCRIPT.ESCAPE (
p_text  IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表14-14 ESCAPEのパラメータ

パラメータ

説明

p_text

エスケープされるテキスト。

例

onloadバッファにいくつかのJavaScriptコードを追加します。p_item.attribute_01の値は、まず、XSS攻撃を防ぐためにhtf.escape_scでエスケープし、引用符などの特殊文字がJavaScriptコードに悪影響を与えないようにapex_javascript.escapeでエスケープします。

apex_javascript.add_onload_code (
'var lTest = "'||apex_javascript.escape(sys.htf.escape_sc(p_item.attribute_01))||'";'||chr(10)||
'showMessage(lTest);' );

15 APEX_JSON

このパッケージには、JSONを解析および生成するユーティリティが格納されています。

- パッケージの概要および例

- 定数およびデータ型

- CLOSE_ALLプロシージャ

- CLOSE_ARRAYプロシージャ

- CLOSE_OBJECTプロシージャ

- DOES_EXISTファンクション

- FIND_PATHS_LIKEファンクション

- FREE_OUTPUTプロシージャ

- FLUSHプロシージャ

- GET_BOOLEANファンクション

- GET_CLOB_OUTPUTファンクション

- GET_COUNTファンクション

- GET_DATEファンクション

- GET_MEMBERSファンクション

- GET_NUMBERファンクション

- GET_VALUEファンクション

- GET_VARCHAR2ファンクション

- INITIALIZE_CLOB_OUTPUTプロシージャ

- INITIALIZE_OUTPUTプロシージャ

- OPEN_ARRAYプロシージャ

- OPEN_OBJECTプロシージャ

- PARSEプロシージャのシグネチャ1

- PARSEプロシージャのシグネチャ2

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

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

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

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

- TO_XMLTYPEファンクション

- WRITEプロシージャのシグネチャ1

- WRITEプロシージャのシグネチャ2

- WRITEプロシージャのシグネチャ3

- WRITEプロシージャのシグネチャ4

- WRITEプロシージャのシグネチャ5

- WRITEプロシージャのシグネチャ6

- WRITEプロシージャのシグネチャ7

- WRITEプロシージャのシグネチャ8

- WRITEプロシージャのシグネチャ9

- WRITEプロシージャのシグネチャ10

- WRITEプロシージャのシグネチャ11

- WRITEプロシージャのシグネチャ12

- WRITEプロシージャのシグネチャ13

- WRITEプロシージャのシグネチャ14

- WRITEプロシージャのシグネチャ15

- WRITEプロシージャのシグネチャ16

パッケージの概要および例

JSONデータを含む文字列から読み取るには、まずparse()を使用してその文字列を内部形式に変換します。次に、get_%ルーチン(get_varchar2()、get_number()など)を使用して検索するデータおよびfind_paths_like()にアクセスします。

あるいは、to_xmltype()を使用してJSON文字列をXMLTypeに変換します。

このパッケージには、JSON形式の出力を生成するプロシージャも格納されています。オーバーロードされたopen_%()、close_%()およびwrite()の各プロシージャを書込みに使用します。

例1

この例では、JSON文字列を解析し、メンバー変数"a"の値を出力します。

DECLARE
s varchar2(32767) := '{ "a": 1, "b": ["hello", "world"]}';
BEGIN
apex_json.parse(s);
sys.dbms_output.put_line('a is '||apex_json.get_varchar2(p_path => 'a'));
END;

例2

この例では、JSON文字列をXMLに変換し、XMLTABLEを使用してメンバー値を問い合せます。

select col1, col2
from xmltable (
'/json/row'
passing apex_json.to_xmltype('[{"col1": 1, "col2": "hello"},'||
'{"col1": 2, "col2": "world"}]')
columns
col1 number path '/row/col1',
col2 varchar2(5) path '/row/col2' );

例3

この例では、ネストされたJSONオブジェクトをHTPバッファに書き込みます。

BEGIN
apex_json.open_object;        -- {
apex_json.write('a', 1);    --   "a":1
apex_json.open_array('b');  --  ,"b":[
apex_json.open_object;    --    {
apex_json.write('c',2); --      "c":2
apex_json.close_object;   --    }
apex_json.write('hello'); --   ,"hello"
apex_json.write('world'); --   ,"world"
apex_json.close_all;          --  ]
-- }
END;

定数およびデータ型

パーサー・インタフェース

パーサー・インタフェースに使用される定数は次のとおりです。

subtype t_kind is binary_integer range 1 .. 7;
c_null     constant t_kind := 1;
c_true     constant t_kind := 2;
c_false    constant t_kind := 3;
c_number   constant t_kind := 4;
c_varchar2 constant t_kind := 5;
c_object   constant t_kind := 6;
c_array    constant t_kind := 7;

JSONデータ用のストレージ

JSONデータは、varchar2別索引の表に格納されます。JSON値はレコードとして格納されます。弁別子"kind"により、値がnull、true、false、数値、varchar2、オブジェクト、配列のいずれであるか決まります。使用されるレコード・フィールドとその方法は"kind"によって異なります。次に明記されていない場合は、他のレコード・フィールドの値が定義されていません。

* c_null: -

* c_true: -

* c_false: -

* c_number: number_valueに数値が格納されています

* c_varchar2: varchar2_valueにvarchar2値が格納されています

* c_object: object_membersにオブジェクトのメンバーの名前が格納されています

* c_array: number_valueに配列の長さが格納されています

type t_value is record (
kind           t_kind,
number_value   number,
varchar2_value varchar2(32767),
object_members wwv_flow_t_varchar2 );
type t_values is table of t_value index by varchar2(32767);

日付のデフォルト書式

c_date_iso8601 constant varchar2(30) := 'yyyy-mm-dd"T"hh24:mi:ss"Z"';

デフォルトのJSON値の表

g_values t_values;

PARSE()のスローされるエラー

e_parse_error     exception;
pragma exception_init(e_parse_error, -20987);

CLOSE_ALLプロシージャ

このプロシージャは、最も外側のネスト・レベルまでオブジェクトおよび配列をすべて閉じます。

構文

APEX_JSON.CLOSE_ALL;

パラメータ

なし。

例

「パッケージの概要および例」を参照してください。

CLOSE_ARRAYプロシージャ

このプロシージャは、次のような右大カッコを書き込みます。

]

構文

APEX_JSON.CLOSE_ARRAY ();

パラメータ

なし。

例

「パッケージの概要および例」を参照してください。

CLOSE_OBJECTプロシージャ

このプロシージャは、次のような右中カッコを書き込みます。

}

構文

APEX_JSON.CLOSE_OBJECT ();

パラメータ

なし。

例

「パッケージの概要および例」を参照してください。

DOES_EXISTファンクション

このファンクションは、指定されたパスが既存の値を指しているかどうかを判別します。

構文

APEX_JSON.DOES_EXIST (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN BOOLEAN;

パラメータ

表15-1 DOES_EXISTファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値

表15-2 DOES_EXISTファンクションの戻り値

戻り値

説明

TRUE

指定されたパスは既存の値を指しています。

FALSE

指定されたパスは既存の値を指していません

例

この例では、JSON文字列を解析し、パス下の値が含まれているかどうかを出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "items": [ 1, 2, { "foo": true } ] }');
if apex_json.does_exist(p_path => 'items[%d].foo', p0 => 3, p_values =>
j) then
dbms_output.put_line('found items[3].foo');
end if;
END;

FIND_PATHS_LIKEファンクション

このファンクションは、指定されたパターンに一致するp_valuesへのパスを戻します。

構文

APEX_JSON.FIND_PATHS_LIKE (
p_return_path      IN VARCHAR2,
p_subpath          IN VARCHAR2 DEFAULT NULL,
p_value            IN VARCHAR2 DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN wwv_flow_t_varchar2;

パラメータ

表15-3 FIND_PATHS_LIKEファンクションのパラメータ

パラメータ

説明

p_return_path

戻りパスの検索パターン。

p_subpath

p_return_path下の検索パターン(オプション)。

p_value

値の検索パターン(オプション)。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-4 FIND_PATHS_LIKEファンクションの戻り値および発生するエラー

戻り値

説明

apex_t_varchar2

パターンに一致するパスの表。

VALUE_ERROR

p_values(p_path)が配列またはオブジェクトではない場合、このエラーが発生します。

例

この例では、JSON文字列を解析し、パターンに一致するパスを検索し、パス下の値を出力します。

DECLARE
j            apex_json.t_values;
l_paths apex_t_varchar2;
BEGIN
apex_json.parse(j, '{ "items": [ { "name": "Amulet of Yendor", "magical": true }, '||
{ "name": "Slippers",  "magical": "rather not" } ]}');
l_paths := apex_json.find_paths_like (
p_values         => j,
p_return_path => 'items[%]',
p_subpath       => '.magical',
p_value           => 'true' );
dbms_output.put_line('Magical items:');
for i in 1 .. l_paths.count loop
dbms_output.put_line(apex_json.get_varchar2(p_values => j, p_path => l_paths(i)||'.name'));
end loop;
END;

FREE_OUTPUTプロシージャ

出力リソースを解放します。INITIALIZE_CLOB_OUTPUTを使用して一時CLOBに書き込んでいる場合、プロセス後にこのプロシージャをコールします。

構文

free_output;

例

この例では、CLOB出力用にAPEX_JSONを構成してJSONを生成し、DBMS_OUTPUTを使用してCLOBを出力し、最後にCLOBを解放します。

BEGIN
apex_json.initialize_clob_output;

apex_json.open_object;
apex_json.write('hello', 'world');
apex_json.close_object;

dbms_output.put_line(apex_json.get_clob_output);

apex_json.free_output;
END;

FLUSHプロシージャ

このプロシージャは、保留中の変更をフラッシュします。closeプロシージャは自動的にフラッシュします。

構文

APEX_JSON.FLUSH

パラメータ

なし。

例

この例では、未完了のJSONを書き込みます。

BEGIN
apex_json.open_object;
apex_json.write('attr', 'value');
apex_json.flush;
sys.htp.p('the "}" is missing');
END;

GET_BOOLEANファンクション

このファンクションは、ブール数値を戻します。

構文

APEX_JSON.GET_BOOLEAN (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_default          IN BOOLEAN  DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN BOOLEAN;

パラメータ

表15-5 GET_BOOLEANファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_default

メンバーが存在しない場合のデフォルト値。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値

表15-6 GET_BOOLEANファンクションの戻り値

戻り値

説明

TRUE

指定されたパスの位置にある値。

FALSE

指定されたパスの位置にある値。

NULL

指定されたパスの位置にある値。

VALUE_ERROR

p_values(p_path)がブール値ではない場合に、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にあるブール値を出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "items": [ 1, 2, { "foo": true } ] }');
if apex_json.get_boolean(p_path=>'items[%d].foo', p0=>3,p_values=>j) then
dbms_output.put_line('items[3].foo is true');
END IF;
END;

GET_CLOB_OUTPUTファンクション

INITIALIZE_CLOB_OUTPUTを使用して作成した一時CLOBを戻します。

構文

function get_clob_output
return clob;

例

この例では、CLOB出力用にAPEX_JSONを構成してJSONを生成し、DBMS_OUTPUTを使用してCLOBを出力し、最後にCLOBを解放します。

BEGIN
apex_json.initialize_clob_output;

apex_json.open_object;
apex_json.write('hello', 'world');
apex_json.close_object;

dbms_output.put_line(apex_json.get_clob_output);

apex_json.free_output;
END;

GET_COUNTファンクション

このファンクションは、配列要素またはオブジェクト・メンバーの数を戻します。

構文

APEX_JSON.GET_COUNT (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN NUMBER;

パラメータ

表15-7 GET_COUNTファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-8 GET_COUNTファンクションの戻り値および発生するエラー

戻り値

説明

NUMBER

配列要素またはオブジェクト・メンバーの数、あるいは配列またはオブジェクトが見つからない場合はnull

VALUE_ERROR

p_values(p_path)が配列またはオブジェクトではない場合、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にあるメンバーの数を出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": [1, 2, 3, 4] }');
dbms_output.put_line(apex_json.get_count(p_path=>'.',p_values=>j)); -- 2 (foo and bar)
dbms_output.put_line(apex_json.get_count(p_path=>'bar',p_values=>j)); -- 4
END;

GET_DATEファンクション

このファンクションは、日付メンバー値を戻します。

構文

APEX_JSON.GET_DATE (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_default          IN DATE     DEFAULT NULL,
p_format           IN VARCHAR2 DEFAULT c_date_iso8601,
p_values           IN t_values DEFAULT g_values )
RETURN DATE;

パラメータ

表15-9 GET_DATEファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_default

メンバーが存在しない場合のデフォルト値。

p_format

日付書式マスク。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-10 GET_DATEファンクションの戻り値および発生するエラー

戻り値

説明

DATE

日付を戻します。

VALUE_ERROR

p_values(p_path)が日付ではない場合に、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にある値を出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "items": [ 1, 2, { "foo": "2014-04-29T10:08:00Z" }] }');

dbms_output.put_line(to_char(apex_json.get_date(p_path=>'items[%d].foo',p0=>3, p_values=>j), 'DD-Mon-YYYY'));
END;

GET_MEMBERSファンクション

このファンクションは、オブジェクトのOBJECT_MEMBERS名の表を戻します。

構文

APEX_JSON.GET_MEMBERS (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN WWV_FLOW_T_VARCHAR2;

パラメータ

表15-11 GET_MEMBERSファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-12 GET_MEMBERSファンクションの戻り値および発生するエラー

戻り値

説明

OBJECT_MEMBERS

オブジェクトのOBJECT_MEMBERS、またはオブジェクトが見つからない場合はnull。

VALUE_ERROR

p_values(p_path)が配列またはオブジェクトではない場合、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にあるメンバーを出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": [1, 2, 3, 4] }');
dbms_output.put_line(apex_json.get_members(p_path=>'.',p_values=>j)(1)); -- foo
dbms_output.put_line(apex_json.get_members(p_path=>'.',p_values=>j)(2)); -- bar
END;

GET_NUMBERファンクション

このファンクションは、数値を戻します。

構文

APEX_JSON.GET_NUMBER (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_default          IN BOOLEAN DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN NUMBER;

パラメータ

表15-13 GET_NUMBERファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_default

メンバーが存在しない場合のデフォルト値。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-14 GET_NUMBERファンクションの戻り値および発生するエラー

戻り値

説明

NUMBER

指定されたパスの位置にある値。

VALUE_ERROR

p_values(p_path)が数値ではない場合に、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にある値を出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "items": [ 1, 2, { "foo": 42 } ] }');
dbms_output.put_line(apex_json.get_number(p_path=>'items[%d].foo',p0=> 3,p_values=>j));
END;

GET_VALUEファンクション

このファンクションはt_valueを戻します。

構文

APEX_JSON.GET_VALUE (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN t_value;

パラメータ

表15-15 GET_VALUEファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-16 GET_VALUEファンクションの戻り値および発生するエラー

戻り値

説明

t_value

指定されたパスの位置にあるt_value。データが見つからない場合、レコード属性はnullです。

VALUE_ERROR

p_values(p_path)が配列またはオブジェクトではない場合、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にある値の属性を出力します。

DECLARE
j apex_json.t_values;
v apex_json.t_value;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": [1, 2, 3, 4] }');
v := apex_json.get_value(p_path=>'bar[%d]',p0=> 2,p_values=>j); -- returns the t_value for bar[2]
dbms_output.put_line(v.number_value); -- 2
v := apex_json.get_value(p_path=>'does.not.exist',p_values=>j);
dbms_output.put_line(case when v.kind is null then 'not found!' end);
END;

GET_VARCHAR2ファンクション

このファンクションは、varchar2メンバー値を戻します。このファンクションは、ブール値および数値をvarchar2値に変換します。

構文

APEX_JSON.GET_VARCHAR2 (
p_path             IN VARCHAR2,
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_default          IN BOOLEAN  DEFAULT NULL,
p_values           IN t_values DEFAULT g_values )
RETURN VARCHAR2;

パラメータ

表15-17 GET_VARCHAR2ファンクションのパラメータ

パラメータ

説明

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_default

メンバーが存在しない場合のデフォルト値。

p_values

解析されたJSONメンバー。デフォルトは、g_valuesです。

戻り値/発生するエラー

表15-18 GET_VARCHAR2ファンクションの戻り値および発生するエラー

戻り値

説明

VARCHAR2

これは指定されたパスの位置にある値です。

VALUE_ERROR

p_values(p_path)が配列またはオブジェクトではない場合、このエラーが発生します。

例

この例では、JSON文字列を解析し、位置にある値を出力します。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "items": [ 1, 2, { "foo": 42 } ] }');
dbms_output.put_line(apex_json.get_varchar2(p_path=>'items[%d].foo',p0=> 3,p_values=>j));
END;

INITIALIZE_CLOB_OUTPUTプロシージャ

一時CLOBに書き込むために出力インタフェースを初期化します。デフォルトではSYS.HTPに書き込みます。CLOB出力を使用している場合は、最後にFREE_OUTPUT()をコールしてCLOBを解放する必要があります。

構文

APEX_JSON.INITIALIZE_CLOB_OUTPUT (
p_dur         in pls_integer default sys.dbms_lob.call,
p_cache       in boolean     default true,
p_indent      in pls_integer default null );

パラメータ

表15-19 INITIALIZE_CLOB_OUTPUTプロシージャのパラメータ

パラメータ

説明

p_dur

一時CLOBの継続時間。指定可能な値はDBMS_LOB.SESSIONまたはDBMS_LOB.CALL(デフォルト)です。

p_cache

LOBをバッファ・キャッシュに読み込むかどうかを指定します。

p_indent

インデント・レベル。デフォルトは、デバッグが有効な場合は2、それ以外の場合は0です。

例

この例では、CLOB出力用にAPEX_JSONを構成してJSONを生成し、DBMS_OUTPUTを使用してCLOBを出力し、最後にCLOBを解放します。

BEGIN
apex_json.initialize_clob_output;

apex_json.open_object;
apex_json.write('hello', 'world');
apex_json.close_object;

dbms_output.put_line(apex_json.get_clob_output);

apex_json.free_output;
END;

INITIALIZE_OUTPUTプロシージャ

このプロシージャは、出力インタフェースを初期化します。次に示すパラメータを変更する場合のみ、このプロシージャをコールする必要があります。出力は最初、パラメータの表で説明されているデフォルトですでに構成されています。

構文

APEX_JSON.INITIALIZE_OUTPUT (
p_http_header     in boolean     default true,
p_http_cache      in boolean     default false,
p_http_cache_etag in varchar2    default null,
p_indent          in pls_integer default null );

パラメータ

表15-20 INITIALIZE_OUTPUTプロシージャのパラメータ

パラメータ

説明

p_http_header

TRUE (デフォルト)の場合、アプリケーション/JSONのMIMEタイプ・ヘッダーを書き込みます。

p_http_cache

このパラメータは、p_write_headerがTRUEの場合のみ関連があります。TRUEの場合、Cache-Control: max-age=315360000と書き込みます。FALSE (デフォルト)の場合、Cache-Control: no-cacheと書き込みます。それ以外の場合、Cache-Controlを書き込みません。

http_cache_etag

nullでない場合、etagヘッダーを書き込みます。このパラメータは、P_HTTP_CACHEがTRUEの場合のみ使用されます。

p_indent

インデント・レベル。デフォルトは、デバッグが有効な場合は2、それ以外の場合は0です。

例

この例では、デフォルトのヘッダーは直接書き込まれるため、生成しないようにAPEX_JSONを構成します。

BEGIN
apex_json.initialize_output (
p_http_header => false );

sys.owa_util.mime_header('application/json', false);
sys.owa_util.status_line(429, 'Too Many Requests');
sys.owa_util.http_header_close;
--
apex_json.open_object;
apex_json.write('maxRequestsPerSecond', 10);
apex_json.close_object;
END;

OPEN_ARRAYプロシージャ

このプロシージャは、次のような左大カッコを書き込みます。

[

構文

APEX_JSON.OPEN_ARRAY (
p_name     IN VARCHAR2 DEFAULT NULL );

パラメータ

表15-21 OPEN_ARRAYプロシージャのパラメータ

パラメータ

説明

p_name

nullでない場合、左大カッコの前にオブジェクト属性名およびコロンを書き込みます。

例

この例では、write { "array":[ 1 ,[ ] ] }を実行します。

BEGIN
apex_json.open_object; -- {
apex_json.open_array('array'); -- "array": [
apex_json.write(1); -- 1
apex_json.open_array; -- , [
apex_json.close_array; -- ]
apex_json.close_array; -- ]
apex_json.close_object; -- }
END;

OPEN_OBJECTプロシージャ

このプロシージャは、次のような左中カッコを書き込みます。

{

構文

APEX_JSON.OPEN_OBJECT (
p_name     IN VARCHAR2 DEFAULT NULL );

パラメータ

表15-22 OPEN_OBJECTプロシージャのパラメータ

パラメータ

説明

p_name

nullでない場合、左中カッコの前にオブジェクト属性名およびコロンを書き込みます。

例

この例では、write { "obj": { "obj-attr": "value" }}を実行します。

BEGIN
apex_json.open_object; -- {
apex_json.open_object('obj'); -- "obj": {
apex_json.write('obj-attr', 'value'); -- "obj-attr": "value"
apex_json.close_all; -- }}
END;

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

このプロシージャは、JSON形式のvarchar2またはclobを解析し、メンバーをp_valuesに格納します。

構文

APEX_JSON.PARSE (
p_values   in out nocopy t_values,
p_source   in varchar2,
p_strict   in boolean default true );

APEX_JSON.PARSE (
p_values   in out nocopy t_values,
p_source   in clob,
p_strict   in boolean default true );

パラメータ

表15-23 PARSEプロシージャのパラメータ

パラメータ

説明

p_values

JSONメンバーと値が格納されるvarchar2別索引の結果配列。デフォルトは、g_valuesです。

p_source

JSONソース(varchar2またはclob)

p_strict

TRUE (デフォルト)の場合、厳密なJSONルールを強制します

例

この例では、JSONを解析し、メンバー値を出力します。

DECLARE
l_values apex_json.t_values;
BEGIN
apex_json.parse (
p_values => l_values,
p_source => '{ "type": "circle", "coord": [10, 20] }' );
sys.htp.p('Point at '||
apex_json.get_number (
p_values => l_values,
p_path   => 'coord[1]')||
','||
apex_json.get_number (
p_values => l_values,
p_path   => 'coord[2]'));
END;

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

このプロシージャは、JSON形式のvarchar2またはclobを解析し、メンバーをパッケージのグローバルのg_valuesに格納します。この簡略化されたAPIの動作は、parse()プロシージャのシグネチャ1と似ていますが、開発者が解析されたJSONデータ用のローカル変数を宣言し、各JSON APIコールに渡す必要がありません。

構文

APEX_JSON.PARSE (
p_source   IN VARCHAR2,
p_strict   IN BOOLEAN DEFAULT TRUE );

APEX_JSON.PARSE (
p_source   IN CLOB,
p_strict   IN BOOLEAN DEFAULT TRUE );

パラメータ

表15-24 PARSEプロシージャのパラメータ

パラメータ

説明

p_source

JSONソース(varchar2またはclob)。

p_strict

TRUE (デフォルト)の場合、厳密なJSONルールを強制します。

例

この例では、JSONを解析し、メンバー値を出力します。

apex_json.parse('{ "type": "circle", "coord": [10, 20] }');
sys.htp.p('Point at '||
apex_json.get_number(p_path=>'coord[1]')||
','||
apex_json.get_number(p_path=>'coord[2]'));

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

このファンクションは、文字列をエスケープされたJSON値に変換します。

構文

APEX_JSON.STRINGIFY (
p_value  IN VARCHAR2 )
RETURN VARCHAR2;

パラメータ

表15-25 STRINGIFYファンクションのパラメータ

パラメータ

説明

p_value

変換される文字列。

戻り値

表15-26 STRINGIFYファンクションの戻り値

戻り値

説明

VARCHAR2

変換後のエスケープされたJSON値。

例

この例は、JSONのvarchar2値を戻す問合せです。

select apex_json.stringify('line 1'||chr(10)||'line 2') from dual;

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

このファンクションは、数値をエスケープされたJSON値に変換します。

構文

APEX_JSON.STRINGIFY (
p_value  IN NUMBER )
RETURN VARCHAR2;

パラメータ

表15-27 STRINGIFYファンクションのパラメータ

パラメータ

説明

p_value

変換される数値。

戻り値

表15-28 STRINGIFYファンクションの戻り値

戻り値

説明

VARCHAR2

変換後のエスケープされたJSON値。

例

この例は、JSONの数値を戻す問合せです。

select apex_json.stringify(-1/10) from dual

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

このファンクションは、日付をエスケープされたJSON値に変換します。

構文

APEX_JSON.STRINGIFY (
p_value  IN DATE,
p_format IN VARCHAR2 DEFAULT c_date_iso8601 )
RETURN VARCHAR2;

パラメータ

表15-29 STRINGIFYファンクションのパラメータ

パラメータ

説明

p_value

変換される日付値です。

戻り値

表15-30 STRINGIFYファンクションの戻り値

戻り値

説明

VARCHAR2

変換後のエスケープされたJSON値。

例

この例は、日付への変換に適したJSONのvarchar2値を戻す問合せです。

select apex_json.stringify(sysdate) from dual

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

このファンクションは、ブール値をエスケープされたJSON値に変換します。

構文

APEX_JSON.STRINGIFY (
p_value  IN BOOLEAN,
RETURN VARCHAR2;

パラメータ

表15-31 STRINGIFYファンクションのパラメータ

パラメータ

説明

p_value

変換されるブール値です。

戻り値

表15-32 STRINGIFYファンクションの戻り値

戻り値

説明

VARCHAR2

変換後のエスケープされたJSON値。

例

この例では、JSONのブール値を出力します。

BEGIN
sys.htp.p(apex_json.stringify(true));
sys.htp.p(apex_json.stringify(false));
END;

TO_XMLTYPEファンクション

このプロシージャは、JSON形式のvarchar2またはCLOBを解析し、XMLTypeに変換します。

構文

APEX_JSON.TO_XMLTYPE (
p_source   IN VARCHAR2,
p_strict   IN BOOLEAN DEFAULT TRUE )
RETURN sys.xmltype;

APEX_JSON.TO_XMLTYPE (
p_source   IN CLOB,
p_strict   IN BOOLEAN DEFAULT TRUE )
RETURN sys.xmltype;

パラメータ

表15-33 TO_XMLTYPEファンクションのパラメータ

パラメータ

説明

p_source

JSONソース(VARCHAR2またはCLOB)

p_strict

TRUE (デフォルト)の場合、厳密なJSONルールを強制します

戻り値

表15-34 TO_XMLTYPEファンクションの戻り値

戻り値

説明

sys.xmltype

JSONデータのxmltype表現。

例

この例では、JSONを解析し、XML表現を出力します。

DECLARE
l_xml xmltype;
BEGIN
l_xml := apex_json.to_xmltype('{ "items": [ 1, 2, { "foo": true } ] }');
dbms_output.put_line(l_xml.getstringval);
END;

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

このプロシージャは、型VARCHAR2の配列属性を書き込みます。

構文

APEX_JSON.WRITE (
p_value    IN VARCHAR2 );

パラメータ

表15-35 WRITEプロシージャのパラメータ

パラメータ

説明

p_value

書き込まれる値。

例

この例では、1、"two"、"long text"、false、現在の日付およびXML文書のJSON表現が格納されている配列を書き込みます。

DECLARE
l_clob clob := 'long text';
l_xml sys.xmltype := sys.xmltype('<obj><foo>1</foo><bar>2</bar></obj>');
BEGIN
apex_json.open_array; -- [
apex_json.write(1); -- 1
apex_json.write('two'); -- , "two"
apex_json.write(l_clob); -- , "long text"
apex_json.write(false); -- , false
apex_json.write(sysdate); -- , "2014-05-05T05:36:08Z"
apex_json.write(l_xml); -- , { "foo": 1, "bar": 2 }
apex_json.close_array; -- ]
END;

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

このプロシージャは、型clobの配列属性を書き込みます。

構文

APEX_JSON.WRITE (
p_value    IN CLOB );

パラメータ

表15-36 WRITEプロシージャのパラメータ

パラメータ

説明

p_value

書き込まれる値。

例

「WRITEプロシージャのシグネチャ1」を参照してください。

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

このプロシージャは、型NUMBERの配列属性を書き込みます。

構文

APEX_JSON.WRITE (
p_value    IN NUMBER );

パラメータ

表15-37 WRITEプロシージャのパラメータ

パラメータ

説明

p_value

書き込まれる値。

例

「WRITEプロシージャのシグネチャ1」を参照してください。

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

このプロシージャは、型dateの配列属性を書き込みます

構文

APEX_JSON.WRITE (
p_value    IN DATE,
p_format   IN VARCHAR2 DEFAULT c_date_iso8601 );

パラメータ

表15-38 WRITEプロシージャのパラメータ

パラメータ

説明

p_value

書き込まれる値。

p_format

日付書式マスク(デフォルトはc_date_iso8601)。

例

「WRITEプロシージャのシグネチャ1」を参照してください。

WRITEプロシージャのシグネチャ5

このプロシージャは、型booleanの配列属性を書き込みます。

構文

APEX_JSON.WRITE (
p_value    IN BOOLEAN );

パラメータ

表15-39 WRITEプロシージャのパラメータ

パラメータ

説明

p_value

書き込まれる値。

例

「WRITEプロシージャのシグネチャ1」を参照してください。

WRITEプロシージャのシグネチャ6

このプロシージャは、型sys.xmltypeの配列属性を書き込みます。プロシージャでは、XSL変換を使用してJSONを生成します。値のJSON型を決めるには、次のルールに従います。

- 値が空である場合、NULL値を生成します。

- 大文字(値)がTRUEの場合、ブール値TRUEを生成します。

- 大文字(値)がFALSEの場合、ブール値FALSEを生成します。

- XPath numberファンクションがTRUEを戻した場合、その値をそのまま生成します。それ以外の場合、その値を引用符で囲みます(つまり、JSON文字列として処理します)。

構文

APEX_JSON.WRITE (
p_value    IN sys.xmltype );

パラメータ

表15-40 WRITEプロシージャのパラメータ

パラメータ

説明

p_value

書き込まれる値。

例

「WRITEプロシージャのシグネチャ1」を参照してください。

WRITEプロシージャのシグネチャ7

このプロシージャは、カーソルが戻す行がすべて格納された配列を書き込みます。各行は別個のオブジェクトです。問合せにオブジェクト・タイプ、コレクションまたはカーソルの列が含まれる場合、プロシージャではwrite(xmltype)を使用してJSONを生成します。それ以外の場合は、DBMS_SQLを使用して行をフェッチし、該当する列データ型のwrite()プロシージャを出力に使用します。列の型がvarchar2で、大文字の値が'TRUE'または'FALSE'である場合、ブール値を生成します。

構文

APEX_JSON.WRITE (
p_cursor      IN OUT NOCOPY sys_refcursor );

パラメータ

表15-41 WRITEプロシージャのパラメータ

パラメータ

説明

p_cursor

カーソル。

例1

この例では、部門10および20のJSONオブジェクトが格納されている配列を書き込みます。

DECLARE
c sys_refcursor;
BEGIN
open c for select deptno, dname, loc from dept where deptno in (10, 20);
apex_json.write(c);
END;

出力は次のとおりです。

[ { "DEPTNO":10 ,"DNAME":"ACCOUNTING" ,"LOC":"NEW YORK" }
, { "DEPTNO":20 ,"DNAME":"RESEARCH" ,"LOC":"DALLAS" } ]

WRITEプロシージャのシグネチャ8

このプロシージャは、型VARCHAR2のオブジェクト属性を書き込みます。

構文

APEX_JSON.WRITE (
p_name         IN VARCHAR2,
p_value        IN VARCHAR2,
p_write_null   IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-42 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_value

書き込まれる属性値。

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

この例では、様々な型の名前付きメンバー属性を持つオブジェクトを1つ書き込みます。文の右側のコメントは、生成される出力を示します。

DECLARE
l_clob clob := 'long text';
l_xml sys.xmltype := sys.xmltype('<obj><foo>1</foo><bar>2</bar></obj>');
BEGIN
apex_json.open_object; -- {
apex_json.write('a1', 1); -- "a1": 1
apex_json.write('a2', 'two'); -- ,"a2": "two"
apex_json.write('a3', l_clob); -- ,"a3": "long text"
apex_json.write('a4', false); -- ,"a4": false
apex_json.write('a5', sysdate); -- ,"a5": "2014-05-05T05:36:08Z"
apex_json.write('a6', l_xml); -- ,"a6": { "foo": 1, "bar": 2 }
apex_json.close_object; -- }
END;

WRITEプロシージャのシグネチャ9

このプロシージャは、型CLOBのオブジェクト属性を書き込みます。

構文

APEX_JSON.WRITE (
p_name     IN VARCHAR2,
p_value    IN CLOB,
p_write_null   IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-43 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_value

書き込まれる属性値。

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

「WRITEプロシージャのシグネチャ8」の例を参照してください。

WRITEプロシージャのシグネチャ10

このプロシージャは、型NUMBERのオブジェクト属性を書き込みます。

構文

APEX_JSON.WRITE (
p_name     IN VARCHAR2,
p_value    IN NUMBER,
p_write_null   IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-44 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_value

書き込まれる属性値。

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

「WRITEプロシージャのシグネチャ8」の例を参照してください。

WRITEプロシージャのシグネチャ11

このプロシージャは、型dateのオブジェクト属性を書き込みます。

構文

APEX_JSON.WRITE (
p_name     IN VARCHAR2,
p_value    IN DATE,
p_format   IN VARCHAR2 DEFAULT c_date_iso8691,
p_write_null   IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-45 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_value

書き込まれる属性値。

p_format

日付書式マスク(デフォルトはwwv_flow_json.c_date_iso8601)。

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

「WRITEプロシージャのシグネチャ8」の例を参照してください。

WRITEプロシージャのシグネチャ12

このプロシージャは、型booleanのオブジェクト属性を書き込みます。

構文

APEX_JSON.WRITE (
p_name     IN VARCHAR2,
p_value    IN BOOLEAN,
p_write_null   IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-46 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_value

書き込まれる属性値。

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

「WRITEプロシージャのシグネチャ8」の例を参照してください。

WRITEプロシージャのシグネチャ13

このプロシージャは、カーソルが戻す行がすべて格納された配列が値である属性を書き込みます。各行は別個のオブジェクトです。

問合せにオブジェクト・タイプ、コレクションまたはカーソルの列が含まれる場合、プロシージャではwrite(p_name,<xmltype>)を使用します。「WRITEプロシージャのシグネチャ14」を参照してください。それ以外の場合は、DBMS_SQLを使用して行をフェッチし、該当する列データ型のwrite()プロシージャを出力に使用します。列の型がvarchar2で、大文字の値が'TRUE'または'FALSE'である場合、ブール値を生成します。

構文

APEX_JSON.WRITE (
p_name        IN VARCHAR2,
p_cursor      IN OUT NOCOPY sys_refcursor );

パラメータ

表15-47 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_cursor

カーソル。

例

この例では、部門10および20のJSONオブジェクトが格納されている配列を、オブジェクト・メンバー属性として書き込みます。

DECLARE
c sys_refcursor;
BEGIN
open c for select deptno,
dname,
cursor(select empno,
ename
from emp e
where e.deptno=d.deptno) emps
from dept d;
apex_json.open_object;
apex_json. write('departments', c);
apex_json.close_object;
END;

{ "departments":[
{"DEPTNO":10,
"DNAME":"ACCOUNTING",
"EMPS":[{"EMPNO":7839,"ENAME":"KING"}]},
...
,{"DEPTNO":40,"DNAME":"OPERATIONS","EMPS":null}] }

WRITEプロシージャのシグネチャ14

このプロシージャは、型sys.xmltypeの配列属性を書き込みます。プロシージャでは、XSL変換を使用してJSONを生成します。値のJSON型を決めるには、次のルールに従います。

- 値が空である場合、NULL値を生成します。

- 大文字(値)がTRUEの場合、ブール値TRUEを生成します。

- 大文字(値)がFALSEの場合、ブール値FALSEを生成します。

- XPath numberファンクションがTRUEを戻した場合、その値をそのまま生成します。それ以外の場合、その値を引用符で囲みます(つまり、JSON文字列として処理します)。

構文

APEX_JSON.WRITE (
p_name     IN VARCHAR2,
p_value    IN sys.xmltype,
p_write_null   IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-48 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_value

書き込まれる値。XMLはJSONに変換されます

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

「WRITEプロシージャのシグネチャ13」の例を参照してください。

WRITEプロシージャのシグネチャ15

このプロシージャは、解析されたAPEX_JSON.t_values表の部分を書き込みます。

構文

APEX_JSON.WRITE (
p_values           IN t_values,
p_path             IN VARCHAR2 DEFAULT '.',
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL );

パラメータ

表15-49 WRITEプロシージャのパラメータ

パラメータ

説明

p_values

解析されたJSONメンバー。

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

例

この例では、JSON文字列を解析し、その部分を書き込みます。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": { "x": 1, "y": 2 }}');
apex_json.write(j,'bar');
END;

WRITEプロシージャのシグネチャ16

このプロシージャは、解析されたAPEX_JSON.t_values表の部分をオブジェクト・メンバー属性として書き込みます。

構文

APEX_JSON.WRITE (
p_name             IN VARCHAR2,
p_values           IN t_values,
p_path             IN VARCHAR2 DEFAULT '.',
p0                 IN VARCHAR2 DEFAULT NULL,
p1                 IN VARCHAR2 DEFAULT NULL,
p2                 IN VARCHAR2 DEFAULT NULL,
p3                 IN VARCHAR2 DEFAULT NULL,
p4                 IN VARCHAR2 DEFAULT NULL,
p_write_null       IN BOOLEAN  DEFAULT FALSE );

パラメータ

表15-50 WRITEプロシージャのパラメータ

パラメータ

説明

p_name

属性名。

p_values

解析されたJSONメンバー。

p_path

p_valuesへの索引。

p[0-4]

p_pathの各%NをpNで置き換え、i-th %sまたは%dをすべてp[i-1]で置き換えます。

p_write_null

TRUEの場合、NULL値が書き込まれます。FALSE (デフォルト)の場合、NULLは書き込まれません。

例

この例では、JSON文字列を解析し、その部分をオブジェクト・メンバーとして書き込みます。

DECLARE
j apex_json.t_values;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": { "x": 1, "y": 2 }}');
apex_json.open_object; -- {
apex_json.write('parsed-bar',j,'bar');-- "parsed-bar":{ "x":1 ,"y":2 }
apex_json.close_object; -- }
END;

16 APEX_LANG

APEX_LANG APIを使用してメッセージを翻訳できます。

- CREATE_LANGUAGE_MAPPINGプロシージャ

- DELETE_LANGUAGE_MAPPINGプロシージャ

- LANGファンクション

- MESSAGEファンクション

- PUBLISH_APPLICATIONプロシージャ

- SEED_TRANSLATIONSプロシージャ

- UPDATE_LANGUAGE_MAPPINGプロシージャ

- UPDATE_MESSAGEプロシージャ

- UPDATE_TRANSLATED_STRINGプロシージャ

CREATE_LANGUAGE_MAPPINGプロシージャ

このプロシージャを使用して、アプリケーションの翻訳の言語マッピングを作成します。翻訳されたアプリケーションは新しいアプリケーションとして公開されますが、アプリケーション・ビルダーで直接編集することはできません。

注意:
このプロシージャはApplication Expressリリース4.2.3以降で使用できます。

構文

APEX_LANG.CREATE_LANGUAGE_MAPPING (
p_application_id IN NUMBER,
p_language IN VARCHAR2,
p_translation_application_id IN NUMBER )

パラメータ

表16-1 CREATE_LANGUAGE_MAPPINGのパラメータ

パラメータ

説明

p_application_id

言語マッピングを作成するアプリケーションのID。これはプライマリ言語アプリケーションのIDです。

p_language

マッピング用のIANA言語コード。たとえば、en-us、fr-ca、ja、heがあります。

p_translation_application_id

基礎となる翻訳済アプリケーションのIDの一意の整数。この数字は0で終了することはできません。

例

次の例に、既存のApplication Expressアプリケーションの言語マッピングの作成方法を示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;

-- Now, actually create the language mapping
apex_lang.create_language_mapping(
p_application_id => 63969,
p_language => 'ja',
p_translation_application_id => 778899 );
commit;
--
-- Print what we just created to confirm
--
for c1 in (select *
from apex_application_trans_map
where primary_application_id = 63969) loop
dbms_output.put_line( 'translated_application_id: ' || c1.translated_application_id );
dbms_output.put_line( 'translated_app_language: ' || c1.translated_app_language );
end loop;
end;
/

DELETE_LANGUAGE_MAPPINGプロシージャ

このプロシージャを使用して、アプリケーションの翻訳の言語マッピングを削除します。このプロシージャは指定した言語およびマッピングの翻訳リポジトリ内のすべての翻訳済文字列を削除します。翻訳されたアプリケーションは新しいアプリケーションとして公開されますが、アプリケーション・ビルダーで直接編集することはできません。

注意:
このプロシージャはApplication Expressリリース4.2.3以降で使用できます。

構文

APEX_LANG.DELETE_LANGUAGE_MAPPING (
p_application_id IN NUMBER,
p_language IN VARCHAR2 )

パラメータ

表16-2 DELETE_LANGUAGE_MAPPINGパラメータ

パラメータ

説明

p_application_id

言語マッピングを削除するアプリケーションのID。これはプライマリ言語アプリケーションのIDです。

p_language

既存のマッピング用のIANA言語コード。たとえば、en-us、fr-ca、ja、heがあります。

例

次の例に、既存のApplication Expressアプリケーションの言語マッピングおよび既存の翻訳マッピングの削除方法を示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;
-- Now, delete the language mapping
apex_lang.delete_language_mapping(
p_application_id => 63969,
p_language => 'ja' );
commit;
--
-- Print what we just updated to confirm
--
for c1 in (select count(*) thecount
from apex_application_trans_map
where primary_application_id = 63969) loop
dbms_output.put_line( 'Translation mappings found: ' || c1.thecount );
end loop;
end;
/

LANGファンクション

このファンクションは、動的翻訳で定義された翻訳に対して翻訳済テキスト文字列を戻します。

構文

APEX_LANG.LANG (
p_primary_text_string IN VARCHAR2 DEFAULT NULL,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
...
p9 IN VARCHAR2 DEFAULT NULL,
p_primary_language IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表16-3 LANGのパラメータ

パラメータ

説明

p_primary_text_string

プライマリ言語のテキスト文字列。これは、「動的翻訳」の「翻訳元テキスト」の値になります。

p0からp9

動的置換値: p0は翻訳文字列の%0に、p1は翻訳文字列の%1に、p2は翻訳文字列の%2に対応します(以降同様)。

p_primary_language

取得されるメッセージの言語コード。指定しない場合、Oracle Application Expressは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。

参照: 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」

例

すべての1次色を定義する表があるとします。それぞれの色に動的メッセージを定義し、問合せで定義された値にLANGファンクションを適用します。次に例を示します。

SELECT APEX_LANG.LANG(color)
FROM my_colors

アプリケーションをドイツ語で実行中の場合、my_colors表の「カラー」列の値がREDであったとすると、赤にドイツ語を定義すると、前述の例では、ROTが戻されます。

MESSAGEファンクション

このファンクションは、PL/SQLのストアド・プロシージャ、ストアド・ファンクション、ストアド・トリガー、パッケージ化されたプロシージャおよびパッケージ化されたファンクションから生成されたテキスト文字列(メッセージ)の翻訳に使用します。

構文

APEX_LANG.MESSAGE (
p_name IN VARCHAR2 DEFAULT NULL,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
...
p9 IN VARCHAR2 DEFAULT NULL,
p_lang IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表16-4 MESSAGEのパラメータ

パラメータ

説明

p_name

Oracle Application Expressでアプリケーションの「共有コンポーネント」の下にある「テキスト・メッセージ」で定義されたメッセージの名前。

p0からp9

動的置換値: p0は翻訳文字列の%0に、p1は翻訳文字列の%1に、p2は翻訳文字列の%2に対応します(以降同様)。

p_lang

取得されるメッセージの言語コード。指定しない場合、Oracle Application Expressは、アプリケーション言語の派生元属性で定義されているとおり、ユーザーの現行の言語を使用します。

参照: 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」

例

次の例では、アプリケーションのGREETING_MSGというメッセージを、英語で「Good morning%0」、ドイツ語で「Guten Tag%1」と定義したと仮定しています。この例は、PL/SQLからこのメッセージを呼び出す方法を示しています。

BEGIN
--
-- Print the greeting
--
HTP.P(APEX_LANG.MESSAGE('GREETING_MSG', V('APP_USER')));
END;

p_lang属性の定義は、Application Expressエンジンがアプリケーションのプライマリ言語を導出する方法によって異なります。たとえば、アプリケーションをドイツ語で実行中で、前回のコールがAPEX_LANG.MESSAGE APIに対して行われた場合、Application Expressエンジンは、最初にLANG_CODEがdeであるGREETING_MSGというメッセージを検索します。見つからない場合は、アプリケーションのプライマリ言語属性に戻ります。それでも見つからない場合、Application Expressエンジンは、言語コードがenであるこの名前のメッセージを検索します。

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションへのプライマリ言語の指定」

PUBLISH_APPLICATIONプロシージャ

このプロシージャを使用して、アプリケーションの翻訳バージョンを公開します。このプロシージャは基礎となる、プライマリ・アプリケーションの非表示のレプリカを作成し、この新しいアプリケーションの翻訳リポジトリからの文字列をマージします。アプリケーションの翻訳バージョンを更新するたびに、シードおよび公開プロセスを実行し、プライマリ・アプリケーションと同期させます。

このアプリケーションはアプリケーション・ビルダーでは表示できません。公開およびエクスポートはできますが、直接編集することはできません。

注意:
このプロシージャはApplication Expressリリース4.2.3以降で使用できます。

構文

APEX_LANG.PUBLISH_APPLICATION (
p_application_id IN NUMBER,
p_language IN VARCHAR2 )

パラメータ

表16-5 PUBLISH_APPLICATIONパラメータ

パラメータ

説明

p_application_id

翻訳バージョンを公開および作成するアプリケーションのID。これはプライマリ言語アプリケーションのIDです。

p_language

既存の翻訳マッピング用のIANA言語コード。たとえば、en-us、fr-ca、ja、heがあります。

例

次の例に、Application Expressアプリケーションおよび言語の公開プロセスを示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;
-- Now, publish the translated version of the application
apex_lang.publish_application(
p_application_id => 63969,
p_language => 'ja' );
commit;
end;
/

SEED_TRANSLATIONSプロシージャ

このプロシージャを使用して、指定したアプリケーションおよび言語の翻訳リポジトリをシードします。このプロシージャは、新しい、更新済および削除済翻訳可能文字列のすべての含む翻訳リポジトリをアプリケーションから移入します。アプリケーションの翻訳バージョンを更新するたびに、シードおよび公開プロセスを実行し、プライマリ・アプリケーションと同期させます。

構文

APEX_LANG.SEED_TRANSLATIONS (
p_application_id IN NUMBER,
p_language IN VARCHAR2 )

パラメータ

表16-6 SEED_TRANSLATIONSパラメータ

パラメータ

説明

p_application_id

翻訳リポジトリを更新するアプリケーションのID。これはプライマリ言語アプリケーションのIDです。

p_language

既存の翻訳マッピング用のIANA言語コード。たとえば、en-us、fr-ca、ja、heがあります。

例

次の例に、Application Expressアプリケーションおよび言語の翻訳リポジトリのシード・プロセスを示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;
-- Now, seed the translation repository
apex_lang.seed_translations(
p_application_id => 63969,
p_language => 'ja' );
commit;
-- Print out the total number of potentially translatable strings
--
for c1 in (select count(*) thecount
from apex_application_trans_repos
where application_id = 63969) loop
dbms_output.put_line( 'Potentially translatable strings found: ' || c1.thecount );
end loop;
end;
/

UPDATE_LANGUAGE_MAPPINGプロシージャ

このプロシージャを使用して、アプリケーションの翻訳の言語マッピングを更新します。翻訳されたアプリケーションは新しいアプリケーションとして公開されますが、アプリケーション・ビルダーで直接編集することはできません。

注意:
このプロシージャはApplication Expressリリース4.2.3以降で使用できます。

構文

APEX_LANG.UPDATE_LANGUAGE_MAPPING (
p_application_id IN NUMBER,
p_language IN VARCHAR2,
p_new_trans_application_id IN NUMBER )

パラメータ

表16-7 UPDATE_LANGUAGE_MAPPINGパラメータ

パラメータ

説明

p_application_id

言語マッピングを更新するアプリケーションのID。これはプライマリ言語アプリケーションのIDです。

p_language

既存のマッピング用のIANA言語コード。たとえば、en-us、fr-ca、ja、heがあります。このマッピングの言語はこのプロシージャでは更新できません。新しい翻訳アプリケーションIDのみです。

p_new_trans_application_id

基礎となる翻訳済アプリケーションIDの新しい一意の整数。この数字は0で終了することはできません。

例

次の例に、既存のApplication Expressアプリケーションの言語マッピングおよび既存の翻訳マッピングの更新方法を示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;
-- Now, update the language mapping
apex_lang.update_language_mapping(
p_application_id => 63969,
p_language => 'ja',
p_new_trans_application_id => 881188 );
commit;
--
-- Print what we just updated to confirm
--
for c1 in (select *
from apex_application_trans_map
where primary_application_id = 63969) loop
dbms_output.put_line( 'translated_application_id: ' || c1.translated_application_id );
dbms_output.put_line( 'translated_app_language: ' || c1.translated_app_language );
end loop;
end;
/

UPDATE_MESSAGEプロシージャ

このプロシージャを使用して、指定したアプリケーションの翻訳可能テキスト・メッセージを更新します。

注意:
このプロシージャはApplication Expressリリース4.2.3以降で使用できます。

構文

APEX_LANG.UPDATE_MESSAGE (
p_id IN NUMBER,
p_message_text IN VARCHAR2 )

パラメータ

表16-8 UPDATE_MESSAGEパラメータ

パラメータ

説明

p_id

テキスト・メッセージのID。

p_message_text

翻訳可能テキスト・メッセージの新しいテキスト。

例

次の例に、既存の翻訳可能テキスト・メッセージの更新方法を示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;
-- Locate the ID of the specific message and update it with the new text
for c1 in (select translation_entry_id
from apex_application_translations
where application_id = 63969
and translatable_message = 'TOTAL_COST'
and language_code = 'ja') loop
apex_lang.update_message(
p_id => c1.translation_entry_id,
p_message_text => 'The total cost is: %0');
commit;
exit;
end loop;
end;
/

UPDATE_TRANSLATED_STRINGプロシージャ

このプロシージャを使用して、シードされた翻訳リポジトリの翻訳文字列を更新します。

注意:
このプロシージャはApplication Expressリリース4.2.3以降で使用できます。

構文

APEX_LANG.UPDATE_TRANSLATED_STRING (
p_id IN NUMBER,
p_language IN VARCHAR2
p_string IN VARCHAR2 )

パラメータ

表16-9 UPDATE_TRANSLATED_STRINGパラメータ

パラメータ

説明

p_id

翻訳リポジトリ内の文字列のID。

p_language

既存の翻訳マッピング用のIANA言語コード。たとえば、en-us、fr-ca、ja、heがあります。このマッピングの言語はこのプロシージャでは更新できません。新しい翻訳アプリケーションIDのみです。

p_string

翻訳リポジトリ内の文字列の新しい値。

例

次の例に、翻訳リポジトリ内の既存の文字列の更新方法を示します。

begin
--
-- If running from SQL*Plus, we need to set the environment
-- for the Application Express workspace associated with this schema. The
-- call to apex_util.set_security_group_id is not necessary if
-- you're running within the context of the Application Builder
-- or an Application Express application.
--
for c1 in (select workspace_id
from apex_workspaces) loop
apex_util.set_security_group_id( c1.workspace_id );
exit;
end loop;
-- Locate all strings in the repository for the specified application
-- which are 'Search' and change to 'Find'
for c1 in (select id
from apex_application_trans_repos
where application_id = 63969
and dbms_lob.compare(from_string, to_nclob('Search')) = 0
and language_code = 'ja') loop
apex_lang.update_translated_string(
p_id => c1.id,
p_language => 'ja',
p_string => 'Find');
commit;
exit;
end loop;
end;
/

17 APEX_LDAP

APEX_LDAPを使用すると、Lightweight Directory Access Protocol (LDAP)認証に関連する様々な操作を実行できます。

- AUTHENTICATEファンクション

- GET_ALL_USER_ATTRIBUTESプロシージャ

- GET_USER_ATTRIBUTESプロシージャ

- IS_MEMBERファンクション

- MEMBER_OFファンクション

- MEMBER_OF2ファンクション

- APEX_LDAP.SEARCHファンクション

AUTHENTICATEファンクション

AUTHENTICATEファンクションは、指定された検索ベース、ホストおよびポートを使用して、SIMPLE_BIND_Sコールを実行するためにユーザー名およびパスワードを使用できる場合、ブール値TRUEを戻します。

構文

APEX_LDAP.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,
p_use_ssl      IN VARCHAR2 DEFAULT 'N')
RETURN BOOLEAN;

パラメータ

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

表17-1 AUTHENTICATEのパラメータ

パラメータ

説明

p_username

ユーザーのログイン名です。

p_password

p_usernameのパスワード。

p_search_base

LDAP検索ベース。たとえば、dc=users,dc=my,dc=orgなど。

p_host

LDAPサーバーのホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。

例

次の例に、APEX_LDAP.AUTHENTICATEファンクションを使用して、ユーザー資格証明をLDAPサーバーに対して検証する方法を示します。

IF APEX_LDAP.AUTHENTICATE(
p_username =>'firstname.lastname',
p_password =>'abcdef',
p_search_base => 'cn=user,l=amer,dc=my_company,dc=com',
p_host => 'our_ldap_sever.my_company.com',
p_port => 389) THEN
dbms_output.put_line('authenticated');
ELSE
dbms_output.put_line('authentication failed');
END IF;

GET_ALL_USER_ATTRIBUTESプロシージャ

GET_ALL_USER_ATTRIBUTESプロシージャは、指定した認証ベース、ホストおよびポートを使用して、p_username(および必要に応じてパスワード)によって指定されたユーザー名に対するuser_attributeの名前と値の2つのOUT配列を戻します。

構文

APEX_LDAP.GET_ALL_USER_ATTRIBUTES(
p_username          IN VARCHAR2 DEFAULT NULL,
p_pass              IN VARCHAR2 DEFAULT NULL,
p_auth_base         IN VARCHAR2 DEFAULT NULL,
p_host              IN VARCHAR2,
p_port              IN VARCHAR2 DEFAULT 389,
p_use_ssl           IN VARCHAR2 DEFAULT 'N',
p_attributes        OUT apex_application_global.vc_arr2,
p_attribute_values  OUT apex_application_global.vc_arr2);

パラメータ

表17-2に、GET_ALL_USER_ATTRIBUTESプロシージャのパラメータを示します。

表17-2 GET_ALL_USER_ATTRIBUTESのパラメータ

パラメータ

説明

p_username

ユーザーのログイン名です。

p_pass

p_usernameのパスワード。

p_auth_base

LDAP検索ベース。たとえば、dc=users,dc=my,dc=orgなど。

p_host

LDAPサーバーのホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。

p_attributes

戻される属性名の配列。

p_attribute_values

p_attributesの各属性名に対応して戻される値の配列。

例

次の例に、APEX_LDAP.GET_ALL_USER_ATTRIBUTESプロシージャを使用して、ユーザーに関連付けられているすべての属性値を取得する方法を示します。

DECLARE
L_ATTRIBUTES       apex_application_global.vc_arr2;
L_ATTRIBUTE_VALUES apex_application_global.vc_arr2;
BEGIN
APEX_LDAP.GET_ALL_USER_ATTRIBUTES(
p_username         => 'firstname.lastname',
p_pass             => 'abcdef',
p_auth_base        => 'cn=user,l=amer,dc=my_company,dc=com',
p_host             => 'our_ldap_sever.my_company.com',
p_port             => '389',
p_attributes       => L_ATTRIBUTES,
p_attribute_values => L_ATTRIBUTE_VALUES);

FOR i IN L_ATTRIBUTES.FIRST..L_ATTRIBUTES.LAST LOOP
htp.p('attribute name: '||L_ATTRIBUTES(i));
htp.p('attribute value: '||L_ATTRIBUTE_VALUES(i));
END LOOP;
END;

GET_USER_ATTRIBUTESプロシージャ

GET_USER_ATTRIBUTESプロシージャは、指定した認証ベース、ホストおよびポートを使用して、p_attributesによって指定された属性名に対応するp_username(および必要に応じてパスワード)によって指定されたユーザー名に対するuser_attribute値のOUT配列を戻します。

構文

APEX_LDAP.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_use_ssl           IN VARCHAR2 DEFAULT 'N',
p_attributes        IN  apex_application_global.vc_arr2,
p_attribute_values  OUT apex_application_global.vc_arr2);

パラメータ

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

表17-3 GET_USER_ATTRIBUTESのパラメータ

パラメータ

説明

p_username

ユーザーのログイン名です。

p_pass

p_usernameのパスワード。

p_auth_base

LDAP検索ベース。たとえば、dc=users,dc=my,dc=orgなど。

p_host

LDAPサーバーのホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。

p_attributes

戻される値の属性名の配列。

p_attribute_values

p_attributesの各属性名に対応して戻される値の配列。

例

次の例に、APEX_LDAP.GET_USER_ATTRIBUTESプロシージャを使用して、ユーザーに関連付けられている特定の属性値を取得する方法を示します。

DECLARE
L_ATTRIBUTES apex_application_global.vc_arr2;
L_ATTRIBUTE_VALUES apex_application_global.vc_arr2;
BEGIN
L_ATTRIBUTES(1) := 'xxxxxxxxxx'; /* name of the employee number attribute */
APEX_LDAP.GET_USER_ATTRIBUTES(
p_username => 'firstname.lastname',
p_pass => NULL,
p_auth_base => 'cn=user,l=amer,dc=my_company,dc=com',
p_host => 'our_ldap_sever.my_company.com',
p_port => '389',
p_attributes => L_ATTRIBUTES,
p_attribute_values => L_ATTRIBUTE_VALUES);
END;

IS_MEMBERファンクション

IS_MEMBERファンクションは、p_username(および必要に応じてパスワード)によって指定されたユーザーが、指定された認証ベース、ホストおよびポートを使用してp_groupおよびp_group_baseパラメータによって指定されたグループのメンバーである場合、ブール値TRUEを戻します。

構文

APEX_LDAP.IS_MEMBER(
p_username     IN VARCHAR2,
p_pass         IN VARCHAR2 DEFAULT NULL,
p_auth_base    IN VARCHAR2,
p_host         IN VARCHAR2,
p_port         IN VARCHAR2 DEFAULT 389,
p_use_ssl      IN VARCHAR2 DEFAULT 'N',
p_group        IN VARCHAR2,
p_group_base   IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表17-4 IS_MEMBERのパラメータ

パラメータ

説明

p_username

ユーザーのログイン名です。

p_pass

p_usernameのパスワード。

p_auth_base

LDAP検索ベース。たとえば、dc=users,dc=my,dc=orgなど。

p_host

LDAPサーバーのホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します。

p_group

メンバーシップを検索するグループ名。

p_group_base

検索を開始するベース。

例

次の例に、APEX_LDAP.IS_MEMBERファンクションを使用して、ユーザーがグループのメンバーであるかどうかをLDAPサーバーに対して検証する方法を示します。

DECLARE
L_VAL boolean;
BEGIN
L_VAL := APEX_LDAP.IS_MEMBER(
p_username =>'firstname.lastname',
p_pass =>'abcdef',
p_auth_base => 'cn=user,l=amer,dc=my_company,dc=com',
p_host => 'our_ldap_sever.my_company.com',
p_port => 389,
p_group => 'group_name',
p_group_base => 'group_base');
IF L_VAL THEN
htp.p('Is a member.');
ELSE
htp.p('Not a member.');
END IF;
END;

MEMBER_OFファンクション

MEMBER_OFファンクションは、指定した認証ベース、ホストおよびポートを使用して、p_username(および必要に応じてパスワード)によって指定されたユーザー名が属するグループの配列を戻します。

構文

APEX_LDAP.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,
p_use_ssl      IN VARCHAR2 DEFAULT 'N')
RETURN apex_application_global.vc_arr2;

パラメータ

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

表17-5 MEMBER_OFのパラメータ

パラメータ

説明

p_username

ユーザーのログイン名です。

p_pass

p_usernameのパスワード。

p_auth_base

LDAP検索ベース。たとえば、dc=users,dc=my,dc=orgなど。

p_host

LDAPサーバーのホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。

例

次の例に、APEX_LDAP.MEMBER_OFファンクションを使用して、指定したユーザー名で特定されたすべてのグループを取得する方法を示します。

DECLARE
L_MEMBERSHIP       apex_application_global.vc_arr2;
BEGIN
L_MEMBERSHIP := APEX_LDAP.MEMBER_OF(
p_username         => 'firstname.lastname',
p_pass             => 'abcdef',
p_auth_base        => 'cn=user,l=amer,dc=my_company,dc=com',
p_host             => 'our_ldap_sever.my_company.com',
p_port             => '389');
FOR i IN L_MEMBERSHIP.FIRST..L_MEMBERSHIP.LAST LOOP
htp.p('Member of: '||L_MEMBERSHIP(i));
END LOOP;
END;

MEMBER_OF2ファンクション

MEMBER_OF2ファンクションは、指定した認証ベース、ホストおよびポートを使用して、p_username(および必要に応じてパスワード)によって指定されたユーザー名が属するグループのVARCHAR2コロン区切りリストを戻します。

構文

APEX_LDAP.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,
p_use_ssl      IN VARCHAR2 DEFAULT 'N')
RETURN VARCHAR2;

パラメータ

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

表17-6 MEMBER_OF2のパラメータ

パラメータ

説明

p_username

ユーザーのログイン名です。

p_pass

p_usernameのパスワード。

p_auth_base

LDAP検索ベース。たとえば、dc=users,dc=my,dc=orgなど。

p_host

LDAPサーバーのホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。

例

次の例に、APEX_LDAP.MEMBER_OF2ファンクションを使用して、指定したユーザー名で特定されたすべてのグループを取得する方法を示します。

DECLARE
L_VAL varchar2(4000);
BEGIN
L_VAL := APEX_LDAP.MEMBER_OF2(
p_username => 'firstname.lastname',
p_pass => 'abcdef',
p_auth_base => 'cn=user,l=amer,dc=my_company,dc=com',
p_host => 'our_ldap_sever.my_company.com',
p_port => 389);
htp.p('Is Member of:'||L_VAL);
END;

APEX_LDAP.SEARCHファンクション

APEX_LDAP.SEARCHファンクションは、LDAPリポジトリを検索します。結果は、表問合せで使用できるオブジェクト表の(dn, name, val)です。

構文

function search (
p_username          IN VARCHAR2 DEFAULT NULL,
p_pass              IN VARCHAR2 DEFAULT NULL,
p_auth_base         IN VARCHAR2 DEFAULT NULL,
p_host              IN VARCHAR2,
p_port              IN NUMBER DEFAULT 389,
p_use_ssl           IN VARCHAR2 DEFAULT 'N',
p_search_base       IN VARCHAR2,
p_search_filter     IN VARCHAR2,
p_scope             IN BINARY_INTEGER DEFAULT SYS.DBMS_LDAP.SCOPE_SUBTREE,
p_timeout_sec       IN BINARY_INTEGER DEFAULT 3,
p_attribute_names   IN VARCHAR2 )
RETURN APEX_T_LDAP_ATTRIBUTES PIPELINED;

パラメータ

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

表17-7 SEARCHのパラメータ

パラメータ

説明

p_username

ユーザーのログイン名(匿名バインドの場合はNULLでもかまいません)。

p_pass

p_usernameのパスワード(匿名バインドの場合はNULLでもかまいません)

p_auth_base

p_usernameの認証ベースdn(dc=users、dc=my、dc=orgなど)。匿名バインドの場合はNULLでもかまいません。

p_host

LDAPサーバー・ホスト名。

p_port

LDAPサーバーのポート番号。

p_use_ssl

LDAPサーバーへのバインドでSSLを使用する場合は'Y'を設定します。一方向認証(Oracleウォレットで構成されるLDAPサーバー証明書が必要)でSSLを使用する場合は'A'を設定します。SSLを使用しない場合は'N'を設定します(デフォルト)。

p_search_base

検索用のdnベース。

p_search_filter

LDAP検索フィルタ式。

p_scope

検索範囲(デフォルトはサブツリーに下降)。

p_timeout_sec

検索のタイムアウト(デフォルトは3秒)

p_attribute_names

戻り属性名のカンマ区切りのリスト

例1

SELECT val group_dns
FROM table(apex_ldap.search (
p_host            => 'ldap.example.com',
p_search_base     => 'dc=example,dc=com',
p_search_filter   => 'uid='||apex_escape.ldap_search_filter(:APP_USER),
p_attribute_names => 'memberof' ));

例2

SELECT dn, mail, dispname, phone
from ( select dn, name, val
from table(apex_ldap.search (
p_host            => 'ldap.example.com',
p_search_base     => 'dc=example,dc=com',
p_search_filter   => '&(objectClass=person)(ou=Test)',
p_attribute_names => 'mail,displayname,telephonenumber' )))
pivot (min(val) for name in ( 'mail'            mail,
'displayname'     dispname,
'telephonenumber' phone ))

18 APEX_MAIL

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

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

APEX_MAILには3つのプロシージャが含まれています。アプリケーションから外部へ電子メール・メッセージを送信するには、APEX_MAIL.SENDを使用します。APEX_MAIL_QUEUEに格納されたメール・メッセージを配信するには、APEX_MAIL.PUSH_QUEUEを使用します。アプリケーションから外部へ添付ファイルとして電子メール・メッセージを送信するには、APEX_MAIL.ADD_ATTACHMENTを使用します。

- 電子メールを送信するためのOracle Application Expressの構成

- ADD_ATTACHMENTプロシージャ

- GET_IMAGES_URLファンクション

- GET_INSTANCE_URLファンクション

- PUSH_QUEUEプロシージャ

- SENDプロシージャ

注意:
電子メールを送信する最も効率的な方法は、DBMS_JOBまたはDBMS_SCHEDULERパッケージを使用してバックグラウンド・ジョブを作成し、アクティブなメール・キューに格納されているすべてのメール・メッセージを定期的に送信することです。Application Expressアプリケーションのコンテキストの外部からAPEX_MAILパッケージをコールするには、次の例のようにapex_util.set_security_group_idをコールする必要があります。

for c1 in (
select workspace_id
from apex_applications
where application_id = p_app_id )
loop
apex_util.set_security_group_id(p_security_group_id =>
c1.workspace_id);
end loop;

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションからの電子メールの送信」

電子メールを送信するためのOracle Application Expressの構成

アプリケーション・ビルダー・アプリケーションから電子メールを送信する前に、次のステップを実行する必要があります。

1. Oracle Application Express管理サービスにログインし、インスタンスの設定ページで電子メール設定を構成します。『Oracle Application Express管理ガイド』の電子メールの構成に関する項を参照してください。

2. さらに、Oracle Database 11g リリース1(11.1)でOracle Application Expressを実行している場合、外部へのメールを有効化する必要があります。Oracle Database 11g リリース1(11.1)では、ネットワーク・サービスと通信する機能はデフォルトで無効になっています。『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のOracle Database 11gのネットワーク・サービスの有効化に関するセクションを参照してください。

ヒント:
新しいワークスペースリクエストが承認されたときにユーザーにログイン資格証明が電子メールで自動的に送信されるように、Oracle Application Expressを構成できます。詳細は、『Oracle Application Express管理ガイド』のプロビジョニング・モードの選択に関する項を参照してください。

ADD_ATTACHMENTプロシージャ

このプロシージャは、アプリケーションから外部へ電子メール・メッセージを添付ファイルとして送信します。1つの電子メールに複数の添付ファイルを追加するには、1つの電子メール・メッセージに対してAPEX_MAIL.ADD_ATTACHMENTを繰り返しコールします。

構文

APEX_MAIL.ADD_ATTACHMENT(
p_mail_id                   IN    NUMBER,
p_attachment                IN    BLOB,
p_filename                  IN    VARCHAR2,
p_mime_type                 IN    VARCHAR2);

パラメータ

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

表18-1 ADD_ATTACHMENTのパラメータ

パラメータ

説明

p_mail_id

電子メールに関連付けられている数値ID。これは、電子メールの本文を作成するAPEX_MAIL.SENDのコールから戻される数値識別子です。

p_attachment

電子メール・メッセージに添付するバイナリ・コンテンツを含むBLOB変数。

p_filename

電子メール添付ファイルに関連付けられているファイル名。

p_mime_type

電子メールの添付ファイルに関連付けられる有効なMIMEタイプ(またはインターネット・メディア・タイプ)。

例

次の例に、APEX_APPLICATION_FILESに格納されているファイルにアクセスする方法、およびこれらを外部への電子メール・メッセージに追加する方法を示します

DECLARE
l_id NUMBER;
BEGIN
l_id := APEX_MAIL.SEND(
p_to        => 'fred@flintstone.com',
p_from      => 'barney@rubble.com',
p_subj      => 'APEX_MAIL with attachment',
p_body      => 'Please review the attachment.',
p_body_html => '<b>Please</b> review the attachment');
FOR c1 IN (SELECT filename, blob_content, mime_type
FROM APEX_APPLICATION_FILES
WHERE ID IN (123,456)) LOOP

APEX_MAIL.ADD_ATTACHMENT(
p_mail_id    => l_id,
p_attachment => c1.blob_content,
p_filename   => c1.filename,
p_mime_type  => c1.mime_type);
END LOOP;
COMMIT;
END;
/

GET_IMAGES_URLファンクション

このファンクションは、電子メールにApplication Expressインスタンスのイメージが含まれるときに、前にURLを付けたイメージを取得します。

構文

APEX_MAIL.GET_IMAGES_URL return VARCHAR2;

パラメータ

なし。

例

次の例では、Oracleロゴのイメージを含む注文確認の電子メールを送信します。

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><body>' || utl_tcp.crlf ||
'<p>Please confirm your order on the <a href="' ||
apex_mail.get_instance_url || 'f?p=100:10">Order Confirmation</a> page.</p>' || utl_tcp.crlf ||
'<p>Sincerely,<br />' || utl_tcp.crlf ||
'The Application Express Dev Team<br />' || utl_tcp.crlf ||
'<img src="' || apex_mail.get_images_url || 'oracle.gif" alt="Oracle Logo"></p>' || utl_tcp.crlf ||
'</body></html>';
apex_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      => 'Order Confirmation' );
end;

GET_INSTANCE_URLファンクション

このファンクションは、電子メールにApplication Expressインスタンスへのリンクが含まれるときに、インスタンスのURLを取得します。

注意:
このファンクションでは、電子メールにインスタンス設定Application Express Instance URLが設定されている必要があります。

構文

APEX_MAIL.GET_INSTANCE_URL return VARCHAR2;

パラメータ

なし。

例

次の例では、アプリケーション100のページ10への絶対URLを含む、注文確認の電子メールを送信します。

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><body>' || utl_tcp.crlf ||
'<p>Please confirm your order on the <a href="' ||
apex_mail.get_instance_url || 'f?p=100:10">Order Confirmation</a> page.</p>' || utl_tcp.crlf ||
'</body></html>';
apex_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      => 'Order Confirmation' );
end;

PUSH_QUEUEプロシージャ

Oracle Application Expressでは、APEX_MAIL_QUEUEという名前の表に未送信の電子メール・メッセージが格納されます。APEX_MAIL.PUSH_QUEUEプロシージャを呼び出して、このキューに格納されているメール・メッセージを指定のSMTPゲートウェイに手動で送信できます。

Oracle Application Expressによって、正常に送信されたメッセージのログが、サーバーのローカル時間でのタイムスタンプとともにAPEX_MAIL_LOGに作成されます。電子メールを送信するための最も有効な方法は、バックグラウンド・ジョブ(DBMS_JOBパッケージを使用)を作成して、アクティブなメール・キューに格納されているすべてのメール・メッセージを定期的に送信することです。

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションからの電子メールの送信」

構文

APEX_MAIL.PUSH_QUEUE(
p_smtp_hostname             IN    VARCHAR2 DEFAULT NULL,
p_smtp_portno               IN    NUMBER   DEFAULT NULL);

パラメータ

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

表18-2 PUSH_QUEUEのパラメータ

パラメータ

説明

p_smtp_hostname

SMTPゲートウェイのホスト名

p_smtp_portno

SMTPゲートウェイのポート番号

これらのパラメータの値は下位互換性を確保するために提供されていますが、各パラメータの値は無視されます。電子メールを送信する際のSMTPゲートウェイのホスト名およびSMTPゲートウェイのポート番号は、「環境設定の管理」で入力された値のみが使用されます。

参照:
『Oracle Application Express管理ガイド』の「電子メール設定の構成」

例

次の例に、シェル・スクリプトを使用してAPEX_MAIL.PUSH_QUEUEプロシージャを使用する方法を示します。この例はUNIX/LINUXインストールにのみ適用します。

SQLPLUS / <<EOF
APEX_MAIL.PUSH_QUEUE;
DISCONNECT
EXIT
EOF

参照:
『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「アプリケーションからの電子メールの送信」

SENDプロシージャ

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

APEX_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属性を含めるようにしてください。

構文

APEX_MAIL.SEND(
p_to                        IN    VARCHAR2,
p_from                      IN    VARCHAR2,
p_body                      IN  [ VARCHAR2 | CLOB ],
p_body_html                 IN  [ VARCHAR2 | CLOB ] DEFAULT NULL,
p_subj                      IN    VARCHAR2 DEFAULT NULL,
p_cc                        IN    VARCHAR2 DEFAULT NULL,
p_bcc                       IN    VARCHAR2 DEFAULT NULL,
p_replyto                   IN    VARCHAR2);

パラメータ

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

表18-3 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

電子メールの内容のブラインド・コピー先となる有効な電子メール・アドレス。電子メール・アドレスが複数の場合、カンマで区切られたリストを使用します。

p_replyto

返信先のメール・ヘッダーのアドレス。このパラメータの使用方法は次のとおりです。

- p_replytoパラメータを省略した場合、返信先のメール・ヘッダーにはp_fromパラメータに指定された値が設定されます

- p_replytoパラメータにNULLを指定した場合、返信先のメール・ヘッダーにはNULLが設定されます。この結果、電子メールの自動返信は行われません

- p_replytoパラメータにNULL以外の値(有効な電子メール・アドレスなど)を指定した場合、メッセージを送信しても、自動返信は指定されたアドレスに対して行われます(有効な電子メール・アドレスなど)

例

次の例では、APEX_MAIL.SENDを使用してアプリケーションからプレーン・テキストの電子メール・メッセージを送信する方法を示します。

-- Example One: Plain Text only message
DECLARE
l_body      CLOB;
BEGIN
l_body := 'Thank you for your interest in the APEX_MAIL
package.'||utl_tcp.crlf||utl_tcp.crlf;
l_body := l_body ||'  Sincerely,'||utl_tcp.crlf;
l_body := l_body ||'  The Application Express Dev Team'||utl_tcp.crlf;
apex_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     => 'APEX_MAIL Package - Plain Text message');
END;
/

次の例では、APEX_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-family: Arial, Helvetica, sans-serif;
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>APEX_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 Application Express Dev Team</span><br />'||utl_tcp.crlf;
l_body_html := l_body_html ||'</body></html>';
apex_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      => 'APEX_MAIL Package - HTML formatted message');
END;
/

19 APEX_PAGE

APEX_PAGEパッケージは、ページを処理するためのパブリックAPIです。

- グローバル定数

- IS_DESKTOP_UIファンクション

- IS_JQM_SMARTPHONE_UIファンクション

- IS_JQM_TABLET_UIファンクション

- GET_UI_TYPEファンクション

- IS_READ_ONLYファンクション

- GET_PAGE_MODEファンクション

- PURGE_CACHEプロシージャ

- GET_URLファンクション

グローバル定数

このパッケージでは、次の定数が使用されます。

c_ui_type_desktop        constant varchar2(10) := 'DESKTOP';
c_ui_type_jqm_smartphone constant varchar2(15) := 'JQM_SMARTPHONE';

IS_DESKTOP_UIファンクション

このファンクションは、現在のページがデスクトップ・ブラウザ用に設計されている場合はTRUEを戻します。

構文

FUNCTION IS_DESKTOP_UI
RETURN BOOLEAN;

IS_JQM_SMARTPHONE_UIファンクション

このファンクションは、現在のページがjQuery Mobileを使用するスマートフォン・デバイス用に設計されている場合はTRUEを戻します。

構文

FUNCTION IS_JQM_SMARTPHONE_UI
RETURN BOOLEAN;

IS_JQM_TABLET_UIファンクション

このファンクションは、現在のページがjQuery Mobileを使用するタブレット・デバイス用に設計されている場合はTRUEを戻します。

構文

FUNCTION IS_JQM_TABLET_UI
RETURN BOOLEAN;

GET_UI_TYPEファンクション

このファンクションは、現在のページの設計対象となっているユーザー・インタフェース(UI)のタイプを戻します。

構文

FUNCTION GET_UI_TYPE
RETURN VARCHAR2;

IS_READ_ONLYファンクション

このファンクションは、現在のページが読取り専用でレンダリングされる場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

FUNCTION IS_READ_ONLY
RETURN BOOLEAN;

GET_PAGE_MODEファンクション

このファンクションは、現在のページのページ・モードを戻します。

構文

FUNCTION GET_PAGE_MODE (
p_application_id        IN NUMBER,
p_page_id
RETURN VARCHAR2;

パラメータ

表19-1 GET_PAGE_MODEのパラメータ

パラメータ

説明

p_application_id

アプリケーションのID。デフォルトは、現在のアプリケーションです。

p_page_id

ページのID。デフォルトは、現在のページです。

PURGE_CACHEプロシージャ

このプロシージャは、指定されたユーザーの指定のアプリケーション、ページおよびリージョンのキャッシュをパージします。ユーザーを指定しないと、ページのキャッシュされたすべてのバージョンがパージされます。

構文

PROCEDURE PURGE_CACHE (
p_application_id       IN NUMBER DEFAULT wwv_flow.g_flow_id,
p_page_id              IN NUMBER DEFAULT wwv_flow.g_flow_step_id,
p_user_name            IN VARCHAR2 DEFAULT NULL,
p_current_session_only IN BOOLEAN  DEFAULT FALSE );

パラメータ

表19-2 PURGE_CACHEのパラメータ

パラメータ

説明

p_application_id

アプリケーションのID。デフォルトは、現在のアプリケーションです。

p_page_id

ページのID。デフォルトは、現在のページです。NULLを渡すと、Oracle Application Expressでは、アプリケーションのすべてのページに関するキャッシュがパージされます。

p_user_name

特定のユーザー用に保存されたエントリのみをパージする場合は、ユーザー名を指定します。

p_current_session_only

現在のセッション用に保存されたエントリのみをパージする場合は、TRUEを指定します。デフォルトは、FALSEです。

例

次の例では、現在のページについてセッション固有のキャッシュをパージします。

BEGIN
APEX_PAGE.PURGE_CACHE (
p_current_session_only => true );
END;

GET_URLファンクション

このファンクションは、Oracle Application Expressのf?p= URLを戻します。連結されたURLよりも、ファンクション・コールを読み込んだ方が明確な場合があります。比較のため、次に示す例を参照してください。

構文

FUNCTION GET_URL (
p_application        IN VARCHAR2 DEFAULT NULL,
p_page               IN VARCHAR2 DEFAULT NULL,
p_session            IN NUMBER   DEFAULT WWV_FLOW.G_INSTANCE,
p_request            IN VARCHAR2 DEFAULT NULL,
p_debug              IN VARCHAR2 DEFAULT NULL,
p_clear_cache        IN VARCHAR2 DEFAULT NULL,
p_items              IN VARCHAR2 DEFAULT NULL,
p_values             IN VARCHAR2 DEFAULT NULL,
p_printer_friendly   IN VARCHAR2 DEFAULT NULL,
p_trace              IN VARCHAR2 DEFAULT NULL )
RETURN VARCHAR2;

パラメータ

表19-3 PURGE_CACHEのパラメータ

パラメータ

説明

p_application

アプリケーションのIDまたは別名。デフォルトは、現在のアプリケーションです。

p_page

ページのIDまたは別名。デフォルトは、現在のページです。

p_session

セッションID。デフォルトは、現在のセッションIDです。

p_request

URLリクエスト・パラメータ。

p_debug

URLデバッグ・パラメータ。デフォルトは、現在のデバッグ・モードです。

p_clear_cache

URLキャッシュ・クリア・パラメータ。

p_items

セッション・ステートを設定するための、カンマで区切られたアイテム名のリスト。

p_values

セッション・ステートを設定するための、カンマで区切られたアイテム値のリスト。

p_printer_friendly

URL印刷用パラメータ。デフォルトは、現在のリクエストの「印刷用」モードです。

p_trace

SQLトレース・パラメータ。

例

次の問合せでは、APEX_PAGE.GET_URLとその代替のAPEX_UTIL.PREPARE_URLを使用して同一のURLを2つ生成します。

SELECT APEX_PAGE.GET_URL (
p_page   => 1,
p_items  => 'P1_X,P1_Y',
p_values => 'somevalue,othervalue' ) f_url_1,
APEX_UTIL.PREPARE_URL('f?p=&APP_ID.:1:&APP_SESSION.::::P1_X,P1_Y:somevalue,othervalue')
FROM DUAL

20 APEX_PLSQL_JOB

注意:
Oracle Application Expressリリース5.0では、APEX_PLSQL_JOBパッケージは非推奨です。このパッケージは今後のリリースで削除される予定です。APEX_PLSQL_JOBではなく、データベース提供のパッケージDBMS_SCHEDULERを使用してください。

APEX_PLSQL_JOBパッケージを使用すると、アプリケーションのバックグラウンドでPL/SQLコードを実行できます。操作が完了していない状態でもユーザーがアプリケーションで作業を継続できるため、長時間実行操作の管理に有効な方法です。

- APEX_PLSQL_JOBパッケージについて

- JOBS_ARE_ENABLEDファンクション

- PURGE_PROCESSプロシージャ

- SUBMIT_PROCESSファンクション

- TIME_ELAPSEDファンクション

- UPDATE_JOB_STATUSプロシージャ

APEX_PLSQL_JOBパッケージについて

APEX_PLSQL_JOBは、Oracle Databaseで提供されるDBMS_JOB機能をラップしたラッパー・パッケージです。APEX_PLSQL_JOBパッケージでは、PL/SQLをバックグラウンドで実行するために必要な機能のみが公開されることに注意してください。

使用可能なファンクション

APEX_PLSQL_JOBパッケージで使用可能なファンクションには、バックグラウンドでPL/SQLを実行するのに必要な機能が含まれます。

表20-1に、APEX_PLSQL_JOBパッケージで使用可能なファンクションを示します。

表 20-1 APEX_PLSQL_JOBパッケージ: 使用可能なファンクション

ファンクションまたはプロシージャ

説明

SUBMIT_PROCESS

このプロシージャを使用すると、バックグラウンドPL/SQLを送信できます。このプロシージャは、一意のジョブ番号を戻します。このジョブ番号は、このパッケージ内の他のプロシージャおよびファンクションの参照点として使用できるため、自分のスキーマ内に格納しておくと役に立ちます。

UPDATE_JOB_STATUS

このプロシージャをコールすると、現在実行しているジョブのステータスを更新できます。このプロシージャは、送信されたPL/SQLからコールされたときに最も有効です。

TIME_ELAPSED

このファンクションを使用すると、ジョブが送信されてから経過した時間を確認できます。

JOBS_ARE_ENABLED

このファンクションをコールすると、そのデータベースが現在、APEX_PLSQL_JOBパッケージへのジョブの送信をサポートするモードであるかどうかを確認できます。

PURGE_PROCESS

このプロシージャをコールすると、送信されたジョブをクリーンアップできます。送信されたジョブは、Oracle Application Expressによってそれらのレコードがクリーンアップされるか、またはPURGE_PROCESSのコールによって手動で削除するまで、APEX_PLSQL_JOBSビューに保持されます。

APEX_PLSQL_JOBパッケージに送信したすべてのジョブは、APEX_PLSQL_JOBSビューで表示できます。

JOBS_ARE_ENABLEDファンクション

このファンクションをコールすると、そのデータベースが現在、APEX_PLSQL_JOBパッケージへのジョブの送信をサポートするモードであるかどうかを確認できます。

構文

APEX_PLSQL_JOB.JOBS_ARE_ENABLED
RETURN BOOLEAN;

パラメータ

なし。

例

次の例に、JOBS_ARE_ENABLEDファンクションを使用する方法を示します。この例では、このファンクションによってTRUEが戻された場合、「Jobs are enabled on this database instance」というメッセージが表示されます。そうでない場合は、「Jobs are not enabled on this database instance」というメッセージが表示されます。

BEGIN
IF APEX_PLSQL_JOB.JOBS_ARE_ENABLED THEN
HTP.P('Jobs are enabled on this database instance.');
ELSE
HTP.P('Jobs are not enabled on this database instance.');
END IF;
END;

PURGE_PROCESSプロシージャ

このプロシージャをコールすると、送信されたジョブをクリーンアップできます。送信されたジョブは、Oracle Application Expressによってそれらのレコードがクリーンアップされるか、またはPURGE_PROCESSのコールによって手動で削除するまで、APEX_PLSQL_JOBSビューに保持されます。

構文

APEX_PLSQL_JOB.PURGE_PROCESS (
p_job IN NUMBER);

パラメータ

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

表20-2 PURGE_PROCESSのパラメータ

パラメータ

説明

p_job

パージする送信済ジョブを識別するジョブ番号。

例

次の例に、PURGE_PROCESSプロシージャを使用して、ジョブ番号161で識別される送信済ジョブをパージする方法を示します。また、APEX_PLSQL_JOBSビューを参照して、すべての送信済ジョブをパージするか、または一部の送信済ジョブをパージすることができます。

BEGIN
APEX_PLSQL_JOB.PURGE_PROCESS(
p_job => 161);
END;

SUBMIT_PROCESSファンクション

このファンクションを使用すると、バックグラウンドPL/SQLを送信できます。このファンクションは、一意のジョブ番号を戻します。このジョブ番号は、このパッケージ内の他のプロシージャおよびファンクションの参照点として使用できるため、自分のスキーマ内に格納しておくと役に立ちます。

構文

APEX_PLSQL_JOB.SUBMIT_PROCESS (
p_sql IN VARCHAR2,
p_when IN DATE DEFAULT SYSDATE,
p_status IN VARCHAR2 DEFAULT 'PENDING')
RETURN NUMBER;

パラメータ

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

表20-3 SUBMIT_PROCESSのパラメータ

パラメータ

説明

p_sql

ジョブで実行するプロセス。このプロセスには、任意の有効な無名ブロックを指定できます。次に例を示します。

'BEGIN <your code> END;'
or
'DECLARE <your declaration>
BEGIN <your code> END;'

p_when

実行のタイミング。デフォルトはSYSDATEで、ジョブはすぐに実行されます。後で実行されるようにジョブを設定することもできます。次に例を示します。

sysdate + 1: ジョブは1日に1回実行されます。

sysdate + (1/24): ジョブは1時間に1回実行されます。

sysdate + (10/24/60): ジョブは10分に1回実行されます。

p_status

このジョブのプレーン・テキストのステータス情報。

例

次の例に、SUBMIT_PROCESSファンクションを使用して、すぐに開始するバックグラウンド・プロセスを送信する方法を示します。

DECLARE
l_sql VARCHAR2(4000);
l_job NUMBER;
BEGIN
l_sql := 'BEGIN MY_PACKAGE.MY_PROCESS; END;';
l_job := APEX_PLSQL_JOB.SUBMIT_PROCESS(
p_sql => l_sql,
p_status => 'Background process submitted');
--store l_job for later reference
END;

TIME_ELAPSEDファンクション

このファンクションを使用すると、ジョブが送信されてから経過した時間を確認できます。

構文

APEX_PLSQL_JOB.TIME_ELAPSED(
p_job IN NUMBER)
RETURN NUMBER;

パラメータ

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

表20-4 TIME_ELAPSEDのパラメータ

パラメータ

説明

p_job

ジョブが送信されてから経過した時間を確認するジョブのジョブID。

例

次の例に、TIME_ELAPSEDファンクションを使用して、ジョブ番号161で識別される送信済ジョブの経過時間を取得する方法を示します。

DECLARE
l_time NUMBER;
BEGIN
l_time := APEX_PLSQL_JOB.TIME_ELAPSED(p_job => 161);
END;

UPDATE_JOB_STATUSプロシージャ

このプロシージャをコールすると、現在実行しているジョブのステータスを更新できます。このプロシージャは、送信されたPL/SQLからコールされたときに最も有効です。

構文

APEX_PLSQL_JOB.UPDATE_JOB_STATUS (
p_job IN NUMBER,
p_status IN VARCHAR2);

パラメータ

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

表20-5 UPDATE_JOB_STATUSのパラメータ

パラメータ

説明

p_job

ステータスを更新するジョブのジョブID。

p_status

ジョブの現在のステータスとして使用される最大100文字の文字列。

例

次の例に、UPDATE_JOB_STATUSプロシージャを使用する方法を示します。この例では、次のことに注意してください。

- 002から010行では、100個のレコードをemp表に挿入するループを実行します。

- APP_JOBは、INSERTのVALUES句内でバインド変数として参照され、UPDATE_JOB_STATUSへのコール内でp_jobパラメータの値として指定されます。

- APP_JOBは、APEX_PLSQL_JOBに送信される際に、このプロセスに割り当てられるジョブ番号を表します。プロセス・コード内にこの予約アイテムを指定すると、実行時に実際のジョブ番号に置換されます。

- この例では、コード・ブロック内で、10個のレコードごとにUPDATE_JOB_STATUSがコールされることに注意してください。通常、Oracleトランザクション規則では、コード・ブロック内で実行された更新は、トランザクション全体がコミットされるまで表示されません。一方、APEX_PLSQL_JOB.UPDATE_JOB_STATUSプロシージャは、ジョブが成功したか失敗したかにかかわらず更新を実行するように実装されています。このことは、次の2つの理由から重要です。

1. ステータスが「100 rows inserted」の場合でも、操作全体が成功したわけではありません。コード・ブロックでコミットが試行されたときにエラーが発生した場合、ステータスの更新は個別にコミットされるため、APEX_PLSQL_JOBSのuser_status列は影響を受けません。

2. 更新は自律的に実行されます。ジョブが完了する前にジョブ・ステータスを表示できます。これによって、バックグラウンドで実行中の各操作についてステータス・テキストを表示できます。

BEGIN
FOR i IN 1 .. 100 LOOP
INSERT INTO emp(a,b) VALUES (:APP_JOB,i);
IF MOD(i,10) = 0 THEN
APEX_PLSQL_JOB.UPDATE_JOB_STATUS(
P_JOB => :APP_JOB,
P_STATUS => i || ' rows inserted');
END IF;
APEX_UTIL.PAUSE(2);
END LOOP;
END;

21 APEX_PLUGIN

APEX_PLUGINパッケージには、インタフェース宣言と、プラグインを処理するいくつかのユーティリティ・ファンクションが用意されています。

- データ型

- GET_AJAX_IDENTIFIERファンクション

- GET_INPUT_NAME_FOR_PAGE_ITEMファンクション

データ型

このセクションでは、APEX_PLUGINパッケージで使用するデータ型について説明します。

データ型:

- c_*

- t_authentication

- t_authentication_ajax_result

- t_authentication_auth_result

- t_authentication_inval_result

- t_authentication_logout_result

- t_authentication_sentry_result

- t_authorization

- t_authorization_exec_result

- t_dynamic_action

- t_dynamic_action_ajax_result

- t_dynamic_action_render_result

- t_page_item

- t_page_item_ajax_result

- t_page_item_render_result

- t_page_item_validation_result

- t_plugin

- t_process

- t_process_exec_result

- t_region_column

- 型t_region_columnsは、pls_integer別索引のt_region_columnの表です。

- t_region_column

- 型t_region_columnsは、pls_integer別索引のt_region_columnの表です。

- t_region

- t_region_ajax_result

- t_region_render_result

c_*

次の定数は、ページ・アイテム検証ファンクションの結果の型t_page_item_validation_resultのdisplay_locationで使用します。

c_inline_with_field           constant varchar2(40) := 'INLINE_WITH_FIELD';
c_inline_with_field_and_notif constant varchar2(40) := 'INLINE_WITH_FIELD_AND_NOTIFICATION';
c_inline_in_notification      constant varchar2(40) := 'INLINE_IN_NOTIFICATION';
c_on_error_page               constant varchar2(40) := 'ON_ERROR_PAGE';

t_authentication

type t_authentication is record (
id                   number,
name                 varchar2(255),
invalid_session_url  varchar2(4000),
logout_url           varchar2(4000),
plsql_code           clob,
attribute_01         varchar2(32767),
attribute_02         varchar2(32767),
attribute_03         varchar2(32767),
attribute_04         varchar2(32767),
attribute_05         varchar2(32767),
attribute_06         varchar2(32767),
attribute_07         varchar2(32767),
attribute_08         varchar2(32767),
attribute_09         varchar2(32767),
attribute_10         varchar2(32767),
attribute_11         varchar2(32767),
attribute_12         varchar2(32767),
attribute_13         varchar2(32767),
attribute_14         varchar2(32767),
attribute_15         varchar2(32767),
--
session_id           number,
username             varchar2(255) );

t_authentication_ajax_result

type t_authentication_ajax_result is record (
dummy                boolean );

t_authentication_auth_result

type t_authentication_auth_result is record (
is_authenticated     boolean,
redirect_url         varchar2(4000),
log_code             number,
log_text             varchar2(4000),
display_text         varchar2(4000) );

t_authentication_inval_result

type t_authentication_inval_result is record (
redirect_url         varchar2(4000) );

t_authentication_logout_result

type t_authentication_logout_result is record (
redirect_url         varchar2(4000) );

t_authentication_sentry_result

type t_authentication_sentry_result is record (
is_valid             boolean );

t_authorization

次の型は、すべての認可プラグイン・ファンクションに渡されます。現在の認可に関する情報を含みます。

type t_authorization is record (
id                   number,
name                 varchar2(255),
username             varchar2(255),
caching              varchar2(20),
component            wwv_flow.t_component,
attribute_01         varchar2(32767),
attribute_02         varchar2(32767),
attribute_03         varchar2(32767),
attribute_04         varchar2(32767),
attribute_05         varchar2(32767),
attribute_06         varchar2(32767),
attribute_07         varchar2(32767),
attribute_08         varchar2(32767),
attribute_09         varchar2(32767),
attribute_10         varchar2(32767),
attribute_11         varchar2(32767),
attribute_12         varchar2(32767),
attribute_13         varchar2(32767),
attribute_14         varchar2(32767),
attribute_15         varchar2(32767),

t_authorization_exec_result

t_authorization_exec_resultデータ型は、APEX_PLUGINパッケージに追加されています。

type t_authorization_exec_result is record (
is_authorized        boolean
);

t_dynamic_action

次の型は、すべての動的アクションのプラグイン・ファンクションに渡されます。現在の動的アクションに関する情報を含みます。

type t_dynamic_action is record (
id           number,
action       varchar2(50),
attribute_01 varchar2(32767),
attribute_02 varchar2(32767),
attribute_03 varchar2(32767),
attribute_04 varchar2(32767),
attribute_05 varchar2(32767),
attribute_06 varchar2(32767),
attribute_07 varchar2(32767),
attribute_08 varchar2(32767),
attribute_09 varchar2(32767),
attribute_10 varchar2(32767),
attribute_11 varchar2(32767),
attribute_12 varchar2(32767),
attribute_13 varchar2(32767),
attribute_14 varchar2(32767),
attribute_15 varchar2(32767) );

t_dynamic_action_ajax_result

次の型は、動的アクション・タイプのプラグインのAjaxファンクションの結果の型として使用されます。

type t_dynamic_action_ajax_result is record (
dummy boolean /* not used yet */
);

t_dynamic_action_render_result

次の型は、動的アクション・プラグインのレンダリング・ファンクションの結果の型として使用されます。

type t_dynamic_action_render_result is record (
javascript_function varchar2(32767),
ajax_identifier     varchar2(255),
attribute_01        varchar2(32767),
attribute_02        varchar2(32767),
attribute_03        varchar2(32767),
attribute_04        varchar2(32767),
attribute_05        varchar2(32767),
attribute_06        varchar2(32767),
attribute_07        varchar2(32767),
attribute_08        varchar2(32767),
attribute_09        varchar2(32767),
attribute_10        varchar2(32767),
attribute_11        varchar2(32767),
attribute_12        varchar2(32767),
attribute_13        varchar2(32767),
attribute_14        varchar2(32767),
attribute_15        varchar2(32767) );

t_page_item

次の型は、すべてのアイテム・タイプのプラグイン・ファンクションに渡されます。現在のページ・アイテムに関する情報を含みます。

type t_page_item is record (
id                          number,
name                        varchar2(255),
label                       varchar2(4000),
plain_label                 varchar2(4000),
label_id                    varchar2(255), /* label id is set if 'Standard Form Element' = no and label template uses #LABEL_ID# substitution */
placeholder                 varchar2(255),
format_mask                 varchar2(255),
is_required                 boolean,
lov_definition              varchar2(4000),
lov_display_extra           boolean,
lov_display_null            boolean,
lov_null_text               varchar2(255),
lov_null_value              varchar2(255),
lov_cascade_parent_items    varchar2(255),
ajax_items_to_submit        varchar2(255),
ajax_optimize_refresh       boolean,
element_width               number,
element_max_length          number,
element_height              number,
element_css_classes         varchar2(255),
element_attributes          varchar2(2000),
element_option_attributes   varchar2(4000),
escape_output               boolean,
attribute_01                varchar2(32767),
attribute_02                varchar2(32767),
attribute_03                varchar2(32767),
attribute_04                varchar2(32767),
attribute_05                varchar2(32767),
attribute_06                varchar2(32767),
attribute_07                varchar2(32767),
attribute_08                varchar2(32767),
attribute_09                varchar2(32767),
attribute_10                varchar2(32767),
attribute_11                varchar2(32767),
attribute_12                varchar2(32767),
attribute_13                varchar2(32767),
attribute_14                varchar2(32767),
attribute_15                varchar2(32767) );

type t_region_columns is table of t_region_column index by pls_integer;

t_page_item_ajax_result

次の型は、アイテム・タイプのプラグインのAjaxファンクションの結果の型として使用されます。

type t_page_item_ajax_result is record (
dummy boolean /* not used yet */
);

t_page_item_render_result

次の型は、アイテム・タイプのプラグインのレンダリング・ファンクションの結果の型として使用されます。

type t_page_item_render_result is record (
is_navigable     boolean default false,
navigable_dom_id varchar2(255)          /* should only be set if navigable element is not equal to item name */
);

t_page_item_validation_result

次の型は、アイテム・タイプのプラグインの検証ファンクションの結果の型として使用されます。

type t_page_item_validation_result is record (
message          varchar2(32767),
display_location varchar2(40),    /* if not set the application default is used */
page_item_name   varchar2(255) ); /* if not set the validated page item name is used */

t_plugin

次の型は、すべてのプラグイン・ファンクションに渡されます。現在のプラグインに関する情報を含みます。

type t_plugin is record (
name         varchar2(45),
file_prefix  varchar2(4000),
attribute_01 varchar2(32767),
attribute_02 varchar2(32767),
attribute_03 varchar2(32767),
attribute_04 varchar2(32767),
attribute_05 varchar2(32767),
attribute_06 varchar2(32767),
attribute_07 varchar2(32767),
attribute_08 varchar2(32767),
attribute_09 varchar2(32767),
attribute_10 varchar2(32767),
attribute_11 varchar2(32767),
attribute_12 varchar2(32767),
attribute_13 varchar2(32767),
attribute_14 varchar2(32767),
attribute_15 varchar2(32767) );

t_process

次の型は、すべてのプロセス・タイプのプラグイン・ファンクションに渡されます。現在のプロセスに関する情報を含みます。

type t_process is record (
id                   number,
name                 varchar2(255),
success_message      varchar2(32767),
attribute_01         varchar2(32767),
attribute_02         varchar2(32767),
attribute_03         varchar2(32767),
attribute_04         varchar2(32767),
attribute_05         varchar2(32767),
attribute_06         varchar2(32767),
attribute_07         varchar2(32767),
attribute_08         varchar2(32767),
attribute_09         varchar2(32767),
Attribute_10         varchar2(32767),
attribute_11         varchar2(32767),
attribute_12         varchar2(32767),
attribute_13         varchar2(32767),
attribute_14         varchar2(32767),
attribute_15         varchar2(32767) );

t_process_exec_result

次の型は、プロセス・タイプのプラグインの実行ファンクションの結果の型として使用されます。

type t_process_exec_result is record (
success_message varchar2(32767)
execution_skipped boolean default false /* set to TRUE if process execution has been skipped by plug-in because of additional condition checks */
);

t_region_column

次の型は、すべてのリージョン・タイプのプラグイン・ファンクションに渡されます。現在のリージョンに関する情報を含みます。

type  t_region_column is record (
id                   number,
name                 t_region_column_name,
is_displayed         boolean,
heading              wwv_flow_region_columns.heading%type,
heading_alignment    wwv_flow_region_columns.heading_alignment%type,
value_alignment      wwv_flow_region_columns.value_alignment%type,
value_css_classes    wv_flow_region_columns.value_css_classes%type,
value_attributes     wwv_flow_region_columns.value_attributes%type,
format_mask          wwv_flow_region_columns.format_mask%type,
escape_output        boolean,
attribute_01         varchar2(32767),
attribute_02         varchar2(32767),
attribute_03         varchar2(32767),
attribute_04         varchar2(32767),
attribute_05         varchar2(32767),
attribute_06         varchar2(32767),
attribute_07         varchar2(32767),
attribute_08         varchar2(32767),
attribute_09         varchar2(32767),
attribute_10         varchar2(32767),
attribute_11         varchar2(32767),
attribute_12         varchar2(32767),
attribute_13         varchar2(32767),
attribute_14         varchar2(32767),
attribute_15         varchar2(32767),
attribute_16         varchar2(32767),
attribute_17         varchar2(32767),
attribute_18         varchar2(32767),
attribute_19         varchar2(32767),
attribute_20         varchar2(32767),
attribute_21         varchar2(32767),
attribute_22         varchar2(32767),
attribute_23         varchar2(32767),
attribute_24         varchar2(32767),
attribute_25         varchar2(32767);

型t_region_columnsは、pls_integer別索引のt_region_columnの表です。

t_region

次の型は、すべてのリージョン・タイプのプラグイン・ファンクションに渡されます。現在のリージョンに関する情報を含みます。

type t_region is record (
id                   number,
static_id             varchar2(255),
name                  varchar2(255),
type                  varchar2(255),
source                varchar2(32767),
ajax_items_to_submit  varchar2(32767),
fetched_rows          pls_integer,
escape_output         boolean,
error_message         varchar2(32767), /* obsolete */
no_data_found_message varchar2(32767),
attribute_01         varchar2(32767),
attribute_02         varchar2(32767),
attribute_03         varchar2(32767),
attribute_04         varchar2(32767),
attribute_05         varchar2(32767),
attribute_06         varchar2(32767),
attribute_07         varchar2(32767),
attribute_08         varchar2(32767),
attribute_09         varchar2(32767),
attribute_10         varchar2(32767),
attribute_11         varchar2(32767),
attribute_12         varchar2(32767),
attribute_13         varchar2(32767),
attribute_14         varchar2(32767),
attribute_15         varchar2(32767),
attribute_16         varchar2(32767),
attribute_17         varchar2(32767),
attribute_18         varchar2(32767),
attribute_19         varchar2(32767),
attribute_20         varchar2(32767),
attribute_21         varchar2(32767),
attribute_22         varchar2(32767),
attribute_23         varchar2(32767),
attribute_24         varchar2(32767),
attribute_25         varchar2(32767),
region_columns       t_region_columns );

t_region_ajax_result

次の型は、リージョン・タイプのプラグインのAjaxファンクションの結果の型として使用されます。

type t_region_ajax_result is record (
dummy boolean /* not used yet */
);

t_region_render_result

次の型は、リージョン・タイプのプラグインのレンダリング・ファンクションの結果の型として使用されます。

type t_region_render_result is record (
navigable_dom_id varchar2(255) /* can be used to put focus to an input field (that is, search field) the region renders as part of the plug-in output */
);

GET_AJAX_IDENTIFIERファンクション

このファンクションは、プラグインに定義されたAjaxコールバック・ファンクションをコールする場合に使用されるAjax識別子を戻します。

注意:
このファンクションは、プラグインのレンダリング・ファンクションのコールを行うコンテキストでのみ動作し、プラグインの定義でAjaxファンクション・コールバックが定義されている場合にのみ動作します。

構文

APEX_PLUGIN.GET_AJAX_IDENTIFIER
RETURN VARCHAR2;

パラメータ

なし。

例

これは、Ajaxコールバックをサポートする動的アクションのプラグインのレンダリング・ファンクションの例です。

function render_set_value (
p_dynamic_action in apex_plugin.t_dynamic_action )
return apex_plugin.t_dynamic_action_render_result
is
l_result                apex_plugin.t_dynamic_action_render_result;
begin
l_result.javascript_function := 'com_oracle_apex_set_value';
l_result.ajax_identifier     := wwv_flow_plugin.get_ajax_identifier;
return l_result;
end;

GET_INPUT_NAME_FOR_PAGE_ITEMファンクション

アイテム・タイプのプラグインのレンダリング・ファンクションでHTML入力要素をレンダリングする場合に、このファンクションを使用します。HTML入力要素(<input type="text" id="P1_TEST" name="xxx">など)のname属性の値を提供して、Oracle Application Expressが送信された値をセッション・ステートの実際のページ・アイテムにマップできるようにする必要があります。このファンクションは、ページ・アイテムにマップするnameを戻します。HTML入力要素が複数の値を持つ場合は(multiple="multiple"を含む選択リストなど)、p_is_multi_valueをTRUEに設定します。

注意:
このファンクションは、アイテム・タイプのプラグインのレンダリング・ファンクションでコールされる場合にのみ役立ちます。

構文

APEX_PLUGIN.GET_INPUT_NAME_FOR_PAGE_ITEM (
p_is_multi_value  IN BOOLEAN)
RETURN VARCHAR2;

パラメータ

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

表21-1 GET_INPUT_NAME_FOR_PAGE_ITEMのパラメータ

パラメータ

説明

p_is_multi_value

HTML入力要素が複数の値を持つ場合は、TRUEを設定します。そうでない場合は、FALSEを設定します。複数の値を持つHTML入力要素には、チェック・ボックスおよび複数選択リストがあります。

例

次の例では、ページの送信時にセッション・ステートで値が格納されるテキスト・フィールドをレンダリングするために必要なHTMLコードを出力します。

sys.htp.prn (
'<input type="text" id="'||p_item.name||'" '||
'name="'||wwv_flow_plugin.get_input_name_for_page_item(false)||'" '||
'value="'||sys.htf.escape_sc(p_value)||'" '||
'size="'||p_item.element_width||'" '||
'maxlength="'||p_item.element_max_length||'" '||
coalesce(p_item.element_attributes, 'class="text_field"')||' />' );

22 APEX_PLUGIN_UTIL

APEX_PLUGIN_UTILパッケージには、プラグインを記述する際の共通の問題を解決するユーティリティ・ファクションが用意されています。

- DEBUG_DYNAMIC _ACTIONプロシージャ

- DEBUG_PAGE_ITEMプロシージャのシグネチャ1

- DEBUG_PAGE_ITEMプロシージャのシグネチャ2

- DEBUG_PROCESSプロシージャ

- DEBUG_REGIONプロシージャのシグネチャ1

- DEBUG_REGIONプロシージャのシグネチャ2

- ESCAPEファンクション

- EXECUTE_PLSQL_CODEプロシージャ

- GET_ATTRIBUTE_AS_NUMBERファンクション

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

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

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

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

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

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

- GET_ELEMENT_ATTRIBUTESファンクション

- GET_PLSQL_EXPRESSION_RESULTファンクション

- GET_PLSQL_FUNCTION_RESULTファンクション

- GET_POSITION_IN_LISTファンクション

- GET_SEARCH_STRINGファンクション

- IS_EQUALファンクション

- PAGE_ITEM_NAMES_TO_JQUERYファンクション

- PRINT_DISPLAY_ONLYプロシージャ

- PRINT_ESCAPED_VALUEプロシージャ

- PRINT_HIDDEN_IF_READONLYプロシージャ

- PRINT_JSON_HTTP_HEADERプロシージャ

- PRINT_LOV_AS_JSONプロシージャ

- PRINT_OPTIONプロシージャ

- REPLACE_SUBSTITUTIONSファンクション

DEBUG_DYNAMIC _ACTIONプロシージャ

このプロシージャは、デバッグが有効な場合に、動的アクション・メタデータのデータをデバッグ出力に書き込みます。

構文

APEX_PLUGIN_UTIL.DEBUG_DYNAMIC_ACTION (
p_plugin         IN apex_plugin.t_plugin,
p_dynamic_action IN apex_plugin.t_dynamic_action);

パラメータ

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

表22-1 DEBUG_DYNAMIC_ACTIONのパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです。

p_dynamic_action

プラグイン・ファンクションのp_dynamic_actionパラメータです。

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリングされたファンクションまたはAjaxコールバック・ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_dynamic_action (
p_plugin         => p_plugin,
p_dynamic_action => p_dynamic_action );

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

このプロシージャは、デバッグが有効な場合に、ページ・アイテム・メタデータのデータをデバッグ出力に書き込みます。

構文

APEX_PLUGIN_UTIL.DEBUG_PAGE_ITEM (
p_plugin    IN apex_plugin.t_plugin,
p_page_item IN apex_plugin.t_page_item);

パラメータ

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

表22-2 DEBUG_PAGE_ITEMのパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです。

p_page_item

プラグイン・ファンクションのp_page_itemパラメータです。

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、レンダラ、Ajaxコールバックまたは検証ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_page_item (
p_plugin    => p_plugin,
p_page_item => p_page_item );

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

このプロシージャは、デバッグが有効な場合に、ページ・アイテム・メタデータのデータをデバッグ出力に書き込みます。

構文

APEX_PLUGIN_UTIL.DEBUG_PAGE_ITEM (
p_plugin              IN apex_plugin.t_plugin,
p_page_item           IN apex_plugin.t_page_item,
p_value               IN VARCHAR2,
p_is_readonly         IN BOOLEAN,
p_is_printer_friendly IN BOOLEAN);

パラメータ

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

表22-3 DEBUG_PAGE_ITEMのパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです。

p_page_item

プラグイン・ファンクションのp_page_itemパラメータです。

p_value

プラグイン・ファンクションのp_valueパラメータです。

p_is_readonly

プラグイン・ファンクションのp_is_readonlyパラメータです。

p_is_printer_friendly

プラグイン・ファンクションのp_is_printer_friendlyパラメータです。

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、レンダラ、Ajaxコールバックまたは検証ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_page_item (
p_plugin         => p_plugin,
p_page_item      => p_page_item,
p_value          => p_value,
p_is_readonly    => p_is_readonly,
p_is_printer_friendly => p_is_printer_friendly);

DEBUG_PROCESSプロシージャ

このプロシージャは、デバッグが有効な場合に、プロセス・メタデータのデータをデバッグ出力に書き込みます。

構文

APEX_PLUGIN_UTIL.DEBUG_PROCESS (
p_plugin         IN apex_plugin.t_plugin,
p_process        IN apex_plugin.t_process);

パラメータ

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

表22-4 DEBUG_PROCESSのパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです。

p_process

プラグイン・ファンクションのp_processパラメータです。

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインの実行ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_process (
p_plugin         => p_plugin,
p_process        => p_process);

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

このプロシージャは、デバッグが有効な場合に、リージョン・メタデータのデータをデバッグ出力に書き込みます。

構文

APEX_PLUGIN_UTIL.DEBUG_REGION (
p_plugin              IN apex_plugin.t_plugin,
p_region              IN apex_plugin.t_region);

パラメータ

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

表22-5 DEBUG_REGIONのシグネチャ1のパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです。

p_region

プラグイン・ファンクションのp_regionパラメータです。

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリング・ファンクションまたはAjaxコールバック・ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_region (
p_plugin        => p_plugin,
p_region        => p_region);

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

このプロシージャは、デバッグが有効な場合に、リージョン・メタデータのデータをデバッグ出力に書き込みます。これは、リージョン・プラグインのレンダリング・ファンクションに使用する高度なバージョンのデバッグ・プロシージャです。

構文

APEX_PLUGIN_UTIL.DEBUG_REGION (
p_plugin              IN apex_plugin.t_plugin,
p_region              IN apex_plugin.t_region,
p_is_printer_friendly IN BOOLEAN);

パラメータ

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

表22-6 DEBUG_REGIONのシグネチャ2のパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです

p_region

プラグイン・ファンクションのp_regionパラメータです

p_is_printer_friendly

プラグイン・ファンクションのp_is_printer_friendlyパラメータです

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリング・ファンクションまたはAjaxコールバック・ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_process (
p_plugin              => p_plugin,
p_region              => p_region,
p_is_printer_friendly => p_is_printer_friendly);

ESCAPEファンクション

このファンクションは、アイテム・タイプのプラグインの標準属性である「エスケープ出力属性を指定」オプションが選択されていて、出力をエスケープするかどうかを開発者が指定できる場合に使用します。

構文

APEX_PLUGIN_UTIL.ESCAPE (
p_value  IN VARCHAR2,
p_escape IN BOOLEAN)
RETURN VARCHAR2;

パラメータ

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

表22-7 ESCAPEのパラメータ

パラメータ

説明

p_value

p_escapeパラメータに従ってエスケープする値です。

p_escape

TRUEを設定すると、戻り値はエスケープされます。FALSEを設定すると、値はエスケープされません。

例

次の例では、配列l_display_value_listのすべての値をHTMLリストとして出力し、プラグインの使用時に開発者が選択した設定に応じて、この配列の値をエスケープします。

for i in 1 .. l_display_value_list.count
loop
sys.htp.prn (
'<li>'||
apex_plugin_util.escape (
p_value  => l_display_value_list(i),
p_escape => p_item.escape_output )||
'</li>' );
end loop;

EXECUTE_PLSQL_CODEプロシージャ

このプロシージャは、PL/SQLコード・ブロックを実行し、提供されたPL/SQLコード内のバインド変数のバインディングを実行します。通常、このプロシージャはタイプが「PL/SQLコード」のプラグイン属性に使用します。

構文

APEX_PLUGIN_UTIL.EXECUTE_PLSQL_CODE (
p_plsql_code  IN VARCHAR2);

パラメータ

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

表22-8 EXECUTE_PLSQL_CODEのパラメータ

パラメータ

説明

p_plsql_code

実行されるPL/SQLコード。

例

エスケープしてから、HTTPバッファに出力する必要があるテキスト。

declare
l_plsql_code VARCHAR(32767) := p_process.attribute_01;
begin
apex_plugin_util.execute_plsql_code (
p_plsql_code => l_plsql_code );
end;

GET_ATTRIBUTE_AS_NUMBERファンクション

このファンクションは、現行データベース・セッションで有効なNLS小数点セパレータを考慮して、プラグイン属性の値を数値として戻します。このファンクションは、組込みto_numberファンクションのかわりに、プラグインPL/SQLソースでNUMBER型のカスタム属性に使用します。

構文

APEX_PLUGIN_UTIL.GET_ATTRIBUTE_AS_NUMBER (
p_value IN VARCHAR2 ),
p_attribute_label IN VARCHAR2 )
return NUMBER;

パラメータ

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

表22-9 GET_ATTRIBUTE_AS_NUMBERファンクションのパラメータ

パラメータ

説明

p_attribute_label

カスタム・プラグイン属性のラベル。

p_value

NUMBER型のカスタム属性の値。

例

declare
l_value number;
begin
-- The following may fail for languages that don't use dot as the NLS decimal separator
l_value := to_number( p_region.attribute_04 );

-- The following will work correctly regardless of the effective NLS decimal separator
l_value := apex_plugin_util.get_attribute_as_number( p_region.attribute_04, 'Minimum Amount' );
end;
/

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

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。

構文

APEX_PLUGIN_UTIL.GET_DATA (
p_sql_statement    IN VARCHAR2,
p_min_columns      IN NUMBER,
p_max_columns      IN NUMBER,
p_component_name   IN VARCHAR2,
p_search_type      IN VARCHAR2 DEFAULT 2,
p_search_column_no IN VARCHAR2 DEFAULT 2,
p_search_string    IN VARCHAR2 DEFAULT NULL,
p_first_row        IN NUMBER DEFAULT NULL,
p_max_rows         IN NUMBER DEFAULT NULL)
RETURN t_column_value_list;

パラメータ

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

表22-10 GET_DATAファンクションのシグネチャ1のパラメータ

パラメータ

説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

p_component_name

エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。

p_search_type

c_search_*定数のいずれかである必要があります。c_search_*定数は、c_search_contains_case、c_search_contains_ignore、c_search_exact_case、c_search_exact_ignoreです。

p_search_column_no

SQL文を制限するために使用する列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_string

問合せを制限するために使用する値。

p_first_row

指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。

p_max_rows

可能な戻り行の最大数。

戻り値

表22-11では、GET_DATAファンクションのシグネチャ1の戻り値について説明します。

表22-11 GET_DATAファンクションのシグネチャ1の戻り値

戻り値

説明

t_column_value_list

列番号で索引付けされたapex_application_global.vc_arr2の表。

例

次の例に、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。

function render_list (
p_item                in apex_plugin.t_page_item,
p_value               in varchar2,
p_is_readonly         in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_column_value_list   apex_plugin_util.t_column_value_list;
begin
l_column_value_list :=
apex_plugin_util.get_data (
p_sql_statement    => p_item.lov_definition,
p_min_columns      => 2,
p_max_columns      => 2,
p_component_name   => p_item.name,
p_search_type      => apex_plugin_util.c_search_contains_case,
p_search_column_no => 1,
p_search_string    => p_value );

sys.htp.p('<ul>');
for i in 1 .. l_column_value_list(1).count
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1)(i))|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2)(i))|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;

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

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。検索列は、p_search_column_nameパラメータに列名を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。

構文

APEX_PLUGIN_UTIL.GET_DATA (
p_sql_statement      IN VARCHAR2,
p_min_columns        IN NUMBER,
p_max_columns        IN NUMBER,
p_component_name     IN VARCHAR2,
p_search_type        IN VARCHAR2 DEFAULT NULL,
p_search_column_name IN VARCHAR2 DEFAULT NULL,
p_search_string      IN VARCHAR2 DEFAULT NULL,
p_first_row          IN NUMBER DEFAULT NULL,
p_max_rows           IN NUMBER DEFAULT NULL)
RETURN t_column_value_list;

パラメータ

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

表22-12 GET_DATAファンクションのシグネチャ2のパラメータ

パラメータ

説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

p_component_name

エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。

p_search_type

c_search_*定数のいずれかである必要があります。c_search_*定数は、c_search_contains_case、c_search_contains_ignore、c_search_exact_case、c_search_exact_ignoreです。

p_search_column_name

これは、SQL文を制限するために使用する列名です。

p_search_string

問合せを制限するために使用する値。

p_first_row

指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。

p_max_rows

可能な戻り行の最大数。

戻り値

表22-13では、GET_DATAファンクションのシグネチャ2の戻り値について説明します。

表22-13 GET_TABLEファンクションのシグネチャ2

パラメータ

説明

t_column_value_list

列番号で索引付けされたapex_application_global.vc_arr2の表。

例

次の例に、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。

function render_list (
p_item                in apex_plugin.t_page_item,
p_value               in varchar2,
p_is_readonly         in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_column_value_list   apex_plugin_util.t_column_value_list;
begin
l_column_value_list :=
apex_plugin_util.get_data (
p_sql_statement    => p_item.lov_definition,
p_min_columns      => 2,
p_max_columns      => 2,
p_component_name   => p_item.name,
p_search_type      => apex_plugin_util.c_search_contains_case,
p_search_column_name => 'ENAME',
p_search_string    => p_value );

sys.htp.p('<ul>');
for i in 1 .. l_column_value_list(1).count
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1)(i))|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2)(i))|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;

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

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。

構文

APEX_PLUGIN_UTIL.GET_DATA2 (
p_sql_statement    IN VARCHAR2,
p_min_columns      IN NUMBER,
p_max_columns      IN NUMBER,
p_data_type_list   IN WWV_GLOBAL.VC_ARR2 DEFAULT C_EMPTY_DATA_TYPE_LIST,
p_component_name   IN VARCHAR2,
p_search_type      IN VARCHAR2 DEFAULT 2,
p_search_column_no IN VARCHAR2 DEFAULT 2,
p_search_string    IN VARCHAR2 DEFAULT NULL,
p_first_row        IN NUMBER DEFAULT NULL,
p_max_rows         IN NUMBER DEFAULT NULL)
RETURN t_column_value_list2;

パラメータ

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

表22-14 GET_DATA2のパラメータ

パラメータ

説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

p_data_type_list

指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数c_data_type_*を使用します。

p_component_name

エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。

p_search_type

c_search_*定数のいずれかである必要があります。c_search_*定数は、c_search_contains_case、c_search_contains_ignore、c_search_exact_case、c_search_exact_ignoreです。

p_search_column_no

SQL文を制限するために使用する列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_string

問合せを制限するために使用する値。

p_first_row

指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。

p_max_rows

可能な戻り行の最大数。

戻り値

表22-15では、GET_DATA2ファンクションの戻り値について説明します。

表22-15 GET_DATA2の戻り値

戻り値

説明

t_column_value_list2

列番号で索引付けされたt_column_valuesの表

例

次の例は、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。ここでは、LOV SQL文の最初の列がVARCHAR2型であり、2つ目の列が数値型であることを確認します。

function render_list (
p_item                in apex_plugin.t_page_item,
p_value               in varchar2,
p_is_readonly         in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_data_type_list    apex_application_global.vc_arr2;
l_column_value_list apex_plugin_util.t_column_value_list2;
begin
-- The first LOV column has to be a string and the second a number
l_data_type_list(1) := apex_plugin_util.c_data_type_varchar2;
l_data_type_list(2) := apex_plugin_util.c_data_type_number;
--
l_column_value_list :=
apex_plugin_util.get_data2 (
p_sql_statement    => p_item.lov_definition,
p_min_columns      => 2,
p_max_columns      => 2,
p_data_type_list   => l_data_type_list,
p_component_name   => p_item.name,
p_search_type      => apex_plugin_util.c_search_contains_case,
p_search_column_no => 1,
p_search_string    => p_value );
--
sys.htp.p('<ul>');
for i in 1 .. l_column_value_list.count(1)
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1).value_list(i).varchar2_value)|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2).value_list(i).number_value)|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;

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

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。

構文

APEX_PLUGIN_UTIL.GET_DATA2 (
p_sql_statement      IN VARCHAR2,
p_min_columns        IN NUMBER,
p_max_columns        IN NUMBER,
p_data_type_list     IN WWV_GLOBAL.VC_ARR2 DEFAULT C_EMPTY_DATA_TYPE_LIST,
p_component_name     IN VARCHAR2,
p_search_type        IN VARCHAR2 DEFAULT 2,
p_search_column_name IN VARCHAR2 DEFAULT 2,
p_search_string      IN VARCHAR2 DEFAULT NULL,
p_first_row          IN NUMBER DEFAULT NULL,
p_max_rows           IN NUMBER DEFAULT NULL)
RETURN t_column_value_list2;

パラメータ

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

表22-16 GET_DATA2ファンクションのシグネチャ2

パラメータ

説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

p_data_type_list

指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数c_data_type_*を使用します。

p_component_name

エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。

p_search_type

c_search_*定数のいずれかである必要があります。c_search_*定数は、c_search_contains_case、c_search_contains_ignore、c_search_exact_case、c_search_exact_ignoreです。

p_search_column_name

SQL文を制限するために使用する列名。

p_search_string

問合せを制限するために使用する値。

p_first_row

指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。

p_max_rows

可能な戻り行の最大数。

戻り値

表22-17では、GET_DATA2ファンクションのシグネチャ2の戻り値について説明します。

表22-17 GET_DATA2ファンクションのシグネチャ2の戻り値

パラメータ

説明

t_column_value_list2

列番号で索引付けされたt_column_valuesの表

例

次の例は、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。ここでは、LOV SQL文の最初の列がVARCHAR2型であり、2つ目の列が数値型であることを確認します。

function render_list (
p_item                in apex_plugin.t_page_item,
p_value               in varchar2,
p_is_readonly         in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_data_type_list    apex_application_global.vc_arr2;
l_column_value_list apex_plugin_util.t_column_value_list2;
begin
-- The first LOV column has to be a string and the second a number
l_data_type_list(1) := apex_plugin_util.c_data_type_varchar2;
l_data_type_list(2) := apex_plugin_util.c_data_type_number;
--
l_column_value_list :=
apex_plugin_util.get_data2 (
p_sql_statement    => p_item.lov_definition,
p_min_columns      => 2,
p_max_columns      => 2,
p_data_type_list   => l_data_type_list,
p_component_name   => p_item.name,
p_search_type      => apex_plugin_util.c_search_contains_case,
p_search_column_name => 'ENAME',
p_search_string    => p_value );
--
sys.htp.p('<ul>');
for i in 1 .. l_column_value_list.count(1)
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_column_value_list(1).value_list(i).varchar2_value)|| -- display column
'-'||
sys.htf.escape_sc(l_column_value_list(2).value_list(i).number_value)|| -- return column
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;

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

このファンクションは、p_search_stringに指定される値の表示参照値を取得します。

構文

APEX_PLUGIN_UTIL.GET_DISPLAY_DATA (
p_sql_statement    IN VARCHAR2,
p_min_columns      IN NUMBER,
p_max_columns      IN NUMBER,
p_component_name   IN VARCHAR2,
p_display_column_no IN BINARY_INTEGER DEFAULT 1,
p_search_column_no  IN BINARY_INTEGER DEFAULT 2,
p_search_string    IN VARCHAR2 DEFAULT NULL,
p_display_extra    IN BOOLEAN DEFAULT TRUE)
RETURN VARCHAR2;

パラメータ

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

表22-18 GET_DISPLAY_DATAのシグネチャ1のパラメータ

パラメータ

説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

p_component_name

エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。

p_display_column_no

SQL文から戻される列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_column_no

SQL文を制限するために使用する列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_string

問合せを制限するために使用する値。

p_display_extra

TRUEを設定すると、値が見つからなかい場合に、かわりに検索値が結果に追加されます。

戻り値

表22-19では、GET_DISPLAY_DATAファンクションのシグネチャ1の戻り値について説明します。

表22-19 GET_DISPLAY_DATAのシグネチャ1の戻り値

戻り値

説明

VARCHAR2

p_display_column_noで指定した列の最初のレコードの値。パラメータp_display_extraにTRUEが設定されていると、レコードが見つからない場合にp_search_stringの値が含まれます。そうでない場合は、NULLが戻されます。

例

次の例では、p_valueで提供された値で参照を実行し、LOV問合せの表示列を戻します。

function render_value (
p_item                in apex_plugin.t_page_item,
p_value               in varchar2,
p_is_readonly         in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
begin
sys.htp.p(sys.htf.escape_sc(
apex_plugin_util.get_display_data (
p_sql_statement     => p_item.lov_definition,
p_min_columns       => 2,
p_max_columns       => 2,
p_component_name    => p_item.name,
p_display_column_no => 1,
p_search_column_no  => 2,
p_search_string     => p_value )));
end render_value;

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

このファンクションは、1つの値参照ではなく、p_search_value_listで提供されるすべての値を参照します。

構文

APEX_PLUGIN_UTIL.GET_DISPLAY_DATA (
p_sql_statement    IN VARCHAR2,
p_min_columns      IN NUMBER,
p_max_columns      IN NUMBER,
p_component_name   IN VARCHAR2,
p_display_column_no IN BINARY_INTEGER DEFAULT 1,
p_search_column_no  IN BINARY_INTEGER DEFAULT 2,
p_search_value_list IN ww_flow_global.vc_arr2,
p_display_extra     IN BOOLEAN DEFAULT TRUE)
RETURN apex_application_global.vc_arr2;

パラメータ

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

表22-20 GET_DISPLAY_DATAのシグネチャ2のパラメータ

パラメータ

説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

p_component_name

エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。

p_display_column_no

SQL文から戻される列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_column_no

SQL文を制限するために使用する列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_value_list

参照する値の配列。

p_display_extra

TRUEを設定すると、値が見つからなかい場合に、かわりに検索値が結果に追加されます。

戻り値

表22-21では、GET_DISPLAY_DATAファンクションのシグネチャ2の戻り値について説明します。

表22-21 GET_DISPLAY_DATAのシグネチャ2の戻り値

戻り値

説明

apex_application_global.vc_arr2

pls_integerで索引付けされるVARCHAR2のリスト。p_search_value_listのエントリごとに、p_display_column_noで指定された列の最初のレコードの値が、p_search_value_listと同じ順序で結果の配列に含まれます。パラメータp_display_extraにTRUEが設定されていると、レコードが見つからない場合にp_search_stringの値が含まれます。そうでない場合は、値がスキップされます。

例

値7863、7911および7988を参照し、LOV問合せの対応する表示列の値で、HTMLリストを生成します。

function render_list (
p_plugin              in apex_plugin.t_plugin,
p_item                in apex_plugin.t_page_item,
p_value               in varchar2,
p_is_readonly         in boolean,
p_is_printer_friendly in boolean )
return apex_plugin.t_page_item_render_result
is
l_search_list apex_application_global.vc_arr2;
l_result_list apex_application_global.vc_arr2;
begin
l_search_list(1) := '7863';
l_search_list(2) := '7911';
l_search_list(3) := '7988';
--
l_result_list :=
apex_plugin_util.get_display_data (
p_sql_statement     => p_item.lov_definition,
p_min_columns       => 2,
p_max_columns       => 2,
p_component_name    => p_item.name,
p_search_column_no  => 1,
p_search_value_list => l_search_list );
--
sys.htp.p('<ul>');
for i in 1 .. l_result_list.count
loop
sys.htp.p(
'<li>'||
sys.htf.escape_sc(l_result_list(i))||
'</li>');
end loop;
sys.htp.p('</ul>');
end render_list;

GET_ELEMENT_ATTRIBUTESファンクション

このファンクションは、一貫性のある属性セットを取得するためにHTMLのinput、select、textareaなどのタグを生成する場合に使用される、いくつかのHTML要素の標準属性(id、name、required、placeholder、aria-error-attributes、classなど)を戻します。

構文

APEX_PLUGIN_UTIL.GET_ELEMENT_ATTRIBUTES (
p_item in apex_plugin.t_page_item,
p_name in varchar2 default null,
p_default_class in varchar2 default null,
p_add_id in boolean default true,
p_add_labelledby in boolean default true )
return varchar2;

パラメータ

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

表22-22 GET_ELEMENT_ATTRIBUTESファンクションのパラメータ

パラメータ

説明

p_add_labelled_by

一貫性のある属性セットを取得するためにHTMLのinput、select、textareaなどのタグを生成する場合に使用される、HTML要素(ID、name、required、placeholder、aria-error-attributes、classなど)の一般属性をいくつか戻します。aria-labelledby属性の指定を必要としないHTMLの入力要素(input、select、textareaなど)をレンダリングする場合は、ラベルのfor属性がそのようなHTMLの入力要素用に機能するため、FALSEに設定します。すべての非標準フォーム要素のウィジェット(つまり、div、spanなどを使用するもの)の場合はTRUEに設定し、フォーカスによってスクリーン・リーダーでアクセスしやすくすることを可能にします。

注意: aria-labelledbyの挿入は、「標準のフォーム要素」が「いいえ」に設定され、#LABEL_ID#置換がアイテムの対応するラベル・テンプレートで定義されているアイテム・プラグインによっても左右されます。

p_item

これは、プラグイン・ファンクションのp_itemパラメータです。

p_name

これは、apex_plugin.get_input_name_or_page_itemによって戻される値です。

p_default_class

結果文字列に含む必要があるデフォルトのCSSクラス。

p_add_id

TRUEを設定すると、結果文字列にID属性も含まれます。

例

この例では、最も一般的な属性が自動的に含まれるように、apex_plugin_util.get_element_attributesを使用するテキスト・タイプのINPUTタグを生成します。

sys.htp.prn (
'<input type="text" ' ||
apex_plugin_util.get_element_attributes(p_item, l_name, 'text_field') ||
'value="'||l_escaped_value||'" '||
'size="'||p_item.element_width||'" '||
'maxlength="'||p_item.element_max_length||'" '||
' />');

GET_PLSQL_EXPRESSION_RESULTファンクション

このファンクションは、PL/SQL式を実行して結果を戻します。このファンクションは、提供されたPL/SQL式の任意のバインド変数のバインディングも実行します。通常、このファンクションはタイプがPL/SQL式であるプラグイン属性に使用されます。

構文

APEX_PLUGIN_UTIL.GET_PLSQL_EXPRESSION_RESULT (
p_plsql_expression IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表22-23 GET_PLSQL_EXPRESSION_RESULTのパラメータ

パラメータ

説明

p_plsql_expression_result

文字列を戻すPL/SQL式。

戻り値

表22-24では、GET_PLSQL_EXPRESSION_RESULTファンクションの戻り値について説明します。

表22-24 GET_PLSQL_EXPRESSION_RESULTの戻り値

戻り値

説明

VARCHAR2

PL/SQL式から戻される文字列の結果値。

例

次の例では、タイプが「PL/SQL式」であるアイテム・タイプ・プラグインの属性のattribute_03で指定されるPL/SQL式を実行し、結果を戻します。

l_result := apex_plugin_util.get_plsql_expression_result (
p_plsql_expression => p_item.attribute_03 );

GET_PLSQL_FUNCTION_RESULTファンクション

このファンクションは、PL/SQLファンクション・ブロックを実行して結果を戻します。このファンクションは、提供されたPL/SQLファンクション本体のバインド変数のバインディングも実行します。通常、このファンクションはタイプが「PL/SQLファンクション本体」のプラグイン属性に使用されます。

構文

APEX_PLUGIN_UTIL.GET_PLSQL_FUNCTION_RESULT (
p_plsql_function IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表22-25 GET_PLSQL_FUNCTION_RESULTのパラメータ

パラメータ

説明

p_plsql_function

文字列型の結果を戻すPL/SQLファンクション・ブロック。

戻り値

表22-26では、GET_PLSQL_FUNCTION_RESULTファンクションの戻り値について説明します。

表22-26 GET_PLSQL_FUNCTION_RESULTの戻り値

戻り値

説明

VARCHAR2

PL/SQLファンクション・ブロックから戻される文字列の結果値。

例

次の例では、タイプがPL/SQLファンクション本体であるアイテム・タイプ・プラグインの属性のattribute_03で指定されるPL/SQLファンクション本体を実行し、結果を戻します。

l_result := apex_plugin_util.get_plsql_function_result (
p_plsql_function => p_item.attribute_03 );

GET_POSITION_IN_LISTファンクション

このファンクションは、p_valueが格納されるリスト内の位置を戻します。見つからない場合は、nullが戻されます。

構文

APEX_PLUGIN_UTIL.GET_POSITION_IN_LIST(
p_list IN apex_application_global.vc_arr2,
p_value IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表22-27 GET_POSITION_IN_LISTのパラメータ

パラメータ

説明

p_list

VARCHAR2型のエントリを含むapex_application_global.vc_arr2型の配列。

p_value

p_list配列に配置される値。

戻り値

表22-28では、GET_POISTION_IN_LISTファンクションの戻り値について説明します。

表22-28 GET_POSITION_IN_LISTの戻り値

戻り値

説明

NUMBER

配列p_listでのp_valueの位置を戻します。見つからない場合は、NULLが戻されます。

例

次の例では、提供されたリスト内でNew Yorkを検索し、l_positionに2を戻します。

declare
l_list     apex_application_global.vc_arr2;
l_position number;
begin
l_list(1) := 'Rome';
l_list(2) := 'New York';
l_list(3) := 'Vienna';

l_position := apex_plugin_util.get_position_in_list (
p_list  => l_list,
p_value => 'New York' );
end;

GET_SEARCH_STRINGファンクション

p_search_type内の提供された値に基づいて、p_search_stringに渡された値が変更されずに戻されるか、大文字に変換されます。このファンクションは、get_dataおよびget_data2のp_search_stringパラメータとともに使用します。

構文

APEX_PLUGIN_UTIL.GET_SEARCH_STRING(
p_search_type IN VARCHAR2,
p_search_string IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表22-29 GET_SEARCH_STRINGのパラメータ

パラメータ

説明

p_search_type

get_dataおよびget_data2で使用する場合の検索のタイプ。c_search_*定数のいずれかを使用します。

p_search_string

get_dataおよびget_data2での検索に使用される検索文字列。

戻り値

表22-30では、GET_SEARCH_STRINGファンクションの戻り値について説明します。

表22-30 GET_SEARCH_STRINGの戻り値

戻り値

説明

VARCHAR2

p_search_typeがc_search_contains_ignore型またはc_search_exact_ignore型の場合、p_search_stringは変更されずに戻されるか、大文字で戻されます。

例

次の例では、get_dataまたはget_data2へのコールを使用して、検索文字列の大文字と小文字が正しいことを確認します。

l_column_value_list :=
apex_plugin_util.get_data (
p_sql_statement    => p_item.lov_definition,
p_min_columns      => 2,
p_max_columns      => 2,
p_component_name   => p_item.name,
p_search_type      => apex_plugin_util.c_search_contains_ignore,
p_search_column_no => 1,
p_search_string    => apex_plugin_util.get_search_string (
p_search_type   => apex_plugin_util.c_search_contains_ignore,
p_search_string => p_value ) );

IS_EQUALファンクション

このファンクションは、両方の値が等しい場合にTRUEを戻し、等しくない場合にFALSEを戻します。両方の値がNULLの場合は、TRUEが戻されます。

構文

APEX_PLUGIN_UTIL.IS_EQUAL (
p_value1 IN VARCHAR2
p_value2 IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表22-31 IS_EQUALのパラメータ

パラメータ

説明

p_value1

比較する最初の値。

p_value2

比較する2つ目の値。

戻り値

表22-32では、IS_EQUALファンクションの戻り値について説明します。

表22-32 IS_EQUALの戻り値

戻り値

説明

BOOLEAN

両方の値が等しいか、両方の値がNULLの場合、TRUEを戻します。そうでない場合は、FALSEを戻します。

例

次の例では、データベースの値が入力内容と異なる場合に、if文のコードが実行されます。

if NOT apex_plugin_util.is_equal(l_database_value, l_current_value) then
-- value has changed, do something
null;
end if;

PAGE_ITEM_NAMES_TO_JQUERYファンクション

このファンクションは、ページ・アイテム名のカンマ区切り文字列に基づいて、jQueryセレクタを戻します。たとえば、JavaScriptコードが指定されたページ・アイテムの値を読み取る必要がある「送信するページ・アイテム」というプラグイン属性に対して、このファンクションを使用できます。

構文

APEX_PLUGIN_UTIL.PAGE_ITEM_NAMES_TO_JQUERY (
p_page_item_names IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表22-33 PAGE_ITEM_NAMES_TO_JQUERYのパラメータ

パラメータ

説明

p_page_item_names

ページ・アイテム名のカンマ区切りリスト。

戻り値

表22-32では、PAGE_ITEM_NAMES_TO_JQUERYファンクションからの戻り値について説明します。

表22-34 PAGE_ITEM_NAMES_TO_JQUERYの戻り値

戻り値

説明

VARCHAR2

p_page_item_namesに指定されたページ・アイテムをjQueryセレクタに変換します。

例

次の例は、myOwnWidget.というJavaScriptファンクションの初期化コールを作成するコードを示しています。このファンクションは、いくつかの属性を持つオブジェクトを取得しますが、この属性のうちの1つは、jQueryセレクタとなるpageItemsToSubmitです。

apex_javascript.add_onload_code (
p_code => 'myOwnWidget('||
'"#'||p_item.name||'",'||
'{'||
apex_javascript.add_attribute('ajaxIdentifier',      apex_plugin.get_ajax_identifier)||
apex_javascript.add_attribute('dependingOnSelector', apex_plugin_util.page_item_names_to_jquery(p_item.lov_cascade_parent_items))||
apex_javascript.add_attribute('optimizeRefresh',     p_item.ajax_optimize_refresh)||
apex_javascript.add_attribute('pageItemsToSubmit',   apex_plugin_util.page_item_names_to_jquery(p_item.ajax_items_to_submit))||
apex_javascript.add_attribute('nullValue',           p_item.lov_null_value, false, false)||
'});' );

PRINT_DISPLAY_ONLYプロシージャ

このプロシージャは、表示のみのフィールド用のSPANタグを出力します。

構文

APEX_PLUGIN_UTIL.PRINT_DISPLAY_ONLY (
p_item_name        IN VARCHAR2,
p_display_value    IN VARCHAR2,
p_show_line_breaks IN BOOLEAN,
p_attributes       IN VARCHAR2,
p_id_postfix       IN VARCHAR2 DEFAULT '_DISPLAY');

パラメータ

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

表22-35 PRINT_DISPLAY_ONLYのパラメータ

パラメータ

説明

p_item_name

ページ・アイテムの名前。このパラメータは、p_item.nameでコールされる必要があります。

p_display_value

表示されるテキスト。

p_show_line_breaks

TRUEを設定すると、p_display_valueの改行は<br />に変更され、ブラウザで改行としてレンダリングされます。

p_attributes

SPANタグに追加されるその他の属性。

p_id_postfix

SPANタグのIDを取得するためにp_item_nameの値に追加される接尾辞。デフォルトは、_DISPLAYです。

例

次のコードは、アイテム・タイプ・プラグインで表示のみのページ・アイテムをレンダリングする場合に使用できます。

apex_plugin_util.print_display_only (
p_item_name        => p_item.name,
p_display_value    => p_value,
p_show_line_breaks => false,
p_escape           => true,
p_attributes       => p_item.element_attributes );

PRINT_ESCAPED_VALUEプロシージャ

このプロシージャは、値をエスケープされた形式で、文字数の多い場合は文字列をより小さいチャンクに分割して出力します。

構文

APEX_PLUGIN_UTIL.PRINT_ESCAPED_VALUE (
p_value   IN VARCHAR2);

パラメータ

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

表22-36 PRINT_ESCAPED_VALUEのパラメータ

パラメータ

説明

p_value

エスケープしてから、HTTPバッファに出力する必要があるテキスト。

例

ページ・アイテムの現在の値で、非表示フィールドを出力します。

sys.htp.prn('<input type="hidden" name="'||l_name||'" id="'||p_item_name||'" value="');
print_escaped_value(p_value);
sys.htp.prn('">');

PRINT_HIDDEN_IF_READONLYプロシージャ

ページ・アイテムが読取り専用としてレンダリングされ、プリンタ用ではない場合、このプロシージャはページ・アイテム値を格納する非表示フィールドを出力します。このプロシージャがアイテム・タイプ・プラグインでコールされる場合、プラグイン・インタフェースのパラメータは直接渡される必要があります。

構文

APEX_PLUGIN_UTIL.PRINT_HIDDEN_IF_READ_ONLY (
p_item_name   IN VARCHAR2,
p_value       IN VARCHAR2,
p_is_readonly IN BOOLEAN,
p_is_printer_friendly IN BOOLEAN,
p_id_postfix  IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表22-37 PRINT_HIDDEN_IF_READONLYのパラメータ

パラメータ

説明

p_item_name

ページ・アイテムの名前。このパラメータに対してp_item.nameが渡される必要があります。

p_value

ページ・アイテムの現在の値。このパラメータに対してp_valueを渡す必要があります。

p_is_readonly

読取り専用でレンダリングされるアイテムかどうか。このパラメータに対してp_is_readonlyを渡す必要があります。

p_is_printer_friendly

プリンタ用でレンダリングされるアイテムかどうか。このパラメータに対してp_is_printer_friendlyを渡す必要があります。

p_id_postfix

非表示フィールドのID属性の生成に使用されます。p_item_nameとp_id_postfixの値に基づいて作成されます。

例

p_is_readonlyがTRUEで、p_printer_friendlyがFALSEの場合、現在の値が含まれる非表示フィールドをHTTP出力に書き込みます。

apex_plugin_util.print_hidden_if_readonly (
p_item_name           => p_item.name,
p_value               => p_value,
p_is_readonly         => p_is_readonly,
p_is_printer_friendly => p_is_printer_friendly );

PRINT_JSON_HTTP_HEADERプロシージャ

このプロシージャは、JSON出力の標準HTTPヘッダーを出力します。

構文

APEX_PLUGIN_UTIL.PRINT_JSON_HTTP_HEADER;

パラメータ

なし。

例

次の例に、プラグインのAjaxコールバック・ファンクションでこのプロシージャを使用する方法を示します。このコードは、JSONの構造を[{"d":"Display 1","r":"Return 1"},{"d":"Display 2","r":"Return 2"}]という形式で出力します。

-- Write header for the JSON stream.
apex_plugin_util.print_json_http_header;
-- initialize the JSON structure
sys.htp.p('[');
-- loop through the value array
for i in 1 .. l_values.count
loop
-- add array entry
sys.htp.p (
case when i > 1 then ',' end||
'{'||
apex_javascript.add_attribute('d', sys.htf.escape_sc(l_values(i).display_value), false, true)||
apex_javascript.add_attribute('r', sys.htf.escape_sc(l_values(i).return_value), false, false)||
'}' );
end loop;
-- close the JSON structure
sys.htp.p(']');

PRINT_LOV_AS_JSONプロシージャ

このプロシージャは、2つの列のLOVの結果に基づいて、JSONレスポンスを次の形式で出力します。

[{"d:"display","r":"return"},{"d":....,"r":....},....]

注意:
HTTPヘッダーも、MIMEタイプの「application/json」で初期化されます。

構文

APEX_PLUGIN_UTIL.PRINT_LOV_AS_JSON (
p_sql_statement         IN VARCHAR2,
p_component_name        IN VARCHAR2,
p_escape                IN BOOLEAN,
p_replace_substitutions IN BOOLEAN DEFAULT FALSE);

パラメータ

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

表22-38 PRINT_LOV_AS_JSONのパラメータ

パラメータ

説明

p_sql_statement

SELECTから2つの列を戻すSQL文。

p_component_name

エラーが表示される場合に使用されるページ・アイテムまたはレポート列の名前。

p_escape

TRUEを設定すると、表示列の値はエスケープされ、そうでない場合は、そのまま出力されます。

p_replace_substitutions

TRUEに設定すると、表示列の値としてapex_plugin_util.replace_substitutionsがコールされますが、そうでない場合は、そのまま出力されます。

例

次の例に、アイテム・タイプ・プラグインのAjaxコールバック・ファンクションでプロシージャを使用する方法を示します。次のコールはLOVの結果をJSON配列としてHTTP出力に書き込みます。

apex_plugin_util.print_lov_as_json (
p_sql_statement  => p_item.lov_definition,
p_component_name => p_item.name,
p_escape         => true );

PRINT_OPTIONプロシージャ

このプロシージャは、OPTIONタグを出力します。

構文

APEX_PLUGIN_UTIL.PRINT_OPTION (
p_display_value       IN VARCHAR2,
p_return_value        IN VARCHAR2,
p_is_selected         IN BOOLEAN,
p_attributes          IN VARCHAR2,
p_escape              IN BOOLEAN DEFAULT TRUE);

パラメータ

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

表22-39 PRINT_OPTIONのパラメータ

パラメータ

説明

p_display_value

オプションで表示されるテキスト。

p_return_value

オプションが選択されると設定される値。

p_is_selected

選択した属性をこのオプションに対して設定する必要がある場合は、TRUEを設定します。

p_attributes

OPTIONタグに設定する必要がある追加のHTML属性。

p_escape

p_display_valueの特殊文字をエスケープする必要がある場合は、TRUEを設定します。

例

次の例は、アイテム・タイプのプラグインで選択リストを作成するために使用されています。apex_plugin_util.is_equalを使用して、現行のものとしてマークする必要があるリスト・エントリを検索します。

sys.htp.p('<select id="'||p_item.name||'" size="'||nvl(p_item.element_height, 5)||'" '||coalesce(p_item.element_attributes, 'class="new_select_list"')||'>');
-- loop through the result and add list entries
for i in 1 .. l_values.count
loop
apex_plugin_util.print_option (
p_display_value => l_values(i).display_value,
p_return_value  => l_values(i).return_value,
p_is_selected   => apex_plugin_util.is_equal(l_values(i).return_value, p_value),
p_attributes    => p_item.element_option_attributes,
p_escape        => true );
end loop;
sys.htp.p('</select>');

REPLACE_SUBSTITUTIONSファンクション

次のファンクションは、&ITEM.置換参照を実際の値と置換します。p_escapeをTRUEに設定すると、参照されたアイテムの値に含まれるすべての特殊文字がエスケープされるため、クロスサイト・スクリプティング(XSS)攻撃を防ぐことができます。

構文

apex_plugin_util.replace_substitutions (
p_value    in varchar2,
p_escape   in boolean default true )
return varchar2;

パラメータ

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

表22-40 REPLACE_SUBSTITUTIONのパラメータ

パラメータ

説明

p_value

この値は、実際のページ・アイテムの値によって置換される&ITEM.参照をいくつか含むことができる文字列です。

p_escape

TRUEに設定すると、参照されたアイテムの値に含まれるすべての特殊文字がエスケープされるため、クロスサイト・スクリプティング(XSS)攻撃を防ぐことができます。FALSEに設定すると、参照されたアイテムはエスケープされません。

例

次の例では、リージョン・プラグインattribute 05内の置換構文の参照を、実際の値と置換します。値の中の特殊文字はすべてエスケープされます。

l_advanced_formatting  := apex_plugin_util.replace_substitutions (
p_value => p_region.attribute_05,
p_escape => true );

23 APEX_REGION

APEX_REGIONパッケージは、リージョンを処理するためのパブリックAPIです。

- IS_READ_ONLYファンクション

- PURGE_CACHEプロシージャ

IS_READ_ONLYファンクション

このファンクションは、現在のリージョンが読取り専用でレンダリングされている場合にはTRUEを、リージョンが読取り専用でレンダリングされていない場合にはFALSEを戻します。現在処理されているリージョンがないというコンテキストからこのファンクションがコールされた場合は、NULLを戻します。たとえば、リージョンまたはその基礎となるアイテムおよびボタンの条件でこのファンクションを使用できます。

構文

FUNCTION IS_READ_ONLY
RETURN BOOLEAN;

パラメータ

なし。

例

この例では、アプリケーション全体についてセッション固有のリージョン・キャッシュをパージします。

RETURN APEX_REGION.IS_READ_ONLY;

PURGE_CACHEプロシージャ

このプロシージャは、指定されたアプリケーション、ページおよびリージョンのリージョン・キャッシュをパージします。

構文

PROCEDURE PURGE_CACHE (
p_application_id       IN NUMBER DEFAULT wwv_flow.g_flow_id,
p_page_id              IN NUMBER DEFAULT NULL,
p_region_id            IN NUMBER DEFAULT NULL,
p_current_session_only IN BOOLEAN DEFAULT FALSE );

パラメータ

表23-1 PURGE_CACHEのパラメータ

パラメータ

説明

p_application_id

リージョン・キャッシュをパージするアプリケーションのID。デフォルトは、現在のアプリケーションです。

p_page_id

リージョン・キャッシュをパージするページのID。値を指定しないと(デフォルト)、アプリケーションのすべてのリージョンがパージされます。

p_region_id

ページ上の特定リージョンのID。値を指定しないと、指定されたページのすべてのリージョンがパージされます。

p_current_session_only

現在のセッション用に保存されたエントリのみをパージする場合は、TRUEを指定します。デフォルトは、FALSEです。

例

この例では、アプリケーション全体についてセッション固有のリージョン・キャッシュをパージします。

BEGIN
APEX_REGION.PURGE_CACHE (
p_current_session_only => true );
END;

24 APEX_SPATIAL

このパッケージを使用すると、Application Express内でOracle LocatorおよびOracle Spatialオプションを使用できます。Application Expressのコンテキストでは、データベース・セッションのログオン・ユーザーは通常、APEX_PUBLIC_USERまたはANONYMOUSです。Spatialの開発者は、SQLワークショップ内のSQLコマンドなどでは、このようなセッション内でDMLをUSER_SDO_GEOM_METADATAに対して直接使用できません。Spatialビューのトリガーはログオン・ユーザーとしてDMLを実行しますが、アプリケーション所有者またはワークスペース・ユーザーとして実行する必要があります。APEX_SPATIAL APIにより、開発者は次に示すプロシージャおよびファンクションを使用し、現在のApplication ExpressユーザーとしてUSER_SDO_GEOM_METADATAの行を挿入、更新および削除できます。また、このパッケージには、Application ExpressでのSpatialの使用を簡略化するユーティリティがいくつか用意されています。

- データ型

- CHANGE_GEOM_METADATAプロシージャ

- CIRCLE_POLYGONファンクション

- DELETE_GEOM_METADATAプロシージャ

- INSERT_GEOM_METADATAプロシージャ

- INSERT_GEOM_METADATA_LONLATプロシージャ

- POINTファンクション

- RECTANGLEファンクション

データ型

この項では、このパッケージで使用するデータ型について説明します。

t_srid

subtype t_srid is number;

c_no_reference_system

c_no_reference_system constant t_srid := null;

c_wgs_84

c_wgs_84  constant t_srid := 4326; -- World Geodetic System, EPSG:4326

CHANGE_GEOM_METADATAプロシージャ

このプロシージャは、空間メタデータ・レコードを変更します。

構文

APEX_SPATIAL.CHANGE_GEOM_METADATA (
p_table_name        IN VARCHAR2,
p_column_name       IN VARCHAR2,
p_new_table_name    IN VARCHAR2 DEFAULT NULL,
p_new_column_name   IN VARCHAR2 DEFAULT NULL,
p_diminfo           IN mdsys.sdo_dim_array,
p_srid              IN t_srid );

パラメータ

表24-1 CHANGE_GEOM_METADATAのパラメータ

パラメータ

説明

p_table_name

機能表の名前。

p_column_name

型mdsys.sdo_geometryの列の名前。

p_new_table_name

機能表の新しい名前(または現行値のままの場合はnull)。

p_new_column_name

型mdsys.sdo_geometryの列の新しい名前(または現行値のままの場合はnull)。

p_diminfo

ディメンションごとにエントリが1つあり、ディメンション順のSDO_DIM_ELEMENT配列。

p_srid

列の全ジオメトリに対する座標系のSRID値。

例

次に示すコードは、列CITIES.SHAPE.のディメンションを変更します。

begin
for l_meta in ( select *
from user_sdo_geom_metadata
where table_name  = 'CITIES'
and column_name = 'SHAPE' )
loop
apex_spatial.change_geom_metadata (
p_table_name  => l_meta.table_name,
p_column_name => l_meta.column_name,
p_diminfo     => SDO_DIM_ARRAY (
SDO_DIM_ELEMENT('X', -180, 180, 0.1),
SDO_DIM_ELEMENT('Y',  -90,  90, 0.1) ),
p_srid        => l_meta.srid );
end loop;
end;

CIRCLE_POLYGONファンクション

このファンクションは、(p_lon, p_lat)で半径p_radiusの円を近似するポリゴンを作成します。詳細は、mdsys.sdo_util.circle_polygonを参照してください。

構文

APEX_SPATIAL.CIRCLE_POLYGON (
p_lon        IN NUMBER,
p_lat        IN NUMBER,
p_radius     IN NUMBER,
p_arc_tolerance  IN NUMBER DEFAULT 20,
p_srid        IN t_srid DEFAULT c_wgs_84 )
RETURN mdsys.sdo_geometry;

パラメータ

表24-2 CIRCLE_POLYGONのパラメータ

パラメータ

説明

p_lon

左下点の経度の位置。

p_lat

左下点の緯度の位置。

p_radius

円の半径(m)。

p_arc_tolerance

円弧の許容差(デフォルトは20)。

p_srid

参照座標系(デフォルトはc_wgs_84)。

戻り値

表24-3 CIRCLE_POLYGONファンクションの戻り値

戻り値

説明

mdsys.sdo_geometry

円を近似するポリゴンのジオメトリ。

例

この例は、(0, 0)で半径1の円を近似するポリゴンを戻す問合せです。

select apex_spatial.circle_polygon(0, 0, 1) from dual

DELETE_GEOM_METADATAプロシージャ

このプロシージャは、空間メタデータ・レコードを削除します。

構文

APEX_SPATIAL.DELETE_GEOM_METADATA (
p_table_name        IN VARCHAR2,
p_column_name       IN VARCHAR2,
p_drop_index        IN BOOLEAN DEFAULT FALSE );

パラメータ

表24-4 DELETE_GEOM_METADATAのパラメータ

パラメータ

説明

p_table_name

機能表の名前。

p_column_name

型mdsys.sdo_geometryの列の名前。

p_drop_index

TRUE (デフォルトはFALSE)の場合、列の空間索引を削除します。

例

この例では、列CITIES.SHAPEのメタデータを削除し、この列の空間索引を削除します。

begin
apex_spatial.delete_geom_metadata (
p_table_name  => 'CITIES',
p_column_name => 'SHAPE',
p_drop_index  => true );
end;

INSERT_GEOM_METADATAプロシージャ

このプロシージャは、空間メタデータ・レコードを挿入し、オプションで空間索引を作成します。

構文

APEX_SPATIAL.INSERT_GEOM_METADATA (
p_table_name        IN VARCHAR2,
p_column_name       IN VARCHAR2,
p_diminfo           in mdsys.sdo_dim_array,
p_srid              in t_srid,
p_create_index_name IN VARCHAR2 DEFAULT NULL );

パラメータ

表24-5 INSERT_GEOM_METADATA_LONLATのパラメータ

パラメータ

説明

p_table_name

機能表の名前。

p_column_name

型mdsys.sdo_geometryの列の名前。

p_diminfo

ディメンションごとにエントリが1つあり、ディメンション順のSDO_DIM_ELEMENT配列。

p_srid

列の全ジオメトリに対する座標系のSRID値。

p_create_index_name

nullでない場合、この名前で列の空間索引が作成されます。単純な列名のみがサポートされています。ファンクションベースの索引またはオブジェクト属性の索引はエラーとなります。より複雑な要件の場合は、このパラメータをnull (デフォルト)のままにし、手動で索引を作成します。

例

この例では、表CITIESと、列CITIES.SHAPEの空間メタデータおよび索引を作成します。

create table cities (
city_id   number primary key,
city_name varchar2(30),
shape     mdsys.sdo_geometry )
/
begin
apex_spatial.insert_geom_metadata (
p_table_name   => 'CITIES',
p_column_name  => 'SHAPE',
p_diminfo     => SDO_DIM_ARRAY (
SDO_DIM_ELEMENT('X', -180, 180, 1),
SDO_DIM_ELEMENT('Y',  -90,  90, 1) ),
p_srid        => apex_spatial.c_wgs_84 );
end;
/
create index cities_idx_shape on cities(shape) indextype is mdsys.spatial_index
/

INSERT_GEOM_METADATA_LONLATプロシージャ

このプロシージャは、経度/緯度に合った空間メタデータ・レコードを挿入し、オプションで空間索引を作成します。

構文

APEX_SPATIAL.INSERT_GEOM_METADATA_LONLAT (
p_table_name        IN VARCHAR2,
p_column_name       IN VARCHAR2,
p_tolerance         IN NUMBER DEFAULT 1,
p_create_index_name IN VARCHAR2 DEFAULT NULL );

パラメータ

表24-6 INSERT_GEOM_METADATA_LONLATのパラメータ

パラメータ

説明

p_table_name

機能表の名前。

p_column_name

型mdsys.sdo_geometryの列の名前。

p_tolerance

各ディメンションの許容差値(m) (デフォルトは1)。

p_create_index_name

nullでない場合、この名前で列の空間索引が作成されます。単純な列名のみがサポートされています。ファンクションベースの索引またはオブジェクト属性の索引はエラーとなります。より複雑な要件の場合は、このパラメータをnull (デフォルト)のままにし、手動で索引を作成します。

例

次に示すコードは、表CITIESおよび列CITIES.SHAPEの空間メタデータを作成します。CITIES_IDX_SHAPEをp_create_index_nameに渡すと、APIコールによって自動的に空間列の索引が作成されます。

create table cities (
city_id   number primary key,
city_name varchar2(30),
shape     mdsys.sdo_geometry )
/
begin
apex_spatial.insert_geom_metadata_lonlat (
p_table_name        => 'CITIES',
p_column_name       => 'SHAPE',
p_create_index_name => 'CITIES_IDX_SHAPE' );
end;
/

POINTファンクション

このファンクションは、(p_lon, p_lat)で点を作成します。

構文

APEX_SPATIAL.POINT (
p_lon        IN NUMBER,
p_lat        IN NUMBER,
p_srid       IN t_srid DEFAULT c_wgs_84 )
RETURN mdsys.sdo_geometry;

パラメータ

表24-7 POINTのパラメータ

パラメータ

説明

p_lon

経度の位置。

p_lat

緯度の位置。

p_srid

参照座標系(デフォルトはc_wgs_84)。

戻り値

表24-8 POINTファンクションの戻り値

戻り値

説明

mdsys.sdo_geometry

点のジオメトリ。

例

この例は、(10, 50)の点を戻す問合せです。

select apex_spatial.point(10, 50) from dual;

この例は、次の例と同じです。

select mdsys.sdo_geometry(2001, 4326, sdo_point_type(10, 50, null), null, null) from dual;

RECTANGLEファンクション

このファンクションは、(p_lon1, p_lat1)の点から(p_lon2, p_lat2)までの四角形を作成します。

構文

APEX_SPATIAL.RECTANGLE (
p_lon1        IN NUMBER,
p_lat1        IN NUMBER,
p_lon2        IN NUMBER,
p_lat2        IN NUMBER,
p_srid        IN t_srid DEFAULT c_wgs_84 )
RETURN mdsys.sdo_geometry;

パラメータ

表24-9 RECTANGLEのパラメータ

パラメータ

説明

p_lon1

左下点の経度の位置。

p_lat1

左下点の緯度の位置。

p_lon2

右上点の経度の位置。

p_lat2

右上点の緯度の位置。

p_srid

参照座標系(デフォルトはc_wgs_84)。

戻り値

表24-10 RECTANGLEファンクションの戻り値

戻り値

説明

mdsys.sdo_geometry

四角形(p_lon1, p_lon2, p_lon2, p_lat2)のジオメトリ。

例

この例は、(10, 50)から(11, 51)までの四角形を戻す問合せです。

select apex_spatial.rectangle(10, 50, 11, 51) from dual

この例は、次の例と同じです。

select mdsys.sdo_geometry(
2003, 4326, null,
sdo_elem_info_array(1, 1003, 1),
sdo_ordinate_array(10, 50, 11, 50, 11, 51, 10, 51, 10, 50))
from dual;

25 APEX_UI_DEFAULT_UPDATE

APEX_UI_DEFAULT_UPDATEパッケージは、SQL DeveloperまたはSQL*Plusからユーザー・インタフェースのデフォルト値にアクセスするためのプロシージャを提供します。

このパッケージを使用すると、ユーザー・インタフェースのデフォルト値を設定して、スキーマ内の表に関連付けることができます。このパッケージは、更新する表を所有しているスキーマ内からコールする必要があります。

ユーザー・インタフェースのデフォルト値を使用して、指定したスキーマ内の表、列またはビューにデフォルトのユーザー・インタフェースのプロパティを割り当てることができます。ウィザードを使用してフォームまたはレポートを作成する場合、ウィザードはこの情報を使用してリージョン・プロパティおよびアイテム・プロパティのデフォルト値を作成します。ユーザー・インタフェースのデフォルト値を使用すると、貴重な開発時間を節約でき、さらにアプリケーション内の複数のページで一貫性を保つことができるという利点もあります。

- ADD_AD_COLUMNプロシージャ

- ADD_AD_SYNONYMプロシージャ

- DEL_AD_COLUMNプロシージャ

- DEL_AD_SYNONYMプロシージャ

- DEL_COLUMNプロシージャ

- DEL_GROUPプロシージャ

- DEL_TABLEプロシージャ

- SYNCH_TABLEプロシージャ

- UPD_AD_COLUMNプロシージャ

- UPD_AD_SYNONYMプロシージャ

- UPD_COLUMNプロシージャ

- UPD_DISPLAY_IN_FORMプロシージャ

- UPD_DISPLAY_IN_REPORTプロシージャ

- UPD_FORM_REGION_TITLEプロシージャ

- UPD_GROUPプロシージャ

- UPD_ITEM_DISPLAY_HEIGHTプロシージャ

- UPD_ITEM_DISPLAY_WIDTHプロシージャ

- UPD_ITEM_FORMAT_MASKプロシージャ

- UPD_ITEM_HELPプロシージャ

- UPD_LABELプロシージャ

- UPD_REPORT_ALIGNMENTプロシージャ

- UPD_REPORT_FORMAT_MASKプロシージャ

- UPD_REPORT_REGION_TITLEプロシージャ

- UPD_TABLEプロシージャ

参照:
『Oracle Application Express SQLワークショップ・ガイド』の「ユーザー・インタフェースのデフォルト値の管理」

ADD_AD_COLUMNプロシージャ

指定された定義で、ユーザー・インタフェースのデフォルト値の属性ディクショナリのエントリを追加します。作成時には、最大3つのシノニムを指定できます。作成後に、apex_ui_default_update.add_ad_synonymを使用して追加のシノニムを追加できます。シノニムはそのベース列の列定義を共有します。

構文

APEX_UI_DEFAULT_UPDATE.ADD_AD_COLUMN (
p_column_name           IN  VARCHAR2,
p_label                 IN  VARCHAR2  DEFAULT NULL,
p_help_text             IN  VARCHAR2  DEFAULT NULL,
p_format_mask           IN  VARCHAR2  DEFAULT NULL,
p_default_value         IN  VARCHAR2  DEFAULT NULL,
p_form_format_mask      IN  VARCHAR2  DEFAULT NULL,
p_form_display_width    IN  VARCHAR2  DEFAULT NULL,
p_form_display_height   IN  VARCHAR2  DEFAULT NULL,
p_form_data_type        IN  VARCHAR2  DEFAULT NULL,
p_report_format_mask    IN  VARCHAR2  DEFAULT NULL,
p_report_col_alignment  IN  VARCHAR2  DEFAULT NULL,
p_syn_name1             IN  VARCHAR2  DEFAULT NULL,
p_syn_name2             IN  VARCHAR2  DEFAULT NULL,
p_syn_name3             IN  VARCHAR2  DEFAULT NULL);

パラメータ

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

表25-1 ADD_AD_COLUMNのパラメータ

パラメータ

説明

p_column_name

作成する列の名前。

p_label

アイテム・ラベルおよびレポートの列ヘッダーに使用されます。

p_help_text

アイテムおよび対話モード・レポート列のヘルプ・テキストに使用されます。

p_format_mask

アイテムおよびレポート列の書式マスクとして使用されます。フォーム固有の書式マスクのレポートで上書きできます。

p_default_value

アイテムのデフォルト値として使用されます。

p_form_format_mask

指定した場合、アイテムの書式マスクとして使用されます。一般的な書式マスクの値をオーバーライドします。

p_form_display_width

この属性定義を使用するすべてのアイテムの幅として使用されます。

p_form_display_height

この属性定義を使用するすべてのアイテムの高さとして使用されます(テキスト領域、シャトルなどのアイテム・タイプでのみ使用されます)。

p_form_data_type

アイテムのデータ型として使用されます(自動検証になります)。有効な値は、VARCHAR、NUMBERおよびDATEです。

p_report_format_mask

指定した場合、レポート列の書式マスクとして使用されます。一般的な書式マスクの値をオーバーライドします。

p_report_col_alignment

レポート列のデータの位置合せに使用されます(たとえば数値は、一般に右揃えにします)。有効な値は、LEFT、CENTERおよびRIGHTです。

p_syn_name1

この列とともに作成するシノニムの名前。4つ目以上は、APEX_UI_DEFAULT_UPDATE.ADD_AD_SYNONYMを使用します。

p_syn_name2

この列とともに作成する2つ目のシノニムの名前。4つ目以上は、APEX_UI_DEFAULT_UPDATE.ADD_AD_SYNONYMを使用します。

p_syn_name3

この列とともに作成する3つ目のシノニムの名前。4つ目以上は、APEX_UI_DEFAULT_UPDATE.ADD_AD_SYNONYMを使用します。

例

次の例では、現在のスキーマに関連付けられているワークスペース内のUIのデフォルト値の属性ディクショナリに、新しい属性を作成します。また、その属性のシノニムも作成します。

BEGIN
apex_ui_default_update.add_ad_column (
p_column_name          => 'CREATED_BY',
p_label                => 'Created By',
p_help_text            => 'User that created the record.',
p_form_display_width   => 30,
p_form_data_type       => 'VARCHAR',
p_report_col_alignment => 'LEFT',
p_syn_name1            => 'CREATED_BY_USER' );
END;

ADD_AD_SYNONYMプロシージャ

列名がユーザー・インタフェースのデフォルト値の属性ディクショナリに見つかると、指定したシノニムが作成され、その列に関連付けられます。シノニムはそのベース列の列定義を共有します。

構文

APEX_UI_DEFAULT_UPDATE.ADD_AD_SYNONYM (
p_column_name           IN VARCHAR2,
p_syn_name              IN VARCHAR2);

パラメータ

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

表25-2 ADD_AD_SYNONYMのパラメータ

パラメータ

説明

p_column_name

属性ディクショナリを持つ、シノニムの作成先の列の名前。

p_syn_name

作成するシノニムの名前。

例

次の例では、現在のスキーマに関連付けられているワークスペース内のUIのデフォルト値の属性ディクショナリで、CREATED_BY属性にシノニムCREATED_BY_USERを追加します。

BEGIN
apex_ui_default_update.add_ad_synonym (
p_column_name => 'CREATED_BY',
p_syn_name    => 'CREATED_BY_USER' );
END;

DEL_AD_COLUMNプロシージャ

列名がユーザー・インタフェースのデフォルト値の属性ディクショナリで見つかると、その列は関連するすべてのシノニムとともに削除されます。

構文

APEX_UI_DEFAULT_UPDATE.DEL_AD_COLUMN (
p_column_name           IN VARCHAR2);

パラメータ

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

表25-3 DEL_AD_COLUMNのパラメータ

パラメータ

説明

p_column_name

削除する列の名前

例

次の例では、現在のスキーマに関連付けられているワークスペース内のUIのデフォルト値の属性ディクショナリから、属性CREATED_BYを削除します。

BEGIN
apex_ui_default_update.del_ad_column (
p_column_name => 'CREATED_BY' );
END;

DEL_AD_SYNONYMプロシージャ

シノニム名がユーザー・インタフェースのデフォルト値の属性ディクショナリで見つかると、そのシノニム名は削除されます。

構文

APEX_UI_DEFAULT_UPDATE.DEL_AD_SYNONYM (
p_syn_name           IN VARCHAR2);

パラメータ

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

表25-4 DEL_AD_SYNONYMのパラメータ

パラメータ

説明

p_syn_name

削除するシノニムの名前

例

次の例では、現在のスキーマに関連付けられているワークスペース内のUIのデフォルト値の属性ディクショナリから、シノニムCREATED_BY_USERを削除します。

BEGIN
apex_ui_default_update.del_ad_synonym (
p_syn_name    => 'CREATED_BY_USER' );
END;

DEL_COLUMNプロシージャ

指定した表および列が、ユーザー・インタフェースのデフォルト値に基づくユーザーのスキーマの表に存在する場合、そのUIのデフォルト値は削除されます。

構文

APEX_UI_DEFAULT_UPDATE.DEL_COLUMN (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2);

パラメータ

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

表25-5 DEL_COLUMNのパラメータ

パラメータ

説明

p_table_name

列のUIのデフォルト値を削除する表の名前。

p_column_name

UIのデフォルト値を削除する列の名前。

例

次の例では、現在のスキーマに含まれるUIのデフォルト値の表ディクショナリ内のEMP表定義から、列CREATED_BYを削除します。

BEGIN
apex_ui_default_update.del_column (
p_table_name  => 'EMP',
p_column_name => 'CREATED_BY' );
END;

DEL_GROUPプロシージャ

指定した表およびグループが、ユーザー・インタフェースのデフォルト値に基づくユーザーのスキーマの表内に存在する場合、そのグループのUIのデフォルト値は削除され、そのグループを参照する表の列のgroup_idはnullに設定されます。

構文

APEX_UI_DEFAULT_UPDATE.DEL_GROUP (
p_table_name            IN VARCHAR2,
p_group_name            IN VARCHAR2);

パラメータ

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

表25-6 DEL_GROUPのパラメータ

パラメータ

説明

p_table_name

グループのUIのデフォルト値を削除する表の名前

p_group_name

UIのデフォルト値を削除するグループの名前

例

次の例では、現在のスキーマに含まれるUIのデフォルト値の表ディクショナリのEMP表定義から、グループAUDIT_INFOを削除します。

BEGIN
apex_ui_default_update.del_group (
p_table_name => 'EMP',
p_group_name => 'AUDIT_INFO' );
END;

DEL_TABLEプロシージャ

指定した表が、ユーザー・インタフェースのデフォルト値に基づくユーザーのスキーマの表内に存在する場合、そのUIのデフォルト値は削除されます。これには、その表で定義されていたグループも、表に関連付けられた列もすべて削除されます。

構文

APEX_UI_DEFAULT_UPDATE.DEL_TABLE (
p_table_name            IN VARCHAR2);

パラメータ

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

表25-7 DEL_TABLEのパラメータ

パラメータ

説明

p_table_name

表名

例

次の例では、現在のスキーマに関連付けられているEMP表のUIのデフォルト値を削除します。

begin
apex_ui_default_update.del_table (
p_table_name => 'EMP' );
end;
/

SYNCH_TABLEプロシージャ

表に対して、表ベースのユーザー・インタフェースのデフォルト値がユーザーのスキーマにまだ存在しない場合は、デフォルトに設定されます。存在する場合は、同期化されます(つまり、表の列は、UIのデフォルト値の表定義の列に対して一致させられます)。一致させるために追加と削除が使用されます。

構文

APEX_UI_DEFAULT_UPDATE.SYNCH_TABLE (
p_table_name            IN VARCHAR2);

パラメータ

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

表25-8 SYNCH_TABLEのパラメータ

パラメータ

説明

p_table_name

表名

例

次の例では、現在のスキーマに関連付けられているEMP表のUIのデフォルト値を同期化します。

BEGIN
apex_ui_default_update.synch_table (
p_table_name => 'EMP' );
END;

UPD_AD_COLUMNプロシージャ

列名がユーザー・インタフェースのデフォルト値の属性ディクショナリで見つかると、その列エントリは、指定したパラメータを使用して更新されます。null%'が渡されると、関連付けられたパラメータの値はnullに設定されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_AD_COLUMN (
p_column_name           IN  VARCHAR2,
p_new_column_name       IN  VARCHAR2  DEFAULT NULL,
p_label                 IN  VARCHAR2  DEFAULT NULL,
p_help_text             IN  VARCHAR2  DEFAULT NULL,
p_format_mask           IN  VARCHAR2  DEFAULT NULL,
p_default_value         IN  VARCHAR2  DEFAULT NULL,
p_form_format_mask      IN  VARCHAR2  DEFAULT NULL,
p_form_display_width    IN  VARCHAR2  DEFAULT NULL,
p_form_display_height   IN  VARCHAR2  DEFAULT NULL,
p_form_data_type        IN  VARCHAR2  DEFAULT NULL,
p_report_format_mask    IN  VARCHAR2  DEFAULT NULL,
p_report_col_alignment  IN  VARCHAR2  DEFAULT NULL);

パラメータ

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

表25-9 UPD_AD_COLUMNのパラメータ

パラメータ

説明

p_column_name

更新する列の名前

p_new_column_name

列の名前を変更する場合、列の新しい名前

p_label

アイテム・ラベルおよびレポートの列ヘッダーに使用されます。

p_help_text

アイテムおよび対話モード・レポート列のヘルプ・テキストに使用されます。

p_format_mask

アイテムおよびレポート列の書式マスクとして使用されます。フォーム固有の書式マスクのレポートで上書きできます。

p_default_value

アイテムのデフォルト値として使用されます。

p_form_format_mask

指定した場合、アイテムの書式マスクとして使用されます。一般的な書式マスクの値をオーバーライドします。

p_form_display_width

この属性定義を使用するすべてのアイテムの幅として使用されます。

p_form_display_height

この属性定義を使用するすべてのアイテムの高さとして使用されます(テキスト領域、シャトルなどのアイテム・タイプでのみ使用されます)。

p_form_data_type

アイテムのデータ型として使用されます(自動検証になります)。有効な値は、VARCHAR、NUMBERおよびDATEです。

p_report_format_mask

指定した場合、レポート列の書式マスクとして使用されます。一般的な書式マスクの値をオーバーライドします。

p_report_col_alignment

レポート列のデータの位置合せに使用されます(たとえば数値は、一般に右揃えにします)。有効な値は、LEFT、CENTERおよびRIGHTです。

注意:
p_labelからp_report_col_alignmentに'null%'を設定すると、値は無効になります。値が渡されない場合、その列は更新されません。

例

次の例では、form_format_maskにnullを設定して、現在のスキーマに関連付けられているワークスペース内で、UIのデフォルト値の属性ディクショナリのCREATED_BY列を更新します。

BEGIN
apex_ui_default_update.upd_ad_column (
p_column_name      => 'CREATED_BY',
p_form_format_mask => 'null%');
END;

UPD_AD_SYNONYMプロシージャ

シノニム名がユーザー・インタフェースのデフォルト値の属性ディクショナリで見つかると、そのシノニム名は更新されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_AD_SYNONYM (
p_syn_name           IN VARCHAR2,
p_new_syn_name       IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-10 UPD_AD_SYNONYMのパラメータ

パラメータ

説明

p_syn_name

更新するシノニムの名前

p_new_syn_name

シノニムの新しい名前

例

次の例では、現在のスキーマに関連付けられているワークスペース内で、UIのデフォルト値の属性ディクショナリのCREATED_BY_USERシノニムを更新します。

BEGIN
apex_ui_default_update.upd_ad_synonym (
p_syn_name     => 'CREATED_BY_USER',
p_new_syn_name => 'USER_CREATED_BY');
END;

UPD_COLUMNプロシージャ

指定した表および列が、ユーザー・インタフェースのデフォルト値に基づくユーザーのスキーマの表内に存在する場合、指定したパラメータが更新されます。'null%'が渡されると、関連付けられたパラメータの値はnullに設定されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_COLUMN (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_group_id              IN VARCHAR2  DEFAULT NULL,
p_label                 IN VARCHAR2  DEFAULT NULL,
p_help_text             IN VARCHAR2  DEFAULT NULL,
p_display_in_form       IN VARCHAR2  DEFAULT NULL,
p_display_seq_form      IN VARCHAR2  DEFAULT NULL,
p_mask_form             IN VARCHAR2  DEFAULT NULL,
p_default_value         IN VARCHAR2  DEFAULT NULL,
p_required              IN VARCHAR2  DEFAULT NULL,
p_display_width         IN VARCHAR2  DEFAULT NULL,
p_max_width             IN VARCHAR2  DEFAULT NULL,
p_height                IN VARCHAR2  DEFAULT NULL,
p_display_in_report     IN VARCHAR2  DEFAULT NULL,
p_display_seq_report    IN VARCHAR2  DEFAULT NULL,
p_mask_report           IN VARCHAR2  DEFAULT NULL,
p_alignment             IN VARCHAR2  DEFAULT NULL);

パラメータ

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

表25-11 UPD_COLUMNのパラメータ

パラメータ

説明

p_table_name

列のUIのデフォルト値を更新する表の名前

p_column_name

UIのデフォルト値を更新する列の名前

p_group_id

列に関連付けられているグループのID

p_label

この表またはビューに対してフォームを作成する場合に、この列が含まれていると、これがアイテムのラベルとして使用されます。レポートまたは表形式フォームを作成する場合に、この列が含まれていると、これが列ヘッダーとして使用されます。

p_help_text

この表またはビューに対してフォームを作成する場合、これは作成されるアイテムのヘルプ・テキストになります。

p_display_in_form

この表またはビューに対してフォームを作成する場合、これによって、作成されるフォーム・ページにこの列が表示されるかどうかが決定されます。有効な値は、YおよびNです。

p_display_seq_form

この表またはビューに対してフォームを作成する場合、これによって、作成されるフォーム・ページに表示される列の順序が決定されます。

p_mask_form

この表またはビューに対してフォームを作成する場合、これによって、アイテムに適用されるマスク(999-99-9999など)が指定されます。これは、キャラクタ・ベースのアイテムには使用されません。

p_default_value

この表またはビューに対してフォームを作成する場合、これによって、この列から作成されるアイテムのデフォルト値が指定されます。

p_required

この表またはビューに対してフォームを作成する場合、これによって、アイテムが必ずNOT NULLになるような検証を生成することが指定されます。有効な値は、YおよびNです。

p_display_width

この表またはビューに対してフォームを作成する場合、これによって、この列から作成されるアイテムの表示幅が指定されます。

p_max_width

この表またはビューに対してフォームを作成する場合、これによって、この列から作成されるアイテムにユーザーが入力できる文字列の最大長が指定されます。

p_height

この表またはビューに対してフォームを作成する場合、これによって、この列から作成されるアイテムの表示の高さが指定されます。

p_display_in_report

この表またはビューに対してレポートを作成する場合、これによって、作成されるレポートにこの列が表示されるかどうかが決定されます。有効な値は、YおよびNです。

p_display_seq_report

この表またはビューに対してレポートを作成する場合、これによって、作成されるレポートに表示される列の順序が決定されます。

p_mask_report

この表またはビューに対してレポートを作成する場合、これによって、データに対して適用されるマスク(999-99-9999など)が指定されます。これは、キャラクタ・ベースのアイテムには使用されません。

p_alignment

この表またはビューに対してレポートを作成する場合、これによって、作成されるレポート列の位置合せが決定されます。有効な値は、L(左)、C(中央)およびR(右)です。

注意:
p_group_idからp_alignmentに'null%'を設定すると、値は無効になります。値が渡されない場合、その列は更新されません。

例

次の例では、現在のスキーマに含まれるUIのデフォルト値の表ディクショナリ内のEMP表定義で、列DEPT_NOを更新します。また、group_idをnullに設定します。

BEGIN
apex_ui_default_update.upd_column (
p_table_name    => 'EMP',
p_column_name   => 'DEPT_NO',
p_group_id      => 'null%' );
END;

UPD_DISPLAY_IN_FORMプロシージャ

UPD_DISPLAY_IN_FORMプロシージャは、ユーザー・インタフェースのフォーム内の表示に関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてフォームを作成する場合に、ウィザードで使用されます。また、指定の列をデフォルトで含めるかどうかを制御します。

構文

APEX_UI_DEFAULT_UPDATE.UPD_DISPLAY_IN_FORM (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_display_in_form       IN VARCHAR2);

パラメータ

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

表25-12 UPD_DISPLAY_IN_FORMのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_display_in_form

フォーム内にデフォルトで表示するかどうかを指定します(有効な値はYおよびNです)。

例

次の例では、DEPT表に対してフォームを作成する際に、DEPTNO列に対する表示オプションがデフォルトで「No」になるように設定します。

APEX_UI_DEFAULT_UPDATE.UPD_DISPLAY_IN_FORM(
p_table_name => 'DEPT',
p_column_name => 'DEPTNO',
p_display_in_form => 'N');

UPD_DISPLAY_IN_REPORTプロシージャ

UPD_DISPLAY_IN_REPORTプロシージャは、ユーザー・インタフェースのレポート内の表示に関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてレポートを作成する場合に、ウィザードで使用されます。また、指定の列をデフォルトで含めるかどうかを制御します。

構文

APEX_UI_DEFAULT_UPDATE.UPD_DISPLAY_IN_REPORT (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_display_in_report     IN VARCHAR2);

パラメータ

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

表25-13 UPD_DISPLAY_IN_REPORTのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_display_in_report

レポート内にデフォルトで表示するかどうかを指定します(有効な値はYおよびNです)。

例

次の例では、DEPT表に対してレポートを作成する際に、DEPTNO列に対する表示オプションがデフォルトで「No」になるように設定します。

APEX_UI_DEFAULT_UPDATE.UPD_DISPLAY_IN_REPORT(
p_table_name => 'DEPT',
p_column_name => 'DEPTNO',
p_display_in_report => 'N');

UPD_FORM_REGION_TITLEプロシージャ

UPD_FORM_REGION_TITLEプロシージャは、フォーム・リージョン・タイトルのユーザー・インタフェースのデフォルト値を更新します。ユーザー・インタフェースのデフォルト値は、指定の表に基づいてフォームを作成するときに、ウィザードで使用されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_FORM_REGION_TITLE (
p_table_name            IN VARCHAR2,
p_form_region_title     IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-14 UPDATE_FORM_REGION_TITLEのパラメータ

パラメータ

説明

p_table_name

表名

p_form_region_title

希望するフォーム・リージョン・タイトル

例

次の例に、DEPT表にフォーム・リージョン・タイトルのユーザー・インタフェースのデフォルト値を設定する方法を示します。

APEX_UI_DEFAULT_UPDATE.UPD_FORM_REGION_TITLE (
p_table_name         => 'DEPT',
p_form_region_title  => 'Deptartment Details');

UPD_GROUPプロシージャ

指定した表およびグループが、ユーザー・インタフェースのデフォルト値に基づくユーザーのスキーマの表内に存在する場合、グループ名、説明およびグループの表示順序が更新されます。'null%'がp_descriptionまたはp_display_sequenceに渡されると、値はnullに設定されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_GROUP (
p_table_name            IN VARCHAR2,
p_group_name            IN VARCHAR2,
p_new_group_name        IN VARCHAR2 DEFAULT NULL,
p_description           IN VARCHAR2 DEFAULT NULL,
p_display_sequence      IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-15 UPD_GROUPのパラメータ

パラメータ

説明

p_table_name

更新するグループを含む表の名前。

p_group_name

更新するグループ

p_new_group_name

グループの名前を変更する場合、グループの新しい名前

p_description

グループの説明

p_display_sequence

グループの表示順序

注意:
p_descriptionまたはp_display_sequenceに'null%'を設定すると、値は無効になります。値が渡されない場合、その列は更新されません。

例

次の例では、現在のスキーマに含まれるUIのデフォルト値の表ディクショナリのEMP表定義で、グループAUDIT_INFOの説明を更新します。

BEGIN
apex_ui_default_update.upd_group (
p_table_name  => 'EMP',
p_group_name  => 'AUDIT_INFO',
p_description => 'Audit columns' );
END;

UPD_ITEM_DISPLAY_HEIGHTプロシージャ

UPD_ITEM_DISPLAY_HEIGHTプロシージャは、ユーザー・インタフェースのアイテム表示の高さに関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてフォームを作成する場合に指定の列を含めるようにすると、ウィザードで使用されます。表示の高さでは、アイテムをテキスト・ボックスまたはテキスト領域にするかどうかを制御します。

構文

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_DISPLAY_HEIGHT (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_display_height        IN NUMBER);

パラメータ

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

表25-16 UPD_ITEM_DISPLAY_HEIGHTのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_display_height

この列に基づいて作成されるすべてのアイテムの表示の高さ

例

次の例では、DEPT表に対してDNAME列にアイテムを作成する際に、デフォルトのアイテムの高さを3に設定します。

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_DISPLAY_HEIGHT(
p_table_name => 'DEPT',
p_column_name => 'DNAME',
p_display_height => 3);

UPD_ITEM_DISPLAY_WIDTHプロシージャ

UPD_ITEM_DISPLAY_WIDTHプロシージャは、ユーザー・インタフェースのアイテム表示幅に関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてフォームを作成する場合に指定の列を含めるようにすると、ウィザードで使用されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_DISPLAY_WIDTH (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_display_width         IN NUMBER);

パラメータ

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

表25-17 UPD_ITEM_DISPLAY_WIDTHのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_display_width

この列に基づいて作成されるすべてのアイテムの表示幅

例

次の例では、DEPT表に対してDEPTNO列にアイテムを作成する際に、デフォルトのアイテムの幅を5に設定します。

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_DISPLAY_WIDTH(
p_table_name => 'DEPT',
p_column_name => 'DEPTNO',
p_display_width => 5);

UPD_ITEM_FORMAT_MASKプロシージャ

UPD_ITEM_FORMAT_MASKプロシージャは、ユーザー・インタフェースのアイテム書式マスクに関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてフォームを作成する場合に指定の列を含めるようにすると、ウィザードで使用されます。アイテムの書式マスクは、通常、数字と日付を書式化するために使用します。

構文

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_FORMAT_MASK (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_format_mask           IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-18 UPD_ITEM_FORMAT_MASKのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_format_mask

列に関連付ける書式マスク

例

次の例では、EMP表に対してフォームを作成する際に、HIREDATE列に対するデフォルトのアイテム書式マスクが'DD-MON-YYYY'に設定されています。

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_FORMAT_MASK(
p_table_name => 'EMP',
p_column_name => 'HIREDATE',
p_format_mask=> 'DD-MON-YYYY');

UPD_ITEM_HELPプロシージャ

UPD_ITEM_HELPプロシージャは、指定された表および列のヘルプ・テキストを更新します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてフォームを作成する場合に、指定の列を含むようにすると使用されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_HELP (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_help_text             IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-19 UPD_ITEM_HELPのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_help_text

希望するヘルプ・テキスト

例

次の例に、DEPT表のDEPTNO列にユーザー・インタフェースのアイテム・ヘルプ・テキストのデフォルト値を設定する方法を示します。

APEX_UI_DEFAULT_UPDATE.UPD_ITEM_HELP(
p_table_name => 'DEPT',
p_column_name => 'DEPTNO',
p_help_text => 'The number assigned to the department.');

UPD_LABELプロシージャ

UPD_LABELプロシージャは、アイテムに使用されるラベルを設定します。このユーザー・インタフェースのデフォルト値は、指定された表に基づいてフォームまたはレポートを作成し、特定の列を含めるときに使用されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_LABEL (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_label                 IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-20 UPD_LABELのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_label

希望するアイテム・ラベル

例

次の例に、DEPT表のDEPTNO列にユーザー・インタフェースのアイテム・ラベルのデフォルト値を設定する方法を示します。

APEX_UI_DEFAULT_UPDATE.UPD_LABEL(
p_table_name => 'DEPT',
p_column_name => 'DEPTNO',
p_label => 'Department Number');

UPD_REPORT_ALIGNMENTプロシージャ

UPD_REPORT_ALIGNMENTプロシージャは、ユーザー・インタフェースのレポート位置に関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値がウィザードで使用されるのは、指定の表に基づいてレポートを作成し、指定の列を含むようにしたときに、レポートの列の位置を左、中央または右に調節するかどうかを決定する場合です。

構文

APEX_UI_DEFAULT_UPDATE.UPD_REPORT_ALIGNMENT (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_report_alignment      IN VARCHAR2);

パラメータ

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

表25-21 UPD_REPORT_ALIGNMENTのパラメータ

パラメータ

説明

p_table_name

表名。

p_column_name

列名。

p_report_alignment

レポート内の列の位置を定義します。有効な値は、L (左)、C (中央)およびR (右)です。

例

次の例では、DEPT表に対してレポートを作成する際に、DEPTNO列に対するデフォルトの列の位置合せが右揃えに設定されています。

APEX_UI_DEFAULT_UPDATE.UPD_REPORT_ALIGNMENT(
p_table_name => 'DEPT',
p_column_name => 'DEPTNO',
p_report_alignment => 'R');

UPD_REPORT_FORMAT_MASKプロシージャ

UPD_REPORT_FORMAT_MASKプロシージャは、ユーザー・インタフェースのレポート書式マスクに関するデフォルト値を設定します。このユーザー・インタフェースのデフォルト値は、指定の表に基づいてレポートを作成する場合に指定の列を含めるようにすると、ウィザードで使用されます。レポートの書式マスクは、通常、数字と日付を書式化するために使用します。

構文

APEX_UI_DEFAULT_UPDATE.UPD_REPORT_FORMAT_MASK (
p_table_name            IN VARCHAR2,
p_column_name           IN VARCHAR2,
p_format_mask           IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-22 UPD_REPORT_FORMAT_MASKのパラメータ

パラメータ

説明

p_table_name

表名

p_column_name

列名

p_format_mask

レポートに指定の列が含まれる場合に、その列に常に関連付ける書式マスク

例

次の例では、EMP表に対してレポートを作成する際に、HIREDATE列に対するデフォルトの書式マスクが'DD-MON-YYYY'に設定されています。

APEX_UI_DEFAULT_UPDATE.UPD_REPORT_FORMAT_MASK(
p_table_name => 'EMP',
p_column_name => 'HIREDATE',
p_format_mask=> 'DD-MON-YYYY');

UPD_REPORT_REGION_TITLEプロシージャ

UPD_REPORT_REGION_TITLEプロシージャは、レポート・リージョン・タイトルを設定します。ユーザー・インタフェースのデフォルト値は、表に関するレポートを作成するときに、ウィザードで使用されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_REPORT_REGION_TITLE (
p_table_name            IN VARCHAR2,
p_report_region_title   IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-23 UPD_REPORT_REGION_TITLEのパラメータ

パラメータ

説明

p_table_name

表名

p_report_region_title

希望するレポート・リージョン・タイトル

例

次の例に、DEPT表にレポート・リージョン・タイトルのユーザー・インタフェースのデフォルト値を設定する方法を示します。

APEX_UI_DEFAULT_UPDATE.UPD_REPORT_REGION_TITLE (
p_table_name            => 'DEPT',
p_report_region_title   => 'Departments');

UPD_TABLEプロシージャ

指定した表が、ユーザー・インタフェースのデフォルト値に基づくユーザーのスキーマの表内に存在する場合、フォーム・リージョン・タイトルおよびレポート・リージョン・タイトルがこれらと一致するように更新されます。'null%'がp_form_region_titleまたはp_report_region_titleに渡されると、値はnullに設定されます。

構文

APEX_UI_DEFAULT_UPDATE.UPD_TABLE (
p_table_name            IN VARCHAR2,
p_form_region_title     IN VARCHAR2 DEFAULT NULL,
p_report_region_title   IN VARCHAR2 DEFAULT NULL);

パラメータ

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

表25-24 UPD_TABLEのパラメータ

パラメータ

説明

p_table_name

更新する表の名前。

p_form_region_title

フォームに使用されるリージョン・タイトル。

p_report_region_title

レポートおよび表形式フォームに使用されるリージョン・タイトル。

注意:
'null%'がp_form_region_titleまたはp_report_region_titleに渡されると、値はnullに設定されます。値が渡されない場合、その列は更新されません。

例

次の例では、現在のスキーマに含まれるUIのデフォルト値の表ディクショナリ内のEMP表定義を更新します。

begin
apex_ui_default_update.upd_table (
p_table_name          => 'EMP',
p_form_region_title   => 'Employee Details',
p_report_region_title => 'Employees' );
end;
/

26 APEX_UTIL

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

- CACHE_GET_DATE_OF_PAGE_CACHEファンクション

- CACHE_GET_DATE_OF_REGION_CACHEファンクション

- CACHE_PURGE_BY_APPLICATIONプロシージャ

- CACHE_PURGE_BY_PAGEプロシージャ

- CACHE_PURGE_STALEプロシージャ

- CHANGE_CURRENT_USER_PWプロシージャ

- CHANGE_PASSWORD_ON_FIRST_USEファンクション

- CLOSE_OPEN_DB_LINKSプロシージャ

- CLEAR_APP_CACHEプロシージャ

- CLEAR_PAGE_CACHEプロシージャ

- CLEAR_USER_CACHEプロシージャ

- COUNT_CLICKプロシージャ

- CREATE_USERプロシージャ

- CREATE_USER_GROUPプロシージャ

- CURRENT_USER_IN_GROUPファンクション

- CUSTOM_CALENDARプロシージャ

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

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

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

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

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

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

- EDIT_USERプロシージャ

- END_USER_ACCOUNT_DAYS_LEFTファンクション

- EXPIRE_END_USER_ACCOUNTプロシージャ

- EXPIRE_WORKSPACE_ACCOUNTプロシージャ

- EXPORT_USERSプロシージャ

- FETCH_APP_ITEMファンクション

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

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

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

- FIND_SECURITY_GROUP_IDファンクション

- FIND_WORKSPACEファンクション

- GET_ACCOUNT_LOCKED_STATUSファンクション

- GET_ATTRIBUTEファンクション

- GET_AUTHENTICATION_RESULTファンクション

- GET_BLOB_FILE_SRCファンクション

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

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

- GET_CURRENT_USER_IDファンクション

- GET_DEFAULT_SCHEMAファンクション

- GET_EDITIONファンクション

- GET_EMAILファンクション

- GET_FEEDBACK_FOLLOW_UPファンクション

- GET_FILEプロシージャ

- GET_FILE_IDファンクション

- GET_FIRST_NAMEファンクション

- GET_GROUPS_USER_BELONGS_TOファンクション

- GET_GROUP_IDファンクション

- GET_GROUP_NAMEファンクション

- GET_HASHファンクション

- GET_HIGH_CONTRAST_MODE_TOGGLEファンクション

- GET_LAST_NAMEファンクション

- GET_NUMERIC_SESSION_STATEファンクション

- GET_PREFERENCEファンクション

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

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

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

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

- GET_SCREEN_READER_MODE_TOGGLEファンクション

- GET_SESSION_LANGファンクション

- GET_SESSION_STATEファンクション

- GET_SESSION_TERRITORYファンクション

- GET_SESSION_TIME_ZONEファンクション

- GET_SINCEファンクション

- GET_USER_IDファンクション

- GET_USER_ROLESファンクション

- GET_USERNAMEファンクション

- HOST_URLファンクション

- HTML_PCT_GRAPH_MASKファンクション

- INCREMENT_CALENDARプロシージャ

- IR_CLEARプロシージャ[非推奨]

- IR_DELETE_REPORTプロシージャ[非推奨]

- IR_DELETE_SUBSCRIPTIONプロシージャ[非推奨]

- IR_FILTERプロシージャ[非推奨]

- IR_RESETプロシージャ[非推奨]

- IS_HIGH_CONTRAST_SESSIONファンクション

- IS_HIGH_CONTRAST_SESSION_YNファンクション

- IS_LOGIN_PASSWORD_VALIDファンクション

- IS_SCREEN_READER_SESSIONファンクション

- IS_SCREEN_READER_SESSION_YNファンクション

- IS_USERNAME_UNIQUEファンクション

- KEYVAL_NUMファンクション

- KEYVAL_VC2ファンクション

- LOCK_ACCOUNTプロシージャ

- PASSWORD_FIRST_USE_OCCURREDファンクション

- PREPARE_URLファンクション

- PUBLIC_CHECK_AUTHORIZATIONファンクション[非推奨]

- PURGE_REGIONS_BY_APPプロシージャ

- PURGE_REGIONS_BY_NAMEプロシージャ

- PURGE_REGIONS_BY_PAGEプロシージャ

- REDIRECT_URLプロシージャ

- REMOVE_PREFERENCEプロシージャ

- REMOVE_SORT_PREFERENCESプロシージャ

- REMOVE_USERプロシージャ

- RESET_AUTHORIZATIONSプロシージャ[非推奨]

- RESET_PASSWORDプロシージャ

- RESET_PWプロシージャ

- SAVEKEY_NUMファンクション

- SAVEKEY_VC2ファンクション

- SET_ATTRIBUTEプロシージャ

- SET_AUTHENTICATION_RESULTプロシージャ

- SET_BUILD_OPTION_STATUSプロシージャ

- SET_CURRENT_THEME_STYLEプロシージャ

- SET_CUSTOM_AUTH_STATUSプロシージャ

- SET_EDITIONプロシージャ

- SET_EMAILプロシージャ

- SET_FIRST_NAMEプロシージャ

- SET_GROUP_GROUP_GRANTSプロシージャ

- SET_GROUP_USER_GRANTSプロシージャ

- SET_LAST_NAMEプロシージャ

- SET_PREFERENCEプロシージャ

- SET_SECURITY_GROUP_IDプロシージャ

- SET_SESSION_HIGH_CONTRAST_OFFプロシージャ

- SET_SESSION_HIGH_CONTRAST_ONプロシージャ

- SET_SESSION_LANGプロシージャ

- SET_SESSION_LIFETIME_SECONDSプロシージャ

- SET_SESSION_MAX_IDLE_SECONDSプロシージャ

- SET_SESSION_SCREEN_READER_OFFプロシージャ

- SET_SESSION_SCREEN_READER_ONプロシージャ

- SET_SESSION_STATEプロシージャ

- SET_SESSION_TERRITORYプロシージャ

- SET_SESSION_TIME_ZONEプロシージャ

- SET_USERNAMEプロシージャ

- SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャ

- SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ

- STRING_TO_TABLEファンクション

- STRONG_PASSWORD_CHECKプロシージャ

- STRONG_PASSWORD_VALIDATIONファンクション

- SUBMIT_FEEDBACKプロシージャ

- SUBMIT_FEEDBACK_FOLLOWUPプロシージャ

- TABLE_TO_STRINGファンクション

- UNEXPIRE_END_USER_ACCOUNTプロシージャ

- UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ

- UNLOCK_ACCOUNTプロシージャ

- URL_ENCODEファンクション

- WORKSPACE_ACCOUNT_DAYS_LEFTファンクション

CACHE_GET_DATE_OF_PAGE_CACHEファンクション

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

構文

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

パラメータ

表26-1 CACHE_GET_DATE_OF_PAGE_CACHEのパラメータ

パラメータ

説明

p_application

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

p_page

ページ番号(ID)

例

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

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

CACHE_GET_DATE_OF_REGION_CACHEファンクション

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

構文

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

パラメータ

表26-2 CACHE_GET_DATE_OF_REGION_CACHEのパラメータ

パラメータ

説明

p_application

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

p_page

ページ番号(ID)

p_region_name

リージョン名

例

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

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

CACHE_PURGE_BY_APPLICATIONプロシージャ

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

構文

APEX_UTIL.CACHE_PURGE_BY_APPLICATION (
p_application  IN NUMBER);

パラメータ

表26-3 CACHE_PURGE_BY_APPLICATIONのパラメータ

パラメータ

説明

p_application

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

例

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

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

CACHE_PURGE_BY_PAGEプロシージャ

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

構文

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

パラメータ

表26-4 CACHE_PURGE_BY_PAGEのパラメータ

パラメータ

説明

p_application

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

p_page

ページ番号(ID)

p_user_name

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

例

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

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

CACHE_PURGE_STALEプロシージャ

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

構文

APEX_UTIL.CACHE_PURGE_STALE (
p_application  IN NUMBER);

パラメータ

表26-5 CACHE_PURGE_STALEのパラメータ

パラメータ

説明

p_application

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

例

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

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

CHANGE_CURRENT_USER_PWプロシージャ

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

構文

APEX_UTIL.CHANGE_CURRENT_USER_PW(
p_new_password IN VARCHAR2);

パラメータ

表26-6 CHANGE_CURRENT_USER_PWのパラメータ

パラメータ

説明

p_new_password

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

例

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

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

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

CHANGE_PASSWORD_ON_FIRST_USEファンクション

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

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

構文

APEX_UTIL.CHANGE_PASSWORD_ON_FIRST_USE (
p_user_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表26-7 CHANGE_PASSWORD_ON_FIRST_USEのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

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

CLOSE_OPEN_DB_LINKSプロシージャ

このプロシージャは、現行データベース・セッションのオープンしているデータベース・リンクを閉じます。このプロシージャがアプリケーションのプログラムでコールされることはほとんどありません。このプロシージャの主な目的は、Application Expressエンジンへのリクエストが実行される前か、Application Expressエンジンへのリクエストが完了した後かつデータベース・セッションがプールに返される前のいずれかに、セッションでオープンしているデータベース・リンクをすべて閉じるように、Oracle Application Express環境でミドルウェア・テクノロジ(Oracle REST Data Service、mod_plsqlなど)を構成することです。

構文

APEX_UTIL.CLOSE_OPEN_DB_LINKS

パラメータ

なし。

例

この例では、Oracle REST Data Servicesの構成により、Application Expressエンジンへのリクエストが実行される前とリクエストの完了後の両方に、オープンしているデータベース・リンクを閉じます。

<entry key="procedure.postProcess">apex_util.close_open_db_links</entry>
<entry key="procedure.preProcess">apex_util.close_open_db_links</entry>

Oracle HTTP Serverおよびmod_plsqlを使用している場合、この構成は次のようになります。

PlsqlBeforeProcedure        apex_util.close_open_db_links
PlsqlAfterProcedure         apex_util.close_open_db_links

CLEAR_APP_CACHEプロシージャ

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

構文

APEX_UTIL.CLEAR_APP_CACHE (
p_app_id    IN VARCHAR2 DEFAULT NULL);

パラメータ

表26-8 CLEAR_APP_CACHEのパラメータ

パラメータ

説明

p_app_id

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

例

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

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

CLEAR_PAGE_CACHEプロシージャ

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

構文

APEX_UTIL.CLEAR_PAGE_CACHE (
p_page_id IN NUMBER DEFAULT NULL);

パラメータ

表26-9 CLEAR_PAGE_CACHEのパラメータ

パラメータ

説明

p_page_id

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

例

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

BEGIN
APEX_UTIL.CLEAR_PAGE_CACHE(10);
END;

CLEAR_USER_CACHEプロシージャ

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

構文

APEX_UTIL.CLEAR_USER_CACHE;

パラメータ

なし。

例

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

BEGIN
APEX_UTIL.CLEAR_USER_CACHE;
END;

COUNT_CLICKプロシージャ

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

構文

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

パラメータ

表26-10 COUNT_CLICKのパラメータ

パラメータ

説明

p_url

リダイレクト先のURL

p_cat

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

p_id

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

p_user

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

p_workspace

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

例

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

DECLARE
l_url VARCHAR2(255);
l_cat VARCHAR2(30);
l_workspace_id VARCHAR2(30);
BEGIN
l_url := 'http://yahoo.com';
l_cat := 'yahoo';
l_workspace_id := TO_CHAR(APEX_UTIL.FIND_SECURITY_GROUP_ID('MY_WORKSPACE'));

HTP.P('<a href=APEX_UTIL.COUNT_CLICK?p_url=' || l_url || '&p_cat=' || l_cat || '&p_workspace=' || l_workspace_id || '>Click</a>');
END;

参照:
このマニュアルの「FIND_SECURITY_GROUP_IDファンクション」および『Oracle Application Express管理ガイド』のクリック・カウント・ログ・エントリの削除に関する項、『Oracle Application Express管理ガイド』の認可済URLの管理に関する項

CREATE_USERプロシージャ

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

構文

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

パラメータ

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

パラメータ

説明

p_user_id

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

p_user_name

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

p_first_name

情報

p_last_name

情報

p_description

情報

p_email_address

電子メール・アドレス

p_web_password

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

p_web_password_format

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

p_group_ids

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

p_developer_privs

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

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

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

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

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

p_default_schema

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

p_allow_access_to_schemas

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

p_account_expiry

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

p_account_locked

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

p_failed_access_attempts

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

p_change_password_on_first_use

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

p_first_password_use_occurred

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

p_attribute_01

...

p_attribute_10

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

p_allow_app_building_yn

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

p_allow_sql_workshop_yn

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

p_allow_websheet_dev_yn

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

p_allow_team_development_yn

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

例1

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

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

例2

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

- ワークスペース管理者および開発者の完全な権限を持っている(p_developer_privsパラメータが'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL'に設定されている)。

- 参照デフォルトMY_SCHEMA(p_default_schemaパラメータが'MY_SCHEMA'に設定されている)およびMY_SCHEMA2(p_allow_access_to_schemasパラメータが'MY_SCHEMA2'に設定されている)の2つのスキーマへのアクセス権を持っている。

- 最初のログイン時にパスワードを変更する必要がない(p_change_password_on_first_useパラメータが'N'に設定されている)。

- 最初の追加属性に電話番号が格納されている(p_attribute_01パラメータが'123 456 7890'に設定されている)。

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

参照:
「FETCH_USERプロシージャのシグネチャ3」、「EDIT_USERプロシージャ」および「GET_GROUP_IDファンクション」

CREATE_USER_GROUPプロシージャ

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

構文

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

パラメータ

表26-12 CREATE_USER_GROUPのパラメータ

パラメータ

説明

p_id

グループの主キー

p_group_name

グループの名前

p_security_group_id

ワークスペースID

p_group_desc

説明テキスト

例

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

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

CURRENT_USER_IN_GROUPファンクション

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

構文

APEX_UTIL.CURRENT_USER_IN_GROUP(
p_group_name  IN VARCHAR2)
RETURN BOOLEAN;

APEX_UTIL.CURRENT_USER_IN_GROUP(
p_group_id    IN NUMBER)
RETURN BOOLEAN;

パラメータ

表26-13 CURRENT_USER_IN_GROUPのパラメータ

パラメータ

説明

p_group_name

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

p_group_id

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

例

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

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

CUSTOM_CALENDARプロシージャ

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

構文

APEX_UTIL.CUSTOM_CALENDAR(
p_date_type_field IN VARCHAR2);

パラメータ

表26-14 CUSTOM_CALENDARパラメータ

パラメータ

説明

p_date_type_field

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

例1

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

APEX_UTIL.CUSTOM_CALENDAR(
'P9_CALENDAR_TYPE');

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

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

構文

APEX_UTIL.DELETE_USER_GROUP(
p_group_id IN NUMBER);

パラメータ

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

パラメータ

説明

p_group_id

グループの主キー

例

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

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

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

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

構文

APEX_UTIL.DELETE_USER_GROUP(
p_group_name IN VARCHAR2);

パラメータ

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

パラメータ

説明

p_group_name

グループの名前

例

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

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

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

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

構文

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

パラメータ

表26-17 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_report_data

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

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

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

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

構文

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

パラメータ

表26-18 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_application_id

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

p_report_query_name

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

シグネチャ2の例

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

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

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

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

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

構文

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

パラメータ

表26-19 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_application_id

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

p_report_query_name

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

p_report_layout_name

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

シグネチャ3の例

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

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

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

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

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

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

構文

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

パラメータ

表26-20 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_report_data

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

シグネチャ4の例

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

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

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

EDIT_USERプロシージャ

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

構文

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

パラメータ

表26-21 EDIT_USERのパラメータ

パラメータ

説明

p_user_id

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

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_web_password

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

p_new_password

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

p_email_address

情報

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

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

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

p_person_type

未使用

p_default_schema

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

p_group_ids

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

p_developer_roles

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

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

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

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

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

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

p_description

情報

p_account_expiry

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

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

p_account_locked

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

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

p_failed_access_attempts

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

p_change_password_on_first_use

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

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

p_first_password_use_occurred

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

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

例

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

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

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

参照:
「FETCH_USERプロシージャのシグネチャ3」

END_USER_ACCOUNT_DAYS_LEFTファンクション

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

構文

APEX_UTIL.END_USER_ACCOUNT_DAYS_LEFT (
p_user_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

表26-22 END_USER_ACCOUNT_DAYS_LEFTのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

参照:
「EXPIRE_END_USER_ACCOUNTプロシージャ」および「UNEXPIRE_END_USER_ACCOUNTプロシージャ」

EXPIRE_END_USER_ACCOUNTプロシージャ

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

構文

APEX_UTIL.EXPIRE_END_USER_ACCOUNT (
p_user_name IN VARCHAR2
);

パラメータ

表26-23 EXPIRE_END_USER_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

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

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

EXPIRE_WORKSPACE_ACCOUNTプロシージャ

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

構文

APEX_UTIL.EXPIRE_WORKSPACE_ACCOUNT (
p_user_name IN VARCHAR2
);

パラメータ

表26-24 EXPIRE_WORKSPACE_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

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

EXPORT_USERSプロシージャ

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

構文

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

パラメータ

表26-25 EXPORT_USERSのパラメータ

パラメータ

説明

p_export_format

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

例

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

BEGIN
APEX_UTIL.EXPORT_USERS;
END;

FETCH_APP_ITEMファンクション

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

構文

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

パラメータ

表26-26 FETCH_APP_ITEMのパラメータ

パラメータ

説明

p_item

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

p_app

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

p_session

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

例

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

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

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

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

シグネチャ1の構文

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

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

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

パラメータ

説明

p_user_id

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

p_workspace

ワークスペースの名前

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_web_password

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

p_email_address

電子メール・アドレス。

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

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

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

p_person_type

未使用

p_default_schema

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

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

p_groups

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

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

p_developer_role

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

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

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

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

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

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

p_description

情報

シグネチャ1の例

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

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

参照:
「EDIT_USERプロシージャ」および「GET_CURRENT_USER_IDファンクション」

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

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

シグネチャ2の構文

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

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

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

パラメータ

説明

p_user_id

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

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_email_address

電子メール・アドレス。

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

p_groups

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

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

p_developer_role

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

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

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

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

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

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

p_description

情報

シグネチャ2の例

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

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

参照:
「EDIT_USERプロシージャ」および「GET_CURRENT_USER_IDファンクション」

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

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

シグネチャ3の構文

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

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

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

パラメータ

説明

p_user_id

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

p_workspace

ワークスペースの名前

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_web_password

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

p_email_address

電子メール・アドレス。

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

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

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

p_person_type

未使用

p_default_schema

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

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

p_groups

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

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

p_developer_role

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

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

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

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

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

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

p_description

情報

p_account_expiry

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

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

p_account_locked

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

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

p_failed_access_attempts

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

p_change_password_on_first_use

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

p_first_password_use_occurred

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

シグネチャ3の例

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

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

参照:
「EDIT_USERプロシージャ」および「GET_CURRENT_USER_IDファンクション」

FIND_SECURITY_GROUP_IDファンクション

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

構文

APEX_UTIL.FIND_SECURITY_GROUP_ID(
p_workspace    IN VARCHAR2)
RETURN NUMBER;

パラメータ

表26-30 FIND_SECURITY_GROUP_IDのパラメータ

パラメータ

説明

p_workspace

ワークスペースの名前

例

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

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

FIND_WORKSPACEファンクション

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

構文

APEX_UTIL.FIND_WORKSPACE(
p_security_group_id    IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-31 FIND_WORKSPACEのパラメータ

パラメータ

説明

p_security_group_id

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

例

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

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

GET_ACCOUNT_LOCKED_STATUSファンクション

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

構文

APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS (
p_user_name IN VARCHAR2
) RETURN BOOLEAN;

パラメータ

表26-32 GET_ACCOUNT_LOCKED_STATUSのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

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

GET_ATTRIBUTEファンクション

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

構文

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

パラメータ

表26-33 GET_ATTRIBUTEのパラメータ

パラメータ

説明

p_username

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

p_attribute_number

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

例

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

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

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

GET_AUTHENTICATION_RESULTファンクション

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

構文

APEX_UTIL.GET_AUTHENTICATION_RESULT
RETURN NUMBER;

パラメータ

なし。

例

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

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

参照:
「SET_AUTHENTICATION_RESULTプロシージャ」および「SET_CUSTOM_AUTH_STATUSプロシージャ」

GET_BLOB_FILE_SRCファンクション

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

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

構文

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

パラメータ

表26-34 GET_BLOB_FILE_SRCのパラメータ

パラメータ

説明

p_item_name

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

p_v1

主キー列1の値。

p_v2

主キー列2の値。

p_content_disposition

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

例

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

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

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

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

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

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

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

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

構文

APEX_UTIL.GET_BUILD_OPTION_STATUS(
p_application_id  IN NUMBER
p_id              IN NUMBER;

パラメータ

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

パラメータ

説明

p_application_id

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

p_id

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

例

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

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

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

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

構文

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

パラメータ

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

パラメータ

説明

p_application_id

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

p_build_option_name

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

例

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

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

GET_CURRENT_USER_IDファンクション

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

構文

APEX_UTIL.GET_CURRENT_USER_ID
RETURN NUMBER;

パラメータ

なし。

例

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

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

GET_DEFAULT_SCHEMAファンクション

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

構文

APEX_UTIL.GET_DEFAULT_SCHEMA
RETURN VARCHAR2;

パラメータ

なし。

例

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

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

GET_EDITIONファンクション

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

構文

APEX_UTIL.GET_EDITION
RETURN VARCHAR2;

パラメータ

なし。

例

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

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

GET_EMAILファンクション

このファンクションは、指定したユーザーに関連付けられた電子メール・アドレスを戻します。

構文

APEX_UTIL.GET_EMAIL(
p_username IN VARCHAR2);
RETURN VARCHAR2;

パラメータ

表26-37 GET_EMAILのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名

例

次の例に、GET_EMAILファンクションを使用して、ユーザーFRANKの電子メール・アドレスを戻す方法を示します。

DECLARE
VAL VARCHAR2(240);
BEGIN
VAL := APEX_UTIL.GET_EMAIL(p_username => 'FRANK');
END;

参照:
「SET_EMAILプロシージャ」

GET_FEEDBACK_FOLLOW_UPファンクション

このファンクションを使用して、特定のフィードバックに関連付けられている残りのフォロー・アップを取得します。

構文

APEX_UTIL.GET_FEEDBACK_FOLLOW_UP (
p_feedback_id    IN NUMBER,
p_row            IN NUMBER DEFAULT 1,
p_template       IN VARCHAR2 DEFAULT '<br />#CREATED_ON# (#CREATED_BY#) #FOLLOW_UP#')
RETURN VARCHAR2;

パラメータ

表26-38 GET_FEEDBACK_FOLLOW_UPパラメータ

パラメータ

説明

p_feedback_id

フィードバック・アイテムの一意の識別子。

p_row

取得するフォロー・アップで、created_on_descによって並べ替えるフォロー・アップを識別します。

p_template

フォロー・アップを戻すために使用するテンプレート。デフォルトのテンプレートに<br/>を指定すると、ループでファンクションを使用してすべてのフォロー・アップをフィードバックに戻すことができます。

例

次の例では、IDが123であるフィードバックの残りすべてのフォロー・アップを表示します。

declare
l_feedback_count  number;
begin
select count(*)
into l_feedback_count
from apex_team_feedback_followup
where feedback_id = 123;

for i in 1..l_feedback_count loop
htp.p(apex_util.get_feedback_follow_up (
p_feedback_id => 123,
p_row         => i,
p_template    => '<br />#FOLLOW_UP# was created on #CREATED_ON# by #CREATED_BY#') );
end loop;
end;
/

GET_FILEプロシージャ

このプロシージャは、Oracle Application Expressファイル・リポジトリからファイルをダウンロードします。ページ処理時にこのプロシージャを起動する場合は、ページ・ブランチが同じ条件で起動されていないことを確認する必要があることに注意してください(ページ・ブランチがファイルの取得に影響を及ぼすためです)。このため、次の条件のブランチは、起動されないように設定してください。

- プロシージャを起動するボタンと同じ「対象ボタン」属性を持つブランチ。

- プロシージャが起動されている場合に、ページ処理時に正常に実行される条件ロジックが定義されているブランチ。

- 無条件。

構文

APEX_UTIL.GET_FILE (
p_file_id    IN   VARCHAR2,
p_inline     IN   VARCHAR2 DEFAULT 'NO');

パラメータ

表26-39 GET_FILEのパラメータ

パラメータ

説明

p_file_id

ダウンロードするファイルのAPEX_APPLICATION_FILES内のID。APEX_APPLICATION_FILESは、ワークスペースにアップロードされるすべてのファイルのビューです。次の例では、APEX_APPLICATION_FILESを使用する方法を示します。

DECLARE
l_file_id NUMBER;
BEGIN
SELECT id
INTO l_file_id
FROM APEX_APPLICATION_FILES
WHERE filename = 'myxml';
--
APEX_UTIL.GET_FILE(
p_file_id   => l_file_id,
p_inline    => 'YES');
END;

p_inline

有効な値にはYESとNOが含まれます。YESを選択すると、ブラウザでインライン表示されます。NOを選択すると、添付としてダウンロードされます。

例

次の例に、GET_FILEファンクションを使用して、ID 8675309で識別されるファイルを戻す方法を示します。これは、ブラウザにインラインで表示されます。

BEGIN
APEX_UTIL.GET_FILE(
p_file_id   => '8675309',
p_inline    => 'YES');
END;

参照:
「GET_FILE_IDファンクション」

GET_FILE_IDファンクション

このファンクションは、Oracle Application Expressファイル・リポジトリ内のファイルの主キーを取得します。

構文

APEX_UTIL.GET_FILE_ID (
p_name    IN   VARCHAR2)
RETURN NUMBER;

パラメータ

表26-40 GET_FILE_IDのパラメータ

パラメータ

説明

p_name

ダウンロードするファイルのAPEX_APPLICATION_FILES内の名前。APEX_APPLICATION_FILESは、ワークスペースにアップロードされるすべてのファイルのビューです。

例

次の例に、GET_FILE_IDファンクションを使用して、ファイル名がF125.sqlのファイルのデータベースIDを戻す方法を示します。

DECLARE
l_name VARCHAR2(255);
l_file_id NUMBER;
BEGIN
SELECT name
INTO l_name
FROM APEX_APPLICATION_FILES
WHERE filename = 'F125.sql';
--
l_file_id := APEX_UTIL.GET_FILE_ID(p_name => l_name);
END;

GET_FIRST_NAMEファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納されるFIRST_NAMEフィールドを戻します。

構文

APEX_UTIL.GET_FIRST_NAME
p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-41 GET_FIRST_NAMEのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名を指定します。

例

次の例に、GET_FIRST_NAMEファンクションを使用してユーザーFRANKのFIRST_NAMEを戻す方法を示します。

DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.GET_FIRST_NAME(p_username => 'FRANK');
END;

参照:
「SET_FIRST_NAMEプロシージャ」

GET_GROUPS_USER_BELONGS_TOファンクション

このファンクションは、指定したユーザーがメンバーであるグループ名のカンマとスペースで区切られたリストを戻します。

構文

APEX_UTIL.GET_GROUPS_USER_BELONGS_TO(
p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-42 GET_GROUPS_USER_BELONGS_TOのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名を指定します。

例

次の例に、GET_GROUPS_USER_BELONGS_TOを使用して、ユーザーFRANKがメンバーであるグループのリストを戻す方法を示します。

DECLARE
VAL VARCHAR2(32765);
BEGIN
VAL := APEX_UTIL.GET_GROUPS_USER_BELONGS_TO(p_username => 'FRANK');
END;

参照:
「EDIT_USERプロシージャ」

GET_GROUP_IDファンクション

このファンクションは、ワークスペース内の指定したグループの数値のIDを戻します。

構文

APEX_UTIL.GET_GROUP_ID(
p_group_name IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-43 GET_GROUP_IDのパラメータ

パラメータ

説明

p_group_name

アカウント内のユーザー名を指定します。

例

次の例に、GET_GROUP_IDファンクションを使用して、ManagersというグループのIDを戻す方法を示します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.GET_GROUP_ID(p_group_name => 'Managers');
END;

GET_GROUP_NAMEファンクション

このファンクションは、数値のIDで指定したグループの名前を戻します。

構文

APEX_UTIL.GET_GROUP_NAME(
p_group_id IN NUMBER)
RETURN VARCHAR2;

パラメータ

表26-44 GET_GROUP_NAMEのパラメータ

パラメータ

説明

p_group_id

ワークスペース内のグループの数値のIDを指定します。

例

次の例に、GET_GROUP_NAMEファンクションを使用して、ID 8922003のグループの名前を戻します。

DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.GET_GROUP_NAME(p_group_id => 8922003);
END;

GET_HASHファンクション

このファンクションは、指定された値すべてについてハッシュ値を計算します。このファンクションを使用してデータ・レコードの失われた更新の検出機能を実装します。

構文

APEX_UTIL.GET_HASH (
p_values in wwv_flow_t_varchar2,
p_salted in boolean default true )
RETURN VARCHAR2;

パラメータ

表26-45 GET_HASHのパラメータ

パラメータ

説明

p_values

入力値。

p_salted

TRUE (デフォルト)の場合、内部セッション情報を含むソルト・ハッシュ。

例

declare
l_hash varchar2(4000);
begin
select apex_util.get_hash(apex_t_varchar2 (
empno, sal, comm ))
into l_hash
from emp
where empno = :P1_EMPNO;

if :P1_HASH <> l_hash then
raise_application_error(-20001, 'Somebody already updated SAL/COMM');
end if;

update emp
set sal = :P1_SAL,
comm = :P1_COMM
where empno = :P1_EMPNO;
exception when no_data_found then
raise_application_error(-20001, 'Employee not found');
end;

GET_HIGH_CONTRAST_MODE_TOGGLEファンクション

このファンクションでは、現在のページへのリンクを戻すことで、モードのオンまたはオフの切替えを可能にします。たとえば、現在標準モードで表示している場合、このファンクションによってリンクが表示され、クリックするとハイ・コントラスト・モードがオンに切り替わります。

構文

APEX_UTIL.GET_HIGH_CONTRAST_MODE_TOGGLE (
p_on_message  IN VARCHAR2 DEFAULT NULL,
p_off_message IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表26-46 GET_HIGH_CONTRAST_MODE_TOGGLEのパラメータ

パラメータ

説明

p_on_message

標準モードの場合に、ハイ・コントラスト・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオンに設定」テキストがリンクに戻されます。

p_off_message

ハイ・コントラスト・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオフに設定」テキストがリンクに戻されます。

例

標準モードで実行中の場合、このファンクションは「ハイ・コントラスト・モードをオンに設定」というテキスト付きのリンクを戻します。リンクをクリックすると、現在のページがリフレッシュされ、ハイ・コントラスト・モードがオンになります。ハイ・コントラスト・モードで実行中の場合、「ハイ・コントラスト・モードをオフに設定」というテキスト付きのリンクが戻されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
htp.p(apex_util.get_high_contrast_mode_toggle);
END;

参照:
"SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャ"

注意:
また、このトグルに戻されるデフォルトのリンク・テキストを変更するための、アプリケーション・レベルでオーバーライドできる翻訳可能なシステム・メッセージが2つあります。これには次のものがあります。

- APEX.SET_HIGH_CONTRAST_MODE_OFF - デフォルト・テキスト = ハイ・コントラスト・モードをオフに設定

- APEX.SET_HIGH_CONTRAST_MODE_ON - デフォルト・テキスト = ハイ・コントラスト・モードをオンに設定

GET_LAST_NAMEファンクション

このファンクションは、指定したユーザー・アカウント・レコードに格納されるLAST_NAMEフィールドを戻します。

構文

APEX_UTIL.GET_LAST_NAME(
p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-47 GET_LAST_NAMEのパラメータ

パラメータ

説明

p_username

ユーザー・アカウント・レコードのユーザー名

例

次の例に、このファンクションを使用してユーザーのFRANKのLAST_NAMEを戻す方法を示します。

DECLARE
VAL VARCHAR2(255);
BEGIN
VAL := APEX_UTIL.GET_LAST_NAME(p_username => 'FRANK');
END;

参照:
「SET_LAST_NAMEプロシージャ」

GET_NUMERIC_SESSION_STATEファンクション

このファンクションは、数値アイテムの数値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle Application Expressアプリケーションで使用できます。また、APEX_UTIL.GET_NUMERIC_SESSION_STATEのかわりに、短縮版のファンクションNVを使用できます。

構文

APEX_UTIL.GET_NUMERIC_SESSION_STATE (
p_item     IN VARCHAR2)
RETURN NUMBER;

パラメータ

表26-48 GET_NUMERIC_SESSION_STATEのパラメータ

パラメータ

説明

p_item

セッション・ステートをフェッチするアイテムの名前(大/小文字の区別なし)

例

次の例に、このファンクションを使用して、アイテムmy_itemのセッション・ステートに格納されている数値を戻す方法を示します。

DECLARE
l_item_value    NUMBER;
BEGIN
l_item_value := APEX_UTIL.GET_NUMERIC_SESSION_STATE('my_item');
END;

参照:
「GET_SESSION_STATEファンクション」および「SET_SESSION_STATEプロシージャ」

GET_PREFERENCEファンクション

このファンクションは、指定したユーザーについて、以前保存されたプリファレンスの値を取得します。

構文

APEX_UTIL.GET_PREFERENCE (
p_preference  IN    VARCHAR2 DEFAULT NULL,
p_user        IN    VARCHAR2 DEFAULT V('USER'))
RETURN VARCHAR2;

パラメータ

表26-49 GET_PREFERENCEのパラメータ

パラメータ

説明

p_preference

値を取得するプリファレンスの名前

p_value

プリファレンスの値

p_user

プリファレンスが取得されるユーザー

例

次の例に、GET_PREFERENCEファンクションを使用して、現在認証されているユーザーのdefault_viewというプリファレンスの値を戻す方法を示します。

DECLARE
l_default_view    VARCHAR2(255);
BEGIN
l_default_view := APEX_UTIL.GET_PREFERENCE(
p_preference => 'default_view',
p_user       => :APP_USER);
END;

参照:
「SET_PREFERENCEプロシージャ」、「REMOVE_PREFERENCEプロシージャ」および『Oracle Application Express管理ガイド』の「ユーザー・プリファレンスの管理」

GET_PRINT_DOCUMENTファンクションのシグネチャ1

このファンクションは、XMLベースのレポート・データ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_report_data         IN BLOB,
p_report_layout       IN CLOB,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default NULL)
RETURN BLOB;

パラメータ

表26-50 GET_PRINT_DOCUMENTシグネチャ1のパラメータ

パラメータ

説明

p_report_data

XMLベースのレポート・データ

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。

GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ2

このファンクションは、事前定義されたレポート問合せおよび事前定義されたレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_application_id      IN NUMBER,
p_report_query_name   IN VARCHAR2,
p_report_layout_name  IN VARCHAR2 default null,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default null)
RETURN BLOB;

パラメータ

表26-51 GET_PRINT_DOCUMENTシグネチャ2のパラメータ

パラメータ

説明

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_name

レポート・レイアウトの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。

GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ3

このファンクションは、事前定義されたレポート問合せ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_application_id      IN NUMBER,
p_report_query_name   IN VARCHAR2,
p_report_layout       IN CLOB,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default null)
RETURN BLOB;

パラメータ

表26-52 GET_PRINT_DOCUMENTシグネチャ3のパラメータ

パラメータ

説明

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウトを定義します

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。

GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ4

このファンクションは、XMLベースのレポート・データ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_report_data         IN CLOB,
p_report_layout       IN CLOB,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default NULL)
RETURN BLOB;

パラメータ

表26-53 GET_PRINT_DOCUMENTシグネチャ4のパラメータ

パラメータ

説明

p_report_data

XMLベースのレポート・データ(UTF-8でエンコードされている必要があります)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウト

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます

シグネチャ4の例

次の例に、シグネチャ4を使用してGET_PRINT_DOCUMENTを使用する方法を示します(ドキュメントはXMLベースのレポート・データおよびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用してBLOBとして戻されます)。この例では、GET_PRINT_DOCUMENTをAPEX_MAIL.SENDおよびAPEX_MAIL.ADD_ATTACHMENTとともに使用し、GET_PRINT_DOCUMENTによって戻されるファイルが添付された電子メールを送信します。レポート・データとレポート・レイアウトの両方に、ページ・アイテム(P1_XMLおよびP1_XSL)に格納されている値が適用されます。

DECLARE
l_id number;
l_document BLOB;
BEGIN
l_document := APEX_UTIL.GET_PRINT_DOCUMENT (
p_report_data         => :P1_XML,
p_report_layout       => :P1_XSL,
p_report_layout_type  => 'xsl-fo',
p_document_format     => 'pdf');

l_id := APEX_MAIL.SEND(
p_to        => :P35_MAIL_TO,
p_from      => 'noreplies@oracle.com',
p_subj      => 'sending PDF by using print API',
p_body      => 'Please review the attachment.',
p_body_html => 'Please review the attachment');

APEX_MAIL.ADD_ATTACHMENT (
p_mail_id    => l_id,
p_attachment => l_document,
p_filename   => 'mydocument.pdf',
p_mime_type  => 'application/pdf');
END;

GET_SCREEN_READER_MODE_TOGGLEファンクション

このファンクションは、モードのオンまたはオフを切り替える現在のページへのリンクを戻します。たとえば、標準モードの場合、このファンクションによって、クリックするとスクリーン・リーダー・モードをオンに切り替えるリンクが表示されます。

構文

APEX_UTIL.GET_SCREEN_READER_MODE_TOGGLE (
p_on_message  IN VARCHAR2 DEFAULT NULL,
p_off_message IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表26-54 GET_SCREEN_READER_MODE_TOGGLEパラメータ

パラメータ

説明

p_on_message

標準モードの場合に、スクリーン・リーダー・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオンに設定」テキストがリンクに戻されます。

p_off_message

スクリーン・リーダー・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオフに設定」テキストがリンクに戻されます。

例

標準モードで実行中の場合、このファンクションは「スクリーン・リーダー・モードをオンに設定」というテキスト付きのリンクを戻します。リンクをクリックすると、現在のページがリフレッシュされ、スクリーン・リーダー・モードがオンになります。スクリーン・リーダー・モードで実行中の場合、リンク'Set Screen Reader Mode Off'が戻されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
htp.p(apex_util.get_screen_reader_mode_toggle);
END;

参照:
「SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ」

GET_SESSION_LANGファンクション

このファンクションは、Application Expressのカレント・セッションにおけるカレント・ユーザーの言語設定を戻します。

構文

APEX_UTIL.GET_SESSION_LANG
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、GET_SESSION_LANGファンクションの使用方法を示しています。Application Expressのカレント・セッションにおけるカレント・ユーザーのセッション言語をローカル変数に戻します。

DECLARE
VAL VARCHAR2(5);
BEGIN
VAL := APEX_UTIL.GET_SESSION_LANG;
END;

GET_SESSION_STATEファンクション

このファンクションはアイテムの値を戻します。PL/SQLまたはSQLが使用可能な場合に、このファンクションをOracle Application Expressアプリケーションで使用できます。また、APEX_UTIL.GET_SESSION_STATEのかわりに、短縮版のファンクションVを使用できます。

構文

APEX_UTIL.GET_SESSION_STATE (
p_item    IN   VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-55 GET_SESSION_STATEのパラメータ

パラメータ

説明

p_item

セッション・ステートをフェッチするアイテムの名前(大/小文字の区別なし)

例

次の例に、GET_SESSION_STATEファンクションを使用して、アイテムmy_itemのセッション・ステートに格納されている値を戻す方法を示します。

DECLARE
l_item_value  VARCHAR2(255);
BEGIN
l_item_value := APEX_UTIL.GET_SESSION_STATE('my_item');
END;

参照:
「GET_NUMERIC_SESSION_STATEファンクション」および「SET_SESSION_STATEプロシージャ」

GET_SESSION_TERRITORYファンクション

このファンクションは、Application Expressのカレント・セッションにおけるカレント・ユーザーの地域設定を戻します。

構文

APEX_UTIL.GET_SESSION_TERRITORY
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、GET_SESSION_TERRITORYファンクションの使用方法を示しています。Application Expressのカレント・セッションにおけるカレント・ユーザーのセッション地域設定をローカル変数に戻します。

DECLARE
VAL VARCHAR2(30);
BEGIN
VAL := APEX_UTIL.GET_SESSION_TERRITORY;
END;

GET_SESSION_TIME_ZONEファンクション

このファンクションは、Application Expressのカレント・セッションにおけるカレント・ユーザーのタイムゾーンを戻します。タイムゾーンがAPEX_UTIL.SET_SESSION_TIME_ZONEを使用して明示的に設定されていない場合、またはアプリケーションの自動タイムゾーン属性が有効になっている場合、この値はnullです。

構文

APEX_UTIL.GET_SESSION_TIME_ZONE
RETURN VARCHAR2;

パラメータ

なし。

例

次の例は、GET_SESSION_TIME_ZONEファンクションの使用方法を示しています。Application Expressのカレント・セッションにおけるカレント・ユーザーのセッション・タイムゾーンをローカル変数に戻します。

BEGIN
VAL := APEX_UTIL.GET_SESSION_TIME_ZONE;
END;

GET_SINCEファンクション

このファンクションは、相対日付を語句(現在から2日後、30分前など)で戻します。このファンクションは、Oracle Application Expressで使用できるSINCE書式マスクを使用することと同じで、PL/SQLルーチン内で使用すると便利です。

構文

APEX_UTIL.GET_SINCE (
p_date  date )
RETURN VARCHAR2;

パラメータ

表26-56 GET_SINCEのパラメータ

パラメータ

説明

p_date

書式設定する日付。

例

begin
for c1 in (
select application_id, application_name,
apex_util.get_since(last_updated_on) last_update
from apex_applications
order by application_id)
loop
htp.p('Application: '|| to_char(c1.application_id) || ' - ' ||
c1.application_name || '<br/>');
htp.p('Last Updated: ' || c1.last_update);
end loop;
end;

GET_USER_IDファンクション

このファンクションは、ワークスペース内の指定したユーザーの数値のIDを戻します。

構文

APEX_UTIL.GET_USER_ID(
p_username   IN VARCHAR2)
RETURN NUMBER;

パラメータ

表26-57 GET_USER_IDのパラメータ

パラメータ

説明

p_username

ワークスペース内のユーザー名を指定します。

例

次の例に、GET_USER_IDファンクションを使用して、FRANKというユーザーのIDを戻す方法を示します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.GET_USER_ID(p_username => 'FRANK');
END;

GET_USER_ROLESファンクション

このファンクションは、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドを戻します。現在このパラメータの名前は一貫しておらず、CREATE_USER、EDIT_USERおよびFETCH_USER APIと呼ばれていることに注意してください。ただし、これらのすべての名前が、DEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privs、EDIT_USERではp_developer_roles、FETCH_USERではp_developer_roleが使用されます。

構文

APEX_UTIL.GET_USER_ROLES(
p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-58 GET_USER_ROLESのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名を指定します。

例

次の例に、GET_USER_ROLESファンクションを使用して、ユーザーFRANKのDEVELOPER_ROLEフィールドに格納されているコロンで区切られたロールのリストを戻す方法を示します。

DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.GET_USER_ROLES(p_username=>'FRANK');
END;

GET_USERNAMEファンクション

このファンクションは、数値のIDで指定したユーザー・アカウントのユーザー名を戻します。

構文

APEX_UTIL.GET_USERNAME(
p_userid IN NUMBER)
RETURN VARCHAR2;

パラメータ

表26-59 GET_USERNAMEのパラメータ

パラメータ

説明

p_userid

ワークスペース内のユーザー・アカウントの数値のIDを指定します。

例

次の例に、GET_USERNAMEファンクションを使用して、IDが228922003のユーザーのユーザー名を戻す方法を示します。

DECLARE
VAL VARCHAR2(100);
BEGIN
VAL := APEX_UTIL.GET_USERNAME(p_userid => 228922003);
END;

参照:
「SET_USERNAMEプロシージャ」

HOST_URLファンクション

このファンクションは、渡されたオプションに応じて、Application ExpressアプリケーションにURLを戻します。

構文

APEX_UTIL.HOST_URL (
p_option IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表26-60 HOST_URLのパラメータ

パラメータ

説明

p_option

含めるURLの部分を指定します。

p_optionに使用可能な値は次のとおりです。

- NULL - ポート番号までのURLを戻します。次に例を示します。

http://myserver.com:7778

- SCRIPT - スクリプト名を含むURLを戻します。次に例を示します。

https://myserver.com:7778/pls/apex/

- IMGPRE - イメージ接頭辞を含むURLを戻します。次に例を示します。

https://myserver.com:7778/i/

例

次の例では、HOST_URLファンクションを使用して、スクリプト名を含むURLを現在のApplication Expressインスタンスに戻す方法を示しています。

declare
l_host_url      varchar2(4000);
l_url           varchar2(4000);
l_application   varchar2(30) := 'f?p=100:1';
l_email_body    varchar2(32000);
begin
l_host_url := apex_util.host_url('SCRIPT');
l_url := l_host_url||l_application;
l_email_body := 'The URL to the application is: '||l_url;
end;

HTML_PCT_GRAPH_MASKファンクション

このファンクションは、グラフの大きさを変更します。　このファンクションは、書式マスクがGRAPHのクラシック・レポートおよび対話モード・レポートでも使用できます。これによって、インライン形式で<div>タグが生成されます。

構文

APEX_UTIL.HTML_PCT_GRAPH_MASK (
p_number         IN NUMBER    DEFAULT NULL,
p_size           IN NUMBER    DEFAULT 100,
p_background     IN VARCHAR2  DEFAULT NULL,
p_bar_background IN VARCHAR2  DEFAULT NULL,
p_format         IN VARCHAR2  DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表26-61 HTML_PCT_GRAPH_MASKパラメータ

パラメータ

説明

p_number

0から100の数値。

p_size

グラフの幅(ピクセル)。

p_background

6文字の16進文字列で表される、グラフの棒の背景色(棒の色ではない)。

p_bar_background

6文字の16進文字列で表される、グラフの棒の背景色(棒の色)。

p_format

このパラメータを指定すると、p_size、p_backgroundおよびp_bar_backgroundは無視されます。

このパラメータの書式は次のとおりです。

PCT_GRAPH:<BACKGROUND>:<FOREGROUND>:<CHART_WIDTH>

ポジション1: PCT_GRAPH書式マスク・インジケータ

ポジション2: 6文字の16進数で表される背景色(オプション)

ポジション3: 6文字の16進数で表される前景の"棒"の色(オプション)

ポジション4: グラフの幅(ピクセル)。数値で、デフォルトは100です。

p_numberは、50がchart_widthの半分となるように自動的に調整されます(オプション)。

例

次にSQLの例を示します。

select apex_util.html_pct_graph_mask(33) from dual

次にレポートの数値列の書式マスクの例を示します。

PCT_GRAPH:777777:111111:200

INCREMENT_CALENDARプロシージャ

このプロシージャは、カレンダの日付セットを次に移動します。カレンダ・ビューによって、翌月、翌週または翌日に移動します。カスタム・カレンダの場合は、開始日から終了日までの総日数分、移動します。

構文

APEX_UTIL.INCREMENT_CALENDAR;

パラメータ

なし。

例

この例では、カレンダ・ページのNEXTというボタンを作成し、作成ボタンをクリックすると起動するプロセスを作成した場合、次のコードによってカレンダ内を移動します。

APEX_UTIL.INCREMENT_CALENDAR

IR_CLEARプロシージャ[非推奨]

注意:
このプロシージャの使用は推奨されていません。このプロシージャのかわりにAPEX_IRのプロシージャを使用してください。

このプロシージャは、レポート設定を消去します。

注意:
このプロシージャはページ発行プロセスでのみ使用されます。

構文

APEX_UTIL.IR_CLEAR(
p_page_id IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

表26-62 IR_CLEARパラメータ

パラメータ

説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートを消去するには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートを消去するには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'を消去するには、p_report_aliasを'1234'にする必要があります。

例

次の例では、IR_CLEARプロシージャを使用して、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポート設定を消去する方法を示します。

BEGIN
APEX_UTIL.IR_CLEAR(
p_page_id      => 1,
p_report_alias => '8101021'
);
END;

IR_DELETE_REPORTプロシージャ[非推奨]

注意:
このプロシージャの使用は推奨されていません。このプロシージャのかわりにAPEX_IRのプロシージャを使用してください。

このプロシージャは、保存した対話モード・レポートを削除します。プライマリ・デフォルト・レポート以外のすべての保存済レポートを削除します。

構文

APEX_UTIL.IR_DELETE_REPORT(
p_report_id IN NUMBER);

パラメータ

表26-63 IR_DELETE_REPORTパラメータ

パラメータ

説明

p_report_id

Application Expressのカレント・アプリケーションで削除するレポートID。

例

次の例は、IR_DELETE_REPORTプロシージャを使用して、カレント・アプリケーションにあるIDが'880629800374638220'の保存済の対話モード・レポートを削除する方法を示しています。

BEGIN
APEX_UTIL.IR_DELETE_REPORT(
p_report_id => '880629800374638220');
END;

IR_DELETE_SUBSCRIPTIONプロシージャ[非推奨]

注意:
このプロシージャの使用は推奨されていません。このプロシージャのかわりにAPEX_IRのプロシージャを使用してください。

このプロシージャは、対話型サブスクリプションを削除します。

構文

APEX_UTIL.IR_DELETE_SUBSCRIPTION(
p_subscription_id IN NUMBER);

パラメータ

表26-64 IR_DELETE_SUBSCRIPTIONパラメータ

パラメータ

説明

p_subscription_id

現行のワークスペース内の削除するサブスクリプションID。

例

次の例は、IR_DELETE_SUBSCRIPTIONプロシージャを使用して、現行のワークスペースにあるIDが'880629800374638220'のサブスクリプションを削除する方法を示しています。

BEGIN
APEX_UTIL.IR_DELETE_SUBSCRIPTION(
p_subscription_id => '880629800374638220');
END;

IR_FILTERプロシージャ[非推奨]

注意:
このプロシージャの使用は推奨されていません。このプロシージャのかわりにAPEX_IRのプロシージャを使用してください。

このプロシージャは、対話モード・レポートにフィルタを作成します。

注意:
このプロシージャはページ発行プロセスでのみ使用されます。

構文

APEX_UTIL.IR_FILTER(
p_page_id       IN NUMBER,
p_report_column IN VARCHAR2,
p_operator_abbr IN VARCHAR2 DEFAULT NULL,
p_filter_value  IN VARCHAR2,
p_report_alias  IN VARCHAR2 DEFAULT NULL);

パラメータ

表26-65 IR_FILTERパラメータ

パラメータ

説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_column

フィルタ処理されるレポートSQL列名または列の別名。

p_operator_abbr

フィルタ・タイプ。有効な値は次のとおりです。

- EQ = 等しい

- NEQ = 等しくない

- LT = 未満

- LTE = 以下

- GT = より大きい

- GTE = 以上

- LIKE = SQLのLike演算子

- N = Null

- NN = NULLではない

- C = 含む

- NC = 含まない

- IN = SQL In演算子

- NIN = SQL Not In演算子

p_filter_value

フィルタ値。この値は'N'および'NN'には使用されません。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートにフィルタを作成するには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートにフィルタを作成するには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'にフィルタを作成するには、p_report_aliasを'1234'にする必要があります。

例

次の例では、IR_FILTERプロシージャを使用して、DEPTNOが30で、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポートをフィルタ処理する方法を示します。

BEGIN
APEX_UTIL.IR_FILTER (
p_page_id        => 1,
p_report_column  => 'DEPTNO',
p_operator_abbr  => 'EQ',
p_filter_value   => '30'
p_report_alias   => '8101021'
);
END;

IR_RESETプロシージャ[非推奨]

注意:
このプロシージャの使用は推奨されていません。このプロシージャのかわりにAPEX_IRのプロシージャを使用してください。

このプロシージャは、レポート設定をデフォルトに戻します。レポートをリセットすると、カスタマイズした設定はすべて削除されます。

注意:
このプロシージャはページ発行プロセスでのみ使用されます。

構文

APEX_UTIL.IR_RESET(
p_page_id IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

表26-66 IR_RESETパラメータ

パラメータ

説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートをリセットするには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートをリセットするには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'をリセットするには、p_report_aliasを'1234'にする必要があります。

例

次の例では、IR_RESETプロシージャを使用して、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポート設定をリセットする方法を示します。

BEGIN
APEX_UTIL.IR_RESET(
p_page_id      => 1,
p_report_alias => '8101021'
);
END;

IS_HIGH_CONTRAST_SESSIONファンクション

このファンクションは、セッションがハイ・コントラスト・モードの場合はブール値のTRUEを戻し、ハイ・コントラスト・モードでない場合はブール値のFALSEを戻します。

構文

APEX_UTIL.IS_HIGH_CONTRAST_SESSION
RETURN BOOLEAN;

パラメータ

なし。

例

この例では、現在のセッションがハイ・コントラスト・モードで実行されている場合、特定のハイ・コントラストCSSファイル「my_app_hc.css」がページのHTML出力に追加されます。

BEGIN
IF apex_util.is_high_contrast_session THEN
apex_css.add_file (
p_name => 'my_app_hc');
END IF;
END;

IS_HIGH_CONTRAST_SESSION_YNファンクション

このファンクションは、セッションがハイ・コントラスト・モードの場合はYを戻し、ハイ・コントラスト・モードでない場合はNを戻します。

構文

APEX_UTIL.IS_HIGH_CONTRAST_SESSION_YN
RETURN VARCHAR2;

パラメータ

なし。

例

この例では、現在のセッションがハイ・コントラスト・モードで実行されている場合、特定のハイ・コントラストCSSファイルmy_app_hc.cssがページのHTML出力に追加されます。

BEGIN
IF apex_util.is_high_contrast_session_yn = 'Y' THEN
apex_css.add_file (
p_name => 'my_app_hc');
END IF;
END;

IS_LOGIN_PASSWORD_VALIDファンクション

このファンクションは、現在のワークスペース内の指定したユーザー・アカウントのパスワードの検証に基づいてブール結果を戻します。パスワードが一致した場合はTRUEを、パスワードが一致しない場合はFALSEを戻します。

構文

APEX_UTIL.IS_LOGIN_PASSWORD_VALID(
p_username IN VARCHAR2,
p_password IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表26-67 IS_LOGIN_PASSWORD_VALIDのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名

p_password

アカウントに格納されているパスワードと比較されるパスワード

例

次の例に、IS_LOGIN_PASSWORD_VALIDファンクションを使用して、ユーザーFRANKのパスワードがtigerかどうかを確認する方法を示します。これがFRANKの有効なパスワードの場合はTRUE、そうでない場合はFALSEが戻されます。

DECLARE
VAL BOOLEAN;
BEGIN
VAL := APEX_UTIL.IS_LOGIN_PASSWORD_VALID (
p_username=>'FRANK',
p_password=>'tiger');
END;

IS_SCREEN_READER_SESSIONファンクション

このファンクションは、セッションがスクリーン・リーダー・モードである場合はブール値のTRUEを戻し、スクリーン・リーダー・モードでない場合はブール値のFALSEを戻します。

構文

APEX_UTIL.IS_SCREEN_READER_SESSION
RETURN BOOLEAN;

パラメータ

なし

例

BEGIN
IF apex_util.is_screen_reader_session then
htp.p('Screen Reader Mode');
END IF;
END;

IS_SCREEN_READER_SESSION_YNファンクション

このファンクションは、セッションがスクリーン・リーダー・モードも場合は'Y'を戻し、スクリーン・リーダー・モードでない場合は'N'を戻します。

構文

APEX_UTIL.IS_SCREEN_READER_SESSION_YN
RETURN VARCHAR2;

パラメータ

なし

例

BEGIN
IF apex_util.is_screen_reader_session_yn = 'Y' then
htp.p('Screen Reader Mode');
END IF;
END;

IS_USERNAME_UNIQUEファンクション

このファンクションは、指定したユーザー・アカウントがワークスペース内で一意であるかどうかに基づいてブール結果を戻します。

構文

APEX_UTIL.IS_USERNAME_UNIQUE(
p_username IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表26-68 IS_USERNAME_UNIQUEのパラメータ

パラメータ

説明

p_username

テストするユーザー名を指定します。

例

次の例に、IS_USERNAME_UNIQUEファンクションを使用する方法を示します。現行のワークスペースにユーザーFRANKがすでに存在する場合はFALSE、存在しない場合はTRUEが戻されます。

DECLARE
VAL BOOLEAN;
BEGIN
VAL := APEX_UTIL.IS_USERNAME_UNIQUE(
p_username=>'FRANK');
END;

KEYVAL_NUMファンクション

このファンクションは、APEX_UTIL.SAVEKEY_NUMによって設定されたパッケージ変数(wwv_flow_utilities.g_val_num)の値を取得します。

構文

APEX_UTIL.KEYVAL_NUM
RETURN NUMBER;

パラメータ

なし

例

次の例に、KEYVAL_NUMファンクションを使用して、パッケージ変数wwv_flow_utilities.g_val_numの現行の値を戻す方法を示します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.KEYVAL_NUM;
END;

参照:
「SAVEKEY_NUMファンクション」

KEYVAL_VC2ファンクション

このファンクションは、APEX_UTIL.SAVEKEY_VC2によって設定されたパッケージ変数(wwv_flow_utilities.g_val_vc2)の値を取得します。

構文

APEX_UTIL.KEYVAL_VC2;

パラメータ

なし。

例

次の例に、KEYVAL_VC2ファンクションを使用して、パッケージ変数wwv_flow_utilities.g_val_vc2の現行の値を戻す方法を示します。

DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.KEYVAL_VC2;
END;

参照:
「SAVEKEY_VC2ファンクション」

LOCK_ACCOUNTプロシージャ

ユーザーのアカウント・ステータスを「ロック済」に設定します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.LOCK_ACCOUNT (
p_user_name IN VARCHAR2);

パラメータ

表26-69 LOCK_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、LOCK_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressアカウント(ワークスペース管理者、開発者またはエンド・ユーザー)をロックします。このアクションは、管理者、開発者およびエンド・ユーザーが使用するアカウントをロックします。

BEGIN
FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
APEX_UTIL.LOCK_ACCOUNT(p_user_name => c1.user_name);
htp.p('End User Account:'||c1.user_name||' is now locked.');
END LOOP;
END;

参照:
UNLOCK_ACCOUNTプロシージャ」および「GET_ACCOUNT_LOCKED_STATUSファンクション」

PASSWORD_FIRST_USE_OCCURREDファンクション

アカウントを作成したか、Oracle Application Express管理者がパスワードのリセット操作を実行してアカウント保持者に新しいパスワードを電子メールで送信したか、あるいはユーザーがパスワードのリセット操作を開始した後に、アカウントのパスワードが変更された場合は、TRUEを戻します。このファンクションは、前述のイベントのいずれかが実行されてから、アカウントのパスワードが変更されていない場合は、FALSEを戻します。

このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.PASSWORD_FIRST_USE_OCCURRED (
p_user_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表26-70 PASSWORD_FIRST_USE_OCCURREDのパラメータ

パラメータ

説明

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、PASSWORD_FIRST_USE_OCCURREDファンクションを使用する方法を示します。このファンクションを使用して、現行のワークスペースのApplication Expressユーザー・アカウント(ワークスペース管理者、開発者またはエンド・ユーザー)のパスワードが、アカウント作成中にパスワードが最初に設定された後に最初のログイン時にユーザーによって変更されたか、または前述のパスワードのリセット操作の1つによって変更されたかをチェックします。これは、CHANGE_PASSWORD_ON_FIRST_USE属性が「はい」に設定されているアカウントでのみ有効です。

BEGIN
FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
IF APEX_UTIL.PASSWORD_FIRST_USE_OCCURRED(p_user_name => c1.user_name) THEN
htp.p('User:'||c1.user_name||' has logged in and updated the password.');
END IF;
END LOOP;
END;

参照:
「CHANGE_PASSWORD_ON_FIRST_USEファンクション」

PREPARE_URLファンクション

PREPARE_URLファンクションは、次の2つの目的で使用されます。

1. 「セッション・ステート保護」チェックサム引数(&cs=)が指定されたf?p URLを戻すため(このf?p URLが必要な場合)

2. セッションIDコンポーネントが0 (ゼロ)に置換されたf?p URLを戻すため(ゼロ・セッションID機能が使用され、他の条件が満たされている場合)

注意:
PREPARE_URLファンクションは、&cs=<large hex value>を追加したf?p URLを戻します。たとえば、この戻り値をJavaScriptで使用する場合、特定のコンテキストの構文規則に従うため、URLのアンパサンドをエスケープする必要があります。PREPARE_URLのコールを含むSVGチャートのSQL問合せでは、このエスケープが必要な場合があります。

構文

APEX_UTIL.PREPARE_URL (
p_url           IN VARCHAR2,
p_url_charset   IN VARCHAR2 default null,
p_checksum_type IN VARCHAR2 default null)
RETURN VARCHAR2;

パラメータ

表26-71 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)のいずれか

例1

次の例に、PREPARE_URLファンクションを使用して、有効なSESSIONレベルのチェックサム引数が指定されたURLを戻す方法を示します。このURLによって、P1_ITEMページ・アイテムの値がxyzに設定されます。

DECLARE
l_url varchar2(2000);
l_app number := v('APP_ID');
l_session number := v('APP_SESSION');
BEGIN
l_url := APEX_UTIL.PREPARE_URL(
p_url => 'f?p=' || l_app || ':1:'||l_session||'::NO::P1_ITEM:xyz',
p_checksum_type => 'SESSION');
END;

例2

次の例に、PREPARE_URLファンクションを使用して、セッションIDが0 (ゼロ)のURLを戻す方法を示します。f?p URL (アンカー)を生成する「PL/SQL動的コンテンツ」リージョンでは、PREPARE_URLをコールして、ゼロ・セッションID機能が使用されている場合、ユーザーが(認証されていない)パブリック・ユーザーの場合およびターゲット・ページがカレント・アプリケーションのパブリック・ページである場合にセッションIDが0 (ゼロ)に設定されることを確認します。

htp.p(APEX_UTIL.PREPARE_URL(p_url => 'f?p=' || :APP_ID || ':10:'|| :APP_SESSION
||'::NO::P10_ITEM:ABC');

この目的でPREPARE_URLを使用する場合は、p_url_charsetおよびp_checksum_type引数を省略できます。ただし、セッション・ステート保護機能とゼロ・セッションID機能の両方を適用できる場合は、これらの引数を使用できます。

参照:
「セッションIDにゼロを使用したブックマークの容易化」

PUBLIC_CHECK_AUTHORIZATIONファンクション[非推奨]

注意:
この非推奨のファンクションではなく、IS_AUTHORIZEDファンクションを使用してください。

認可スキーム名を指定すると、このファンクションによって現在のユーザーがセキュリティ・チェックを通過するかどうかが判断されます。

構文

APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION (
p_security_scheme    IN    VARCHAR2)
RETURN BOOLEAN;

パラメータ

表26-72 PUBLIC_CHECK_AUTHORIZATIONのパラメータ

パラメータ

説明

p_security_name

ユーザーがセキュリティ・チェックを通過するかどうかを判断する認可スキームの名前

例

次の例に、PUBLIC_CHECK_AUTHORIZATIONファンクションを使用して、my_auth_scheme認証スキームに定義されているチェックをカレント・ユーザーが通過するかどうかを確認する方法を示します。

DECLARE
l_check_security  BOOLEAN;
BEGIN
l_check_security := APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION('my_auth_scheme');
END;

PURGE_REGIONS_BY_APPプロシージャ

アプリケーションのすべてのキャッシュされたリージョンを削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_APP (
p_application IN NUMBER);

パラメータ

表26-73 PURGE_REGIONS_BY_APPのパラメータ

パラメータ

説明

p_application

アプリケーションの識別番号(ID)

例

次の例に、APEX_UTIL.PURGE_REGIONS_BY_APPを使用して、アプリケーション番号123に対してキャッシュされたすべてのリージョンを削除する方法を示します。

BEGIN
APEX_UTIL.PURGE_REGIONS_BY_APP(p_application=>123);
END;

PURGE_REGIONS_BY_NAMEプロシージャ

アプリケーションID、ページ番号およびリージョン名で識別されるリージョンに対してキャッシュされたすべての値を削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_NAME (
p_application IN NUMBER,
p_page        IN NUMBER,
p_region_name IN VARCHAR2);

パラメータ

表26-74 PURGE_REGIONS_BY_NAMEのパラメータ

パラメータ

説明

p_application

アプリケーションの識別番号(ID)

p_page

削除されるリージョンを含んだページ番号

p_region_name

削除されるリージョンの名前。

例

次の例に、PURGE_REGIONS_BY_NAMEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンmy_cached_regionに対してキャッシュされたすべての値を削除する方法を示します。

BEGIN
APEX_UTIL.PURGE_REGIONS_BY_NAME(
p_application => :APP_ID,
p_page => 1,
p_region_name => 'my_cached_region');
END;

PURGE_REGIONS_BY_PAGEプロシージャ

アプリケーションおよびページによってキャッシュされたリージョンすべてを削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_PAGE (
p_application IN NUMBER,
p_page        IN NUMBER);

パラメータ

表26-75 PURGE_REGIONS_BY_PAGEのパラメータ

パラメータ

説明

p_application

アプリケーションの識別番号(ID)

p_page

リージョンを含んだページの識別番号

例

次の例に、PURGE_REGIONS_BY_PAGEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンに対してキャッシュされたすべての値を削除する方法を示します。

BEGIN
APEX_UTIL.PURGE_REGIONS_BY_PAGE(
p_application => :APP_ID,
p_page => 1);
END;

REDIRECT_URLプロシージャ

このプロシージャはowa_util.redirect_urlをコールして、ブラウザに新しいURLにリダイレクトするよう伝えます。このプロシージャは、その後、自動的にapex_application.stop_apex_engineをコールして、Application Expressアプリケーションが処理を続けないよう中断します。

構文

APEX_UTIL.REDIRECT_URL (
p_url              in varchar2,
p_reset_htp_buffer in boolean default true );

パラメータ

表26-76 REDIRECT_URLのパラメータ

パラメータ

説明

p_url

ブラウザによってリクエストされるURL。

p_reset_htp_buffer

ブラウザが新しいURLへのリダイレクトを理解し、HTPバッファにすでに書き込まれたデータによって混乱しないようにするため、TRUEに設定してHTPバッファをリセットします。アプリケーションに、応答時に使用する独自のクッキーがある場合は、FALSEに設定します。

例

次の例では、ブラウザがhttp://www.oracle.comにリダイレクトして、それ以降の処理をすぐに停止します。

apex_util.redirect_url (
p_url => 'http://www.oracle.com/' );

REMOVE_PREFERENCEプロシージャ

このプロシージャは、指定したユーザーのプリファレンスを削除します。

構文

APEX_UTIL.REMOVE_PREFERENCE(
p_preference    IN    VARCHAR2 DEFAULT NULL,
p_user          IN    VARCHAR2 DEFAULT V('USER'));

パラメータ

表26-77 REMOVE_PREFERENCEのパラメータ

パラメータ

説明

p_preference

削除するプリファレンスの名前

p_user

プリファレンス定義の対象ユーザー

例

次の例に、REMOVE_PREFERENCEプロシージャを使用して、現在認証されているユーザーのプリファレンスdefault_viewを削除する方法を示します。

BEGIN
APEX_UTIL.REMOVE_PREFERENCE(
p_preference => 'default_view',
p_user       => :APP_USER);
END;

参照:
「GET_PREFERENCEファンクション」、「SET_PREFERENCEプロシージャ」および『Oracle Application Express管理ガイド』のユーザー・プリファレンスの管理に関する項

REMOVE_SORT_PREFERENCESプロシージャ

このプロシージャは、ユーザーの列ヘッダーのソート・プリファレンスの値を削除します。

構文

APEX_UTIL.REMOVE_SORT_PREFERENCES (
p_user  IN   VARCHAR2 DEFAULT V('USER'));

パラメータ

表26-78 REMOVE_SORT_PREFERENCESのパラメータ

パラメータ

説明

p_user

ソート・プリファレンスを削除するユーザーを指定します

例

次の例に、REMOVE_SORT_PREFERENCESプロシージャを使用して、現在認証されているユーザーの列ヘッダーのソート・プリファレンスを削除する方法を示します。

BEGIN
APEX_UTIL.REMOVE_SORT_PREFERENCES(:APP_USER);
END;

REMOVE_USERプロシージャ

このプロシージャは、主キーまたはユーザー名で指定したユーザー・アカウントを削除します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.REMOVE_USER(
p_user_id   IN NUMBER,
p_user_name IN VARCHAR2);

パラメータ

表26-79 REMOVE_USERのパラメータ

パラメータ

説明

p_user_id

ユーザー・アカウント・レコードの数値の主キー

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、REMOVE_USERプロシージャを使用してユーザー・アカウントを削除する方法を示します。まず(p_user_idパラメータを使用して)主キーに基づいて、次に(p_user_nameパラメータを使用して)ユーザー名に基づいて削除します。

BEGIN
APEX_UTIL.REMOVE_USER(p_user_id=> 99997);
END;

BEGIN
APEX_UTIL.REMOVE_USER(p_user_name => 'FRANK');
END;

RESET_AUTHORIZATIONSプロシージャ[非推奨]

注意:
この非推奨のプロシージャではなく、RESET_CACHEプロシージャを使用してください。

Oracle Application Expressは、パフォーマンスを向上させるために、認可スキームの評価後、その結果をキャッシュします。このプロシージャを使用すると、キャッシュを元に戻して、次にページ表示または受入れ処理中に認可スキームが適用された際に各認可スキームの再検証を要求できます。このプロシージャは、ユーザーがアプリケーション内で自らの信頼性(認可プロファイル)を変更できるようにする場合に使用できます。

構文

APEX_UTIL.RESET_AUTHORIZATIONS;

パラメータ

なし。

例

次の例に、RESET_AUTHORIZATIONSプロシージャを使用して認証スキームのキャッシュをクリアする方法を示します。

BEGIN
APEX_UTIL.RESET_AUTHORIZATIONS;
END;

RESET_PASSWORDプロシージャ

このプロシージャは、現在のワークスペースについて特定のユーザー名のパスワードを変更する場合に使用します。このプロシージャは、現在のワークスペースでp_user_nameのパスワードをp_new_passwordに変更します。p_change_password_on_first_useがTRUEの場合、ユーザーは次のログイン時にパスワードを変更する必要があります。

構文

APEX_UTIL.RESET_PASSWORD (
p_user_name      IN VARCHAR2 DEFAULT WWW_FLOW_SECURITY.G_USER,
p_old_password   IN VARCHAR2 DEFAULT NULL,
p_new_password   IN VARCHAR2,
p_change_password_on_first_use IN BOOLEAN DEFAULT TRUE );

パラメータ

表26-80 RESET_PASSWORDのパラメータ

パラメータ

説明

p_user_name

パスワードを変更するユーザー。デフォルトは、Application Expressに現在ログインしているユーザーの名前です。

p_old_password

ユーザーの現行のパスワードを指定します。指定された値が現在のパスワードと一致するか、またはnullであり、PL/SQLコードのコールの所有者にAPEX_ADMINISTRATOR_ROLEがある場合、コールは成功します。値がユーザーのパスワードでない場合、エラーが発生します。

p_new_password

新しいパスワード。

p_change_password_on_first_use

TRUE (デフォルト)の場合、ユーザーは次のログイン時にパスワードを変更する必要があります。

エラーの戻り値

表26-81 RESET_PASSWORDのパラメータ

エラー

説明

INVALID_CREDENTIALS

p_user_nameがp_old_passwordと一致しない場合に発生します。

APEX.AUTHENTICATION.LOGIN_THROTTLE.COUNTER

ログイン・スロットルで認証が妨げられたことを示します。

internal error

p_old_passwordがNULLで、コール元にAPEX_ADMINISTRATOR_ROLEがない場合に発生します。

internal error

コール元が有効なワークスペース・スキーマでないことを示します。

例

この例では、現在ログインしているユーザーのパスワードを新しいパスワードに変更します。

apex_util.reset_password (
p_old_password => :P111_OLD_PASSWORD,
p_new_password => :P111_NEW_PASSWORD );

RESET_PWプロシージャ

このプロシージャは、指定したユーザーのパスワードを再設定し、そのパスワードをメッセージとして現行のワークスペース内の指定したアカウントのアドレスに電子メールを送信します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.RESET_PW(
p_user IN VARCHAR2,
p_msg  IN VARCHAR2);

パラメータ

表26-82 RESET_PWのパラメータ

パラメータ

説明

p_user

ユーザー・アカウントのユーザー名

p_msg

ユーザーに電子メール送信するメッセージ・テキスト

例

次の例に、RESET_PWプロシージャを使用してユーザーFRANKのパスワードをリセットする方法を示します。

BEGIN
APEX_UTIL.RESET_PW(
p_user => 'FRANK',
p_msg => 'Contact help desk at 555-1212 with questions');
END;

参照:
「CHANGE_CURRENT_USER_PWプロシージャ」

SAVEKEY_NUMファンクション

このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_num)を、ファンクションKEYVAL_NUMを使用して取得できるように設定します。

構文

APEX_UTIL.SAVEKEY_NUM(
p_val IN NUMBER)
RETURN NUMBER;

パラメータ

表26-83 SAVEKEY_NUMのパラメータ

パラメータ

説明

p_val

保存する数値

例

次の例に、SAVEKEY_NUMファンクションを使用して、wwv_flow_utilities.g_val_numパッケージ変数の値を10に設定する方法を示します。

DECLARE
VAL NUMBER;
BEGIN
VAL := APEX_UTIL.SAVEKEY_NUM(p_val => 10);
END;

参照:
「KEYVAL_NUMファンクション」

SAVEKEY_VC2ファンクション

このファンクションは、パッケージ変数(wwv_flow_utilities.g_val_vc2)を、ファンクションKEYVAL_VC2を使用して取得できるように設定します。

構文

APEX_UTIL.SAVEKEY_VC2(
p_val IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-84 SAVEKEY_VC2のパラメータ

パラメータ

説明

p_val

保存するVARCHAR2の値

例

次の例に、SAVEKEY_VC2ファンクションを使用して、wwv_flow_utilities.g_val_vc2パッケージ変数の値を'XXX'に設定する方法を示します。

DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.SAVEKEY_VC2(p_val => 'XXX');
END;

参照:
「KEYVAL_VC2ファンクション」

SET_ATTRIBUTEプロシージャ

このプロシージャは、Application Expressアカウント表内のユーザーのいずれかの属性値の値(1から10)を設定します。

構文

APEX_UTIL.SET_ATTRIBUTE(
p_userid           IN NUMBER,
p_attribute_number IN NUMBER,
p_attribute_value  IN VARCHAR2);

パラメータ

表26-85 SET_ATTRIBUTEのパラメータ

パラメータ

説明

p_userid

ユーザー・アカウントの数値のID

p_attribute_number

ユーザー・レコードの属性番号(1から10)

p_attribute_value

ユーザー・レコードに設定する、p_attribute_numberで指定した属性の値

例

次の例に、SET_ATTRIBUTEプロシージャを使用して、値'foo'を指定してユーザーFRANKに対して番号1の属性を設定する方法を示します。

DECLARE
VAL VARCHAR2(4000);
BEGIN
APEX_UTIL.SET_ATTRIBUTE (
p_userid => apex_util.get_user_id(p_username => 'FRANK'),
p_attribute_number => 1,
p_attribute_value => 'foo');
END;

参照:
「GET_ATTRIBUTEファンクション」

SET_AUTHENTICATION_RESULTプロシージャ

このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。

参照:
『Oracle Application Express管理ガイド』の「ワークスペース内のアクティビティの監視」

構文

APEX_UTIL.SET_AUTHENTICATION_RESULT(
p_code IN NUMBER);

パラメータ

表26-86 SET_AUTHENTICATION_RESULTのパラメータ

パラメータ

説明

p_code

開発者が選択するすべての数値。このプロシージャを使用してセッションでこの値が設定された後、APEX_UTIL.GET_AUTHENTICATION_RESULTファンクションを使用して取得できます。

例

このプロシージャを使用する1つの方法に、アプリケーション認証スキームにプロシージャを含める方法があります。この例は、テキストおよび数値ステータス値がどのようにロギング用に登録できるかについて説明します。この例では、資格証明の検証は実行されません。テキストおよび数値ステータス値がどのようにロギング用に登録できるかについてのみ説明します。このプロシージャを使用するステータス設定は、ワークスペースおよびサイト管理者に対して使用可能であるこのビューのapex_user_access_logビューおよびレポートに表示されることに注意してください。

CREATE OR REPLACE FUNCTION MY_AUTH(
p_username IN VARCHAR2,
p_password IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
APEX_UTIL.SET_CUSTOM_AUTH_STATUS(p_status=>'User:'||p_username||' is back.');
IF UPPER(p_username) = 'GOOD' THEN
APEX_UTIL.SET_AUTHENTICATION_RESULT(24567);
RETURN TRUE;
ELSE
APEX_UTIL.SET_AUTHENTICATION_RESULT(-666);
RETURN FALSE;
END IF;
END;

参照:
「GET_AUTHENTICATION_RESULTファンクション」および「SET_CUSTOM_AUTH_STATUSプロシージャ」

SET_BUILD_OPTION_STATUSプロシージャ

このプロシージャは、指定されたアプリケーションのビルド・オプションのステータスを変更します。

構文

apex_util.set_build_option_status(p_application_id IN NUMBER,
p_id IN NUMBER,
p_build_status IN VARCHAR2);

パラメータ

表26-87 SET_BUILD_OPTION_STATUSのパラメータ

パラメータ

説明

p_application_id

共有コンポーネントの下にビルド・オプションを所有するアプリケーションのID。

p_id

アプリケーションのビルド・オプションのID。

p_build_status

ビルド・オプションの新しいステータス。可能な値は、INCLUDEおよびEXCLUDE(いずれも大文字)です。

例

次の例に、SET_BUILD_OPTION_STATUSプロシージャを使用して、ビルド・オプションの現在のステータスを変更する方法を示します。

BEGIN
APEX_UTIL.SET_BUILD_OPTION_STATUS(
P_APPLICATION_ID => 101,
P_ID => 245935500311121039, P_BUILD_STATUS=>'INCLUDE');

END;

SET_CURRENT_THEME_STYLEプロシージャ

このプロシージャは、アプリケーションにユーザー・インタフェースのテーマ・スタイルを設定します。たとえば、現在のテーマで使用できるテーマ・スタイルが複数ある場合、このプロシージャを使用してアプリケーションのテーマ・スタイルを変更できます。

構文

APEX_UTIL. SET_CURRENT_THEME_STYLE(
p_theme_number IN NUMBER,
p_theme_style_id IN NUMBER,

);

パラメータ

表26-88 SET_CURRENT_THEME_STYLEのパラメータ

パラメータ

説明

p_theme_number

アプリケーションの現在のテーマ数。これは、APEX_APPLICATION_THEMESビューから取得できます。

p_theme_style_id

テーマ・スタイルの数値ID。アプリケーションで使用できるテーマ・スタイルはAPEX_APPLICATION_THEME_STYLESビューから取得できます。

例

次の例に、SET_CURRENT_THEME_STYLEプロシージャを使用して、現在のアプリケーション・デスクトップのテーマ・スタイルをBlueに設定する方法を示します。

DECLARE
l_current_theme_number number;
l_theme_style_id       number;

BEGIN
select theme_number
into l_current_theme_number
from apex_application_themes
where application_id = :app_id
and ui_type_name   = 'DESKTOP'
and is_current = 'Yes';

select s.theme_style_id
into l_new_theme_style_id
from apex_application_theme_styles s, apex_application_themes t
where s.application_id = t.application_id
and s.theme_number = t.theme_number
and s.application_id = :app_id
and t.ui_type_name   = 'DESKTOP'
and t.is_current = 'Yes'
and s.name = 'Blue';

if l_current_theme_number is not null and l_new_theme_style_id is not null then
APEX_UTIL. SET_CURRENT_THEME_STYLE(
p_theme_number   => l_current_theme_number,
p_theme_style_id => l_new_theme_style_id,
);

end if;

END;

SET_CUSTOM_AUTH_STATUSプロシージャ

このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。

参照:
『Oracle Application Express管理ガイド』の「ワークスペース内のアクティビティの監視」

構文

APEX_UTIL.SET_CUSTOM_AUTH_STATUS(
p_status  IN VARCHAR2);

パラメータ

表26-89 SET_CUSTOM_AUTH_STATUSのパラメータ

パラメータ

説明

p_status

認証試行の結果を示す開発者が選択したすべてのテキスト(最大4,000字)

例

SET_CUSTOM_AUTH_STATUSプロシージャを使用する1つの方法に、アプリケーション認証スキームをプロシージャに含める方法があります。この例は、テキストおよび数値ステータス値がどのようにロギング用に登録できるかについて説明します。資格証明の認証は実行されないことに注意してください。このプロシージャを使用するステータス設定は、ワークスペースおよびサイト管理者に対して使用可能なこのビューのapex_user_access_logビューおよびレポートに表示されます。

CREATE OR REPLACE FUNCTION MY_AUTH(
p_username IN VARCHAR2,
p_password IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
APEX_UTIL.SET_CUSTOM_AUTH_STATUS(p_status=>'User:'||p_username||' is back.');
IF UPPER(p_username) = 'GOOD' THEN
APEX_UTIL.SET_AUTHENTICATION_RESULT(24567);
RETURN TRUE;
ELSE
APEX_UTIL.SET_AUTHENTICATION_RESULT(-666);
RETURN FALSE;
END IF;
END;

参照:
「SET_AUTHENTICATION_RESULTプロシージャ」および「GET_AUTHENTICATION_RESULTファンクション」

SET_EDITIONプロシージャ

このプロシージャは、現在のページ・ビューまたはページ送信で解析されたすべてのアプリケーションSQLで使用されるエディションの名前を設定します。

構文

APEX_UTIL.SET_EDITION(
p_edition IN VARCHAR2);

パラメータ

表26-90 SET_EDITIONパラメータ

パラメータ

説明

p_edition

エディション名。

例

次の例は、SET_EDITIONプロシージャの使用方法を示しています。現在のページ・ビューのデータベース・セッションのエディション名を設定します。

BEGIN
APEX_UTIL.SET_EDITION( P_EDITION => 'Edition1' );
END;

注意:
エディション・ベースの再定義のサポートは、バージョン11.2.0.1以上のデータベースでのみ使用可能です。

SET_EMAILプロシージャ

このプロシージャは、新しい電子メール・アドレスを使用してユーザー・アカウントを更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_EMAIL(
p_userid IN NUMBER,
p_email  IN VARCHAR2);

パラメータ

表26-91 SET_EMAILのパラメータ

パラメータ

説明

p_userid

ユーザー・アカウントの数値のID

p_email

ユーザー・アカウントに保存する電子メール・アドレス

例

次の例に、SET_EMAILプロシージャを使用して、EMAILの値をユーザーFRANKの'frank.scott@somewhere.com'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_EMAIL(
p_userid  => APEX_UTIL.GET_USER_ID('FRANK'),
p_email   => 'frank.scott@somewhere.com');
END;

参照:
「GET_EMAILファンクション」および「GET_USER_IDファンクション」

SET_FIRST_NAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいFIRST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_FIRST_NAME(
p_userid      IN NUMBER,
p_first_name  IN VARCHAR2);

パラメータ

表26-92 SET_FIRST_NAMEのパラメータ

パラメータ

説明

p_userid

ユーザー・アカウントの数値のID

p_first_name

ユーザー・アカウントに保存するFIRST_NAME値

例

次の例に、SET_FIRST_NAMEプロシージャを使用して、FIRST_NAMEの値をユーザーFRANKの'FRANK'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_FIRST_NAME(
p_userid       => APEX_UTIL.GET_USER_ID('FRANK'),
p_first_name   => 'FRANK');
END;

参照:
「GET_FIRST_NAMEファンクション」および「GET_USER_IDファンクション」

SET_GROUP_GROUP_GRANTSプロシージャ

このプロシージャは、指定されたグループのグループ権限付与を変更します。

構文

APEX_UTIL.SET_GROUP_GROUP_GRANTS (
p_group_name IN VARCHAR2,
p_granted_group_names IN wwv_flow_t_varchar2 );

パラメータ

表26-93 SET_GROUP_GROUP_GRANTSプロシージャのパラメータ

パラメータ

説明

p_group_name

ターゲット・グループ名。

p_granted_group_names

p_group_nameに付与するグループの名前。

例

この例では、3つのグループ(ACCTS_PAY、ACCTS_REC、MANAGER)を作成した後、ACCTS_PAYおよびACCTS_RECをMANAGERに付与します。

apex_util.create_user_group (
p_group_name => 'ACCTS_PAY' );
apex_util.create_user_group (
p_group_name => 'ACCTS_REC' );
apex_util.create_user_group (
p_group_name => 'MANAGER' );
apex_util.set_group_group_grants (
p_group_name => 'MANAGER',
p_granted_group_names => apex_t_varchar2('ACCTS_PAY', 'ACCTS_REC') );

SET_GROUP_USER_GRANTSプロシージャ

このプロシージャは、指定されたユーザーのグループ権限付与を変更します。

構文

APEX_UTIL.SET_GROUP_USER_GRANTS (
p_user_name IN VARCHAR2,
p_granted_group_names IN wwv_flow_t_varchar2 );

パラメータ

表26-94 SET_GROUP_USER_GRANTSプロシージャのパラメータ

パラメータ

説明

p_user_name

ターゲット・ユーザー名。

p_granted_group_names

p_user_nameに付与するグループの名前。

例

この例では、ユーザー・グループ(MANAGER)およびユーザー(Example User)を作成した後、MANAGERをExample Userに付与します。

apex_util.create_user_group (
p_group_name => 'MANAGER' );
apex_util.create_user (
p_user_name => 'Example User',
p_web_password => 1_random_password );
-- grant MANAGER to Example User
apex_util.set_group_user_grants (
p_user_name => 'Example User',
p_granted_group_names => apex_t_varchar2('MANAGER') );

SET_LAST_NAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいLAST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_LAST_NAME(
p_userid      IN NUMBER,
p_last_name   IN VARCHAR2);

パラメータ

表26-95 SET_LAST_NAMEのパラメータ

パラメータ

説明

p_userid

ユーザー・アカウントの数値のID

p_last_name

ユーザー・アカウントに保存するLAST_NAME値

例

次の例に、SET_LAST_NAMEプロシージャを使用して、LAST_NAMEの値をユーザーFRANKの'SMITH'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_LAST_NAME(
p_userid       => APEX_UTIL.GET_USER_ID('FRANK'),
p_last_name   => 'SMITH');
END;

参照:
「GET_LAST_NAMEファンクション」および「GET_USER_IDファンクション」

SET_PREFERENCEプロシージャ

このプロシージャは、ユーザーのカレント・セッション以降に保持されるプリファレンスを設定します。

構文

APEX_UTIL.SET_PREFERENCE (
p_preference   IN    VARCHAR2 DEFAULT NULL,
p_value        IN    VARCHAR2 DEFAULT NULL,
p_user         IN    VARCHAR2 DEFAULT NULL);

パラメータ

表26-96 SET_PREFERENCEのパラメータ

パラメータ

説明

p_preference

プリファレンスの名前(大/小文字の区別あり)

p_value

プリファレンスの値

p_user

プリファレンスが設定されるユーザー

例

次の例に、SET_PREFERENCEプロシージャを使用して、default_viewというプリファレンスを現在認証されているユーザーのセッションを超えて存続する値'WEEKLY'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_PREFERENCE(
p_preference => 'default_view',
p_value      => 'WEEKLY',
p_user       => :APP_USER);
END;

参照:
「GET_PREFERENCEファンクション」および「REMOVE_PREFERENCEプロシージャ」

SET_SECURITY_GROUP_IDプロシージャ

このプロシージャは、バッチ・モードでメール・パッケージを利用しやすくするために、apex_util.find_security_group_idで使用します。このプロシージャは、スキーマが複数のワークスペースに関連付けられている場合に特に便利です。たとえば、夜間ジョブで実行されるプロシージャを作成して、すべての未処理のタスクに電子メールを送信することができます。

構文

APEX_UTIL.SET_SECURITY_GROUP_ID (
p_security_group_id  IN NUMBER);

パラメータ

表26-97 SET_SECURITY_GROUP_IDパラメータ

パラメータ

説明

p_security_group_id

これは、作業中のワークスペースのセキュリティ・グループIDです。

例

この例では、過去1日にタスクを割り当てた各ユーザーにアラートを送信します。

create or replace procedure new_tasks
is
l_workspace_id      number;
l_subject           varchar2(2000);
l_body              clob;
l_body_html         clob;
begin
l_workspace_id := apex_util.find_security_group_id (p_workspace => 'PROJECTS');
apex_util.set_security_group_id (p_security_group_id => l_workspace_id);

l_body := ' ';
l_subject := 'You have new tasks';
for c1 in (select distinct(p.email_address) email_address, p.user_id
from teamsp_user_profile p, teamsp_tasks t
where p.user_id = t.assigned_to_user_id
and t.created_on > sysdate - 1
and p.email_address is not null ) loop
l_body_html := '<p />The following tasks have been added.';
for c2 in (select task_name, due_date
from teamsp_tasks
where assigned_to_user_id = c1.user_id
and created_on > sysdate - 1 ) loop
l_body_html := l_body_html || '<p />Task: '||c2.task_name||', due '||c2.due_date;
end loop;
apex_mail.send (
p_to        => c1.email_address,
p_from      => c1.email_address,
p_body      => l_body,
p_body_html => l_body_html,
p_subj      => l_subject );
end loop;
end;

SET_SESSION_HIGH_CONTRAST_OFFプロシージャ

このプロシージャは、現在のセッションのハイ・コントラスト・モードをオフにします。

構文

APEX_UTIL.SET_SESSION_HIGH_CONTRAST_OFF;

パラメータ

なし。

例

この例では、現在のセッションのハイ・コントラスト・モードはオフです。

BEGIN
apex_util.set_session_high_contrast_off;
END;

SET_SESSION_HIGH_CONTRAST_ONプロシージャ

このプロシージャは、現在のセッションのハイ・コントラスト・モードをオンにします。

構文

APEX_UTIL.SET_SESSION_HIGH_CONTRAST_ON;

パラメータ

なし。

例

この例では、現在のセッションがハイ・コントラスト・モードになります。

BEGIN
apex_util.set_session_high_contrast_on;
END;

SET_SESSION_LANGプロシージャ

このプロシージャは、Application Expressのカレント・セッションで、現在のユーザーに使用する言語を設定します。言語は有効なIANA言語名である必要があります。

構文

APEX_UTIL.SET_SESSION_LANG(
p_lang IN VARCHAR2);

パラメータ

表26-98 SET_SESSION_LANGパラメータ

パラメータ

説明

p_lang

これはIANA言語コードです。en、de、de-at、zh-cn、pt-brなどがあります。

例

この例は、SET_SESSION_LANGプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーの言語を設定します。

BEGIN
APEX_UTIL.SET_SESSION_LANG( P_LANG => 'en');
END;

SET_SESSION_LIFETIME_SECONDSプロシージャ

このプロシージャは、現在のセッションの「最大セッションの長さ」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてセッションの存続期間を動的に短縮また延長できます。

構文

APEX_UTIL.SET_SESSION_LIFETIME_SECONDS (
p_seconds  IN    NUMEBER,
p_scope    IN    VARCHAR2 DEFAULT 'SESSION');

パラメータ

表26-99 SET_SESSION_LIFETIME_SECONDSのパラメータ

パラメータ

説明

p_seconds

このアプリケーションで使用されるセッションが存在可能な秒数を示す正の整数。

p_scope

このパラメータは廃止されています。このプロシージャは常に、セッション全体の存続期間を設定します。

例1

次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を7200秒(2時間)に設定する方法を示します。

p_scope入力パラメータで'SESSION'のデフォルト値が使用できるようになったため、次の例はカレント・セッションを使用するすべてのアプリケーションで実際に利用できます。複数のApplication Expressアプリケーションで共通の認証スキームが使用され、それらのアプリケーションが共通のセッションでスイートとして動作するように設計されている場合は、このユースケースが最も一般的なユースケースとなります。

BEGIN
APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 7200);
END;

例2

次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を3600秒(1時間)に設定する方法を示します。

BEGIN
APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 3600);
END;

SET_SESSION_MAX_IDLE_SECONDSプロシージャ

カレント・セッションに対するカレント・アプリケーションの「最大セッション・アイドル時間」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてページ・リクエスト間で許容される最大アイドル時間を動的に短縮または延長できます。

構文

APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS (
p_seconds  IN    NUMEBER,
p_scope    IN    VARCHAR2 DEFAULT 'SESSION');

パラメータ

表26-100 SET_SESSION_MAX_IDLE_SECONDSのパラメータ

パラメータ

説明

p_seconds

ページ・リクエスト間で許容される秒数を示す正の整数。

p_scope

このパラメータは廃止されています。このプロシージャは常に、セッション全体の存続期間を設定します。

例1

次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を1200秒(20分)に設定する方法を示します。次の例は、カレント・セッションを使用するすべてのアプリケーションに適用されます。

BEGIN
APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 1200);
END;

例2

次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を600秒(10分)に設定する方法を示します。次の例は、カレント・セッションを使用するすべてのアプリケーションに適用されます。

BEGIN
APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 600);
END;

SET_SESSION_SCREEN_READER_OFFプロシージャ

このプロシージャは、現在のセッションのスクリーン・リーダー・モードをオフにします。

構文

APEX_UTIL.SET_SESSION_SCREEN_READER_OFF;

パラメータ

なし

例

この例では、カレント・セッションが標準モードになります。

BEGIN
apex_util.set_session_screen_reader_off;
END;

SET_SESSION_SCREEN_READER_ONプロシージャ

このプロシージャは、カレント・セッションをスクリーン・リーダー・モードにします。

構文

APEX_UTIL.SET_SESSION_SCREEN_READER_ON;

パラメータ

なし

例

この例では、カレント・セッションがスクリーン・リーダー・モードになります。

BEGIN
apex_util.set_session_screen_reader_on;
END;

SET_SESSION_STATEプロシージャ

このプロシージャは、現在のOracle Application Expressセッションのセッション・ステートを設定します。

構文

APEX_UTIL.SET_SESSION_STATE (
p_name     IN    VARCHAR2 DEFAULT NULL,
p_value    IN    VARCHAR2 DEFAULT NULL);
p_commit   IN    BOOLEAN  DEFAULT TRUE);

パラメータ

表26-101 SET_SESSION_STATEのパラメータ

パラメータ

説明

p_name

セッション・ステートを設定する、アプリケーション・レベルまたはページ・レベルのアイテムの名前

p_value

設定するセッション・ステートの値

p_commit

TRUE (デフォルト)の場合、セッション・ステートの変更後にコミットします。FALSEの場合またはセッション・ステートの既存値がp_valueと同じ場合、コミットは発行されません。

例

次の例に、SET_SESSION_STATEプロシージャを使用して、アイテムmy_itemの値をカレント・セッションの'myvalue'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_SESSION_STATE('my_item','myvalue');
END;

参照:
「GET_SESSION_STATEファンクション」、「GET_NUMERIC_SESSION_STATEファンクション」および『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「セッション・ステートの管理の理解」

SET_SESSION_TERRITORYプロシージャ

このプロシージャは、Application Expressのカレント・セッションで、現在のユーザーに使用する地域を設定します。地域名は有効なOracle地域である必要があります。

構文

APEX_UTIL.SET_SESSION_TERRITORY(
p_territory IN VARCHAR2);

パラメータ

表26-102 SET_SESSION_TERRITORYのパラメータ

パラメータ

説明

p_territory

有効なOracle地域名。AMERICA、UNITED KINGDOM、ISRAEL、AUSTRIA、UNITED ARAB EMIRATESなどがあります。

例

この例は、SET_SESSION_TERRITORYプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーの地域を設定します。

BEGIN
APEX_UTIL.SET_SESSION_TERRITORY( P_TERRITORY => 'UNITED KINGDOM');
END;

SET_SESSION_TIME_ZONEプロシージャ

このプロシージャは、Application Expressのカレント・セッションにおける現在のユーザーに使用するタイムゾーンを設定します。

構文

APEX_UTIL.SET_SESSION_TIME_ZONE(
p_time_zone IN VARCHAR2);

パラメータ

表26-103 SET_SESSION_TIME_ZONEパラメータ

パラメータ

説明

p_timezone

時間と分で構成されるタイムゾーン値。+09:00、04:00、-05:00などがあります。

例

この例は、SET_SESSION_TIME_ZONEプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーのタイムゾーンを設定します。

BEGIN
APEX_UTIL.SET_SESSION_TIME_ZONE( P_TIME_ZONE => '-05:00');
END;

SET_USERNAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいUSER_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_USERNAME(
p_userid   IN NUMBER,
p_username IN VARCHAR2);

パラメータ

表26-104 SET_USERNAMEのパラメータ

パラメータ

説明

p_userid

ユーザー・アカウントの数値のID

p_username

ユーザー・アカウントに保存するUSER_NAME値

例

次の例に、SET_USERNAMEプロシージャを使用して、USERNAMEの値をユーザーFRANKの'USER-XRAY'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_USERNAME(
p_userid     => APEX_UTIL.GET_USER_ID('FRANK'),
P_username   => 'USER-XRAY');
END;

参照:
「GET_USERNAMEファンクション」および「GET_USER_IDファンクション」

SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャ

このプロシージャは、モードのオンまたはオフを切り替える現在のページへのリンクを表示します。たとえば、標準モードの場合、このファンクションによって、クリックするとハイ・コントラスト・モードをオンに切り替えるリンクが表示されます。

構文

APEX_UTIL.SHOW_HIGH_CONTRAST_MODE_TOGGLE (
p_on_message  in varchar2 default null,
p_off_message in varchar2 default null);

パラメータ

表26-105 SHOW_HIGH_CONTRAST_MODE_TOGGLEのパラメータ

パラメータ

説明

p_on_message

標準モードの場合に、ハイ・コントラスト・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオンに設定」テキストが表示されます。

p_off_message

ハイ・コントラスト・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオフに設定」テキストが表示されます。

例

標準モードで実行中の場合、このプロシージャによって「ハイ・コントラスト・モードをオンに設定」というリンクが表示され、リンクをクリックすると、現在のページがリフレッシュされ、ハイ・コントラスト・モードがオンになります。ハイ・コントラスト・モードで実行中の場合、リンク「ハイ・コントラスト・モードをオフに設定」が表示され、リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
apex_util.show_high_contrast_mode_toggle;
END;

参照:
GET_HIGH_CONTRAST_MODE_TOGGLEファンクション

注意:
また、このトグルに戻されるデフォルトのリンク・テキストを変更するための、アプリケーション・レベルでオーバーライドできる翻訳可能なシステム・メッセージが2つあります。これには次のものがあります。

- APEX.SET_HIGH_CONTRAST_MODE_OFF - デフォルト・テキスト = ハイ・コントラスト・モードをオフに設定

- APEX.SET_HIGH_CONTRAST_MODE_ON - デフォルト・テキスト = ハイ・コントラスト・モードをオンに設定

SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ

このプロシージャは、モードのオンまたはオフを切り替える現在のページへのリンクを表示します。たとえば、標準モードの場合、このファンクションによって、クリックするとスクリーン・リーダー・モードをオンに切り替えるリンクが表示されます。

構文

APEX_UTIL.SHOW_SCREEN_READER_MODE_TOGGLE (
p_on_message  IN VARCHAR2 DEFAULT NULL,
p_off_message IN VARCHAR2 DEFAULT NULL)

パラメータ

表26-106 SHOW_SCREEN_READER_MODE_TOGGLEパラメータ

パラメータ

説明

p_on_message

標準モードの場合に、スクリーン・リーダー・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオンに設定」テキストが表示されます。

p_off_message

スクリーン・リーダー・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオフに設定」テキストが表示されます。

例

標準モードで実行中の場合、このプロシージャによって「スクリーン・リーダー・モードをオンに設定」というリンクが表示され、リンクをクリックすると、現在のページがリフレッシュされ、スクリーン・リーダー・モードがオンになります。スクリーン・リーダー・モードで実行中の場合、リンク'Set Screen Reader Mode Off'が表示されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
apex_util.show_screen_reader_mode_toggle;
END;

STRING_TO_TABLEファンクション

文字列を指定すると、このファンクションによって型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列が戻されます。この配列はVARCHAR2(32767)表です。

構文

APEX_UTIL.STRING_TO_TABLE (
p_string       IN VARCHAR2,
p_separator    IN VARCHAR2 DEFAULT ':')
RETURN APEX_APPLICATION_GLOBAL.VC_ARR2;

パラメータ

表26-107 STRING_TO_TABLEのパラメータ

パラメータ

説明

p_string

型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表に変換される文字列

p_separator

文字列のセパレータ。(デフォルトはコロン)

例

次の例に、STRING_TO_TABLEファンクションを使用する方法を示します。このファンクションは、p_stringパラメータの文字列'One:Two:Three'を渡され、型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列を戻します。この配列は3つの要素を含み、位置1の要素には値'One'、位置2の要素には値'Two'、位置3の要素には値'Three'が含まれています。次に、このファンクションは、HTP.Pファンクション・コールを使用して出力します。

DECLARE
l_vc_arr2    APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE('One:Two:Three');
FOR z IN 1..l_vc_arr2.count LOOP
htp.p(l_vc_arr2(z));
END LOOP;
END;

参照:
「TABLE_TO_STRINGファンクション」

STRONG_PASSWORD_CHECKプロシージャ

このプロシージャは、提示されたパスワードがOracle Application Expressサイト管理者によって定義されたパスワード強度要件を満たすかどうかに基づいて、Boolean OUT値を戻します。

構文

APEX_UTIL.STRONG_PASSWORD_CHECK(
p_username                    IN  VARCHAR2,
p_password                    IN  VARCHAR2,
p_old_password                IN  VARCHAR2,
p_workspace_name              IN  VARCHAR2,
p_use_strong_rules            IN  BOOLEAN,
p_min_length_err              OUT BOOLEAN,
p_new_differs_by_err          OUT BOOLEAN,
p_one_alpha_err               OUT BOOLEAN,
p_one_numeric_err             OUT BOOLEAN,
p_one_punctuation_err         OUT BOOLEAN,
p_one_upper_err               OUT BOOLEAN,
p_one_lower_err               OUT BOOLEAN,
p_not_like_username_err       OUT BOOLEAN,
p_not_like_workspace_name_err OUT BOOLEAN,
p_not_like_words_err          OUT BOOLEAN,
p_not_reusable_err            OUT BOOLEAN);

パラメータ

表26-108 STRONG_PASSWORD_CHECKのパラメータ

パラメータ

説明

p_username

現行のワークスペース内のアカウントを識別するユーザー名

p_password

パスワードの強度ルールを基準にチェックするパスワード

p_old_password

アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます)

p_workspace_name

現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます)

p_use_strong_rules

このAPIをコールする場合はFALSEを渡します

p_min_length_err

パスワードが最小の長さの要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_new_differs_by_err

パスワードが「新しいパスワードは古いパスワードと異なること」という要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_one_alpha_err

パスワードがアルファベットを1文字以上含むことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_one_numeric_err

パスワードが数字を1文字以上含むことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_one_punctuation_err

パスワードが句読記号を1文字以上含むことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_one_upper_err

パスワードが大文字を1文字以上含むことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_one_lower_err

パスワードが小文字を1文字以上含むことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_not_like_username_err

パスワードがユーザー名を含まないことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_not_like_workspace_name_err

パスワードがワークスペース名を含まないことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_not_like_words_err

パスワードが指定された単純な単語を含まないことという要件を満たすかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

p_not_reusable_err

パスワードがパスワード履歴ルールに基づいて再利用できるかどうかに基づいて、TRUEまたはFALSEの結果が戻ります

例

次の例に、STRONG_PASSWORD_CHECKプロシージャを使用する方法を示します。このプロシージャは、ユーザーSOMEBODYの新しいパスワードfooが、Oracle Application Expressのサイト管理者によって定義されたすべてのパスワードの強度要件を満たしていることをチェックします。いずれかのチェックが失敗した場合(関連するOUTパラメータがTRUEを戻した場合)、この例では、関連メッセージが出力されます。たとえば、Oracle Application Expressのサイト管理者がパスワードには1つ以上の数字が必要であると定義した場合にパスワードfooがチェックされると、p_one_numeric_err OUTパラメータによってTRUEが戻され、「Password must contain at least one numeric character」というメッセージが出力されます。

DECLARE
l_username                    varchar2(30);
l_password                    varchar2(30);
l_old_password                varchar2(30);
l_workspace_name              varchar2(30);
l_min_length_err              boolean;
l_new_differs_by_err          boolean;
l_one_alpha_err               boolean;
l_one_numeric_err             boolean;
l_one_punctuation_err         boolean;
l_one_upper_err               boolean;
l_one_lower_err               boolean;
l_not_like_username_err       boolean;
l_not_like_workspace_name_err boolean;
l_not_like_words_err          boolean;
l_not_reusable_err            boolean;
l_password_history_days       pls_integer;
BEGIN
l_username := 'SOMEBODY';
l_password := 'foo';
l_old_password := 'foo';
l_workspace_name := 'XYX_WS';
l_password_history_days :=
apex_instance_admin.get_parameter ('PASSWORD_HISTORY_DAYS');

APEX_UTIL.STRONG_PASSWORD_CHECK(
p_username                    => l_username,
p_password                    => l_password,
p_old_password                => l_old_password,
p_workspace_name              => l_workspace_name,
p_use_strong_rules            => false,
p_min_length_err              => l_min_length_err,
p_new_differs_by_err          => l_new_differs_by_err,
p_one_alpha_err               => l_one_alpha_err,
p_one_numeric_err             => l_one_numeric_err,
p_one_punctuation_err         => l_one_punctuation_err,
p_one_upper_err               => l_one_upper_err,
p_one_lower_err               => l_one_lower_err,
p_not_like_username_err       => l_not_like_username_err,
p_not_like_workspace_name_err => l_not_like_workspace_name_err,
p_not_like_words_err          => l_not_like_words_err,
p_not_reusable_err            => l_not_reusable_err);

IF l_min_length_err THEN
htp.p('Password is too short');
END IF;

IF l_new_differs_by_err THEN
htp.p('Password is too similar to the old password');
END IF;

IF l_one_alpha_err THEN
htp.p('Password must contain at least one alphabetic character');
END IF;

IF l_one_numeric_err THEN
htp.p('Password  must contain at least one numeric character');
END IF;

IF l_one_punctuation_err THEN
htp.p('Password  must contain at least one punctuation character');
END IF;

IF l_one_upper_err THEN
htp.p('Password must contain at least one upper-case character');
END IF;

IF l_one_lower_err THEN
htp.p('Password must contain at least one lower-case character');
END IF;

IF l_not_like_username_err THEN
htp.p('Password may not contain the username');
END IF;

IF l_not_like_workspace_name_err THEN
htp.p('Password may not contain the workspace name');
END IF;

IF l_not_like_words_err THEN
htp.p('Password contains one or more prohibited common words');
END IF;

IF l_not_reusable_err THEN
htp.p('Password cannot be used because it has been used for the account within the last '||l_password_history_days||' days.');
END IF;
END;

参照:
『Oracle Application Express管理ガイド』の強力なパスワード・ポリシーの作成に関する項

STRONG_PASSWORD_VALIDATIONファンクション

このファンクションは、提示されたパスワードがOracle Application Expressサイト管理者によって定義されたパスワード強度要件を満たすかどうかに基づいて、結果を書式化されたHTMLをVARCHAR2の結果で戻します。

構文

FUNCTION STRONG_PASSWORD_VALIDATION(
p_username                    IN  VARCHAR2,
p_password                    IN  VARCHAR2,
P_OLD_PASSWORD                IN  VARCHAR2 DEFAULT NULL,
P_WORKSPACE_NAME              IN  VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-109 STRONG_PASSWORD_VALIDATIONのパラメータ

パラメータ

説明

p_username

現行のワークスペース内のアカウントを識別するユーザー名

p_password

パスワードの強度ルールを基準にチェックするパスワード

p_old_password

アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます)

p_workspace_name

現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます)

例

次の例に、STRONG_PASSWORD_VALIDATIONプロシージャを使用する方法を示します。このプロシージャは、ユーザーSOMEBODYの新しいパスワードfooが、Oracle Application Expressのサイト管理者によって定義されたすべてのパスワードの強度要件を満たしていることをチェックします。いずれかのチェックが失敗した場合、この例では、新しいパスワードが要件を満たすことに失敗した詳細を示す書式設定されたHTMLが出力されます。

DECLARE
l_username                    varchar2(30);
l_password                    varchar2(30);
l_old_password                varchar2(30);
l_workspace_name              varchar2(30);
BEGIN
l_username := 'SOMEBODY';
l_password := 'foo';
l_old_password := 'foo';
l_workspace_name := 'XYX_WS';

HTP.P(APEX_UTIL.STRONG_PASSWORD_VALIDATION(
p_username                    => l_username,
p_password                    => l_password,
p_old_password                => l_old_password,
p_workspace_name              => l_workspace_name));
END;

SUBMIT_FEEDBACKプロシージャ

このプロシージャを使用すると、フィードバックというタイプのページを作成して生成できるページを使用しなくても、フィードバックを送信するプロシージャを記述できます。

構文

APEX_UTIL.SUBMIT_FEEDBACK (
p_comment          IN VARCHAR2 DEFAULT NULL,
p_type             IN NUMBER   DEFAULT '1',
p_application_id   IN VARCHAR2 DEFAULT NULL,
p_page_id          IN VARCHAR2 DEFAULT NULL,
p_email            IN VARCHAR2 DEFAULT NULL,
p_screen_width     IN VARCHAR2 DEFAULT NULL,
p_screen_height    IN VARCHAR2 DEFAULT NULL,
p_attribute_01     IN VARCHAR2 DEFAULT NULL,
p_attribute_02     IN VARCHAR2 DEFAULT NULL,
p_attribute_03     IN VARCHAR2 DEFAULT NULL,
p_attribute_04     IN VARCHAR2 DEFAULT NULL,
p_attribute_05     IN VARCHAR2 DEFAULT NULL,
p_attribute_06     IN VARCHAR2 DEFAULT NULL,
p_attribute_07     IN VARCHAR2 DEFAULT NULL,
p_attribute_08     IN VARCHAR2 DEFAULT NULL,
p_label_01         IN VARCHAR2 DEFAULT NULL,
p_label_02         IN VARCHAR2 DEFAULT NULLl,
p_label_03         IN VARCHAR2 DEFAULT NULL,
p_label_04         IN VARCHAR2 DEFAULT NULL,
p_label_05         IN VARCHAR2 DEFAULT NULL,
p_label_06         IN VARCHAR2 DEFAULT NULL,
p_label_07         IN VARCHAR2 DEFAULT NULL,
p_label_08         IN VARCHAR2 DEFAULT NULL);

パラメータ

表26-110 SUBMIT_FEEDBACKパラメータ

パラメータ

説明

p_comment

送信するコメント。

p_type

フィードバックのタイプ(1は一般的なコメント、2は拡張リクエスト、3は不具合)

p_application_id

フィードバックに関連するアプリケーションのID

p_page_id

フィードバックに関連するページのID

p_email

フィードバックを提供するユーザーの電子メール

p_screen_width

フィードバックを提供したときの画面の幅

p_screen_height

フィードバックを提供したときの画面の高さ

p_attribute_01

フィードバックを収集するためのカスタム属性

p_attribute_02

フィードバックを収集するためのカスタム属性

p_attribute_03

フィードバックを収集するためのカスタム属性

p_attribute_04

フィードバックを収集するためのカスタム属性

p_attribute_05

フィードバックを収集するためのカスタム属性

p_attribute_06

フィードバックを収集するためのカスタム属性

p_attribute_07

フィードバックを収集するためのカスタム属性

p_attribute_08

フィードバックを収集するためのカスタム属性

p_label_01

対応するカスタム属性のラベル

p_label_02

対応するカスタム属性のラベル

p_label_03

対応するカスタム属性のラベル

p_label_04

対応するカスタム属性のラベル

p_label_05

対応するカスタム属性のラベル

p_label_06

対応するカスタム属性のラベル

p_label_07

対応するカスタム属性のラベル

p_label_08

対応するカスタム属性のラベル

例

次の例では、アプリケーション283のページ22に関する不具合を送信します。

begin
apex_util.submit_feedback (
p_comment        => 'This page does not render properly for me',
p_type           => 3,
p_application_id => 283,
p_page_id        => 22,
p_email          => 'user@xyz.corp',
p_attribute_01   => 'Charting',
p_label_01       => 'Component' );
end;
/

SUBMIT_FEEDBACK_FOLLOWUPプロシージャ

このプロシージャを使用すると、フィードバックにフォロー・アップを送信できます。

構文

APEX_UTIL.SUBMIT_FEEDBACK_FOLLOWUP (
p_feedback_id      IN NUMBER,
p_follow_up        IN VARCHAR2 DEFAULT NULL,
p_email            IN VARCHAR2 DEFAULT NULL);

パラメータ

表26-111 SUBMIT_FEEDBACK_FOLLOWUPパラメータ

パラメータ

説明

p_feedback_followup

フォロー・アップするフィードバックのID

p_follow_up

フォロー・アップのテキスト

p_email

フォロー・アップを提供するユーザーの電子メール

例

次の例では、以前に登録したフィードバックにフォロー・アップを送信します。

begin
apex_util.submit_feedback_followup (
p_feedback_id    => 12345,
p_follow_up      => 'I tried this on another instance and it does not work there either',
p_email          => 'user@xyz.corp' );
end;
/

TABLE_TO_STRINGファンクション

型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表を指定すると、このファンクションによって、指定したセパレータかデフォルトのセパレータ(コロン(:))で区切られた文字列が戻されます。

構文

APEX_UTIL.TABLE_TO_STRING (
p_table       IN     APEX_APPLICATION_GLOBAL.VC_ARR2,
p_string      IN     VARCHAR2 DEFAULT ':')
RETURN VARCHAR2;

パラメータ

表26-112 TABLE_TO_STRINGのパラメータ

パラメータ

説明

p_string

文字列のセパレータ。(デフォルトはコロン(:))

p_table

区切られた文字列に変換されるPL/SQL表

例

次のファンクションは、指定されたcust_idに関連付けられている連絡先名のカンマ区切り文字列を戻します。

create or replace function get_contacts (
p_cust_id  in  number )
return varchar2
is
l_vc_arr2   apex_application_global.vc_arr2;
l_contacts  varchar2(32000);
begin

select contact_name
bulk collect
into l_vc_arr2
from contacts
where cust_id = p_cust_id
order by contact_name;

l_contacts :=  apex_util.table_to_string (
p_table => l_vc_arr2,
p_string => ', ');

return l_contacts;

end get_contacts;

参照:
「STRING_TO_TABLEファンクション」

UNEXPIRE_END_USER_ACCOUNTプロシージャ

期限切れのエンド・ユーザー・アカウントおよび関連付けられたパスワードを使用可能にして、エンド・ユーザーが開発済アプリケーションにログインできるようにします。

構文

APEX_UTIL.UNEXPIRE_END_USER_ACCOUNT (
p_user_name IN VARCHAR2);

パラメータ

表26-113 UNEXPIRE_END_USER_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、UNEXPIRE_END_USER_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressエンド・ユーザー・アカウントを更新(有効に)します。このアクションは、開発されたアプリケーションへの認証用にエンド・ユーザーが使用するアカウントを更新します。また、ワークスペースへのログイン用に開発者または管理者が使用するアカウントも更新できます。

このプロシージャは、現行のワークスペースで管理権限を持つユーザーによって実行される必要があります。

BEGIN
FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
APEX_UTIL.UNEXPIRE_END_USER_ACCOUNT(p_user_name => c1.user_name);
htp.p('End User Account:'||c1.user_name||' is now valid.');
END LOOP;
END;

参照:
「EXPIRE_END_USER_ACCOUNTパラメータ」および「END_USER_ACCOUNT_DAYS_LEFTファンクション」

UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ

開発者およびワークスペース管理者のアカウントおよび関連付けられたパスワードを有効にして、開発者または管理者がワークスペースへログインできるようにします。

構文

APEX_UTIL.UNEXPIRE_WORKSPACE_ACCOUNT (
p_user_name IN VARCHAR2);

パラメータ

表26-114 UNEXPIRE_WORKSPACE_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、UNEXPIRE_WORKSPACE_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースのApplication Expressワークスペース管理者のアカウントを更新(有効に)します。このアクションは、開発者または管理者がワークスペースへのログインに使用するアカウントを更新し、開発されたアプリケーションへのエンド・ユーザーの認証に使用するアカウントも更新します。

このプロシージャは、現行のワークスペースで管理権限を持つユーザーによって実行される必要があります。

BEGIN
FOR c1 IN (select user_name from wwv_flow_users) loop
APEX_UTIL.UNEXPIRE_WORKSPACE_ACCOUNT(p_user_name => c1.user_name);
htp.p('Workspace Account:'||c1.user_name||' is now valid.');
END LOOP;
END;

参照:
「EXPIRE_WORKSPACE_ACCOUNTプロシージャ」および「WORKSPACE_ACCOUNT_DAYS_LEFTファンクション」

UNLOCK_ACCOUNTプロシージャ

ユーザーのアカウント・ステータスを「ロック解除済」に設定します。これは、ページ・リクエストのコンテキストで認証済ワークスペース管理者によって実行される必要があります。

構文

APEX_UTIL.UNLOCK_ACCOUNT (
p_user_name IN VARCHAR2);

パラメータ

表26-115 UNLOCK_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

ユーザー・アカウントのユーザー名

例

次の例では、UNLOCK_ACCOUNTプロシージャを使用する方法を示します。このプロシージャを使用して、現行のワークスペースでApplication Expressアカウントをロック解除します。このアクションは、管理者、開発者およびエンド・ユーザーが使用するアカウントをロック解除します。このプロシージャは、現行のワークスペースで管理権限を持つユーザーにより実行される必要があります。

BEGIN
FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
APEX_UTIL.UNLOCK_ACCOUNT(p_user_name => c1.user_name);
htp.p('End User Account:'||c1.user_name||' is now unlocked.');
END LOOP;
END;

参照:
「LOCK_ACCOUNTプロシージャ」および「GET_ACCOUNT_LOCKED_STATUSファンクション」

URL_ENCODEファンクション

特殊文字は、次のようにエンコードされます。

Special       After
Characters    Encoding
%          %25
+          %2B
space         +
.          %2E
*          %2A
?          %3F
\          %5C
/          %2F
>          %3E
<          %3C
}          %7B
{          %7D
~          %7E
[          %5B
]          %5D
'          %60
;          %3B
?          %3F
@          %40
&          %26
#          %23
|          %7C
^          %5E
:          %3A
=          %3D
$          %24

構文

APEX_UTIL.URL_ENCODE (
p_url   IN    VARCHAR2)
RETURN VARCHAR2;

パラメータ

表26-116 URL_ENCODEのパラメータ

パラメータ

説明

p_url

エンコードする文字列

例

次の例に、URL_ENCODEファンクションを使用する方法を示します。

DECLARE
l_url  VARCHAR2(255);
BEGIN
l_url := APEX_UTIL.URL_ENCODE('http://www.myurl.com?id=1&cat=foo');
END;

この例では、次のURLを使用しています。

http://www.myurl.com?id=1&cat=foo

これは、次のように戻されます。

http%3A%2F%2Fwww%2Emyurl%2Ecom%3Fid%3D1%26cat%3Dfoo

WORKSPACE_ACCOUNT_DAYS_LEFTファンクション

開発者またはワークスペース管理者アカウント・パスワードの期限が切れるまでの残りの日数を戻します。このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.WORKSPACE_ACCOUNT_DAYS_LEFT (
p_user_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

表26-117 WORKSPACE_ACCOUNT_DAYS_LEFTのパラメータ

パラメータ

説明

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、WORKSPACE_ACCOUNT_DAYS_LEFTファンクションを使用する方法を示します。現行のワークスペースでApplication Express管理者または開発者のアカウントの期限が切れるまでの残りの日数を検索するために使用できます。

DECLARE
l_days_left NUMBER;
BEGIN
FOR c1 IN (SELECT user_name from wwv_flow_users) LOOP
l_days_left := APEX_UTIL.WORKSPACE_ACCOUNT_DAYS_LEFT(p_user_name =>
c1.user_name);
htp.p('Workspace Account:'||c1.user_name||' expires in '||l_days_left||' days.');
END LOOP;
END;

参照:
「EXPIRE_WORKSPACE_ACCOUNTプロシージャ」および「UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ」

27 APEX_WEB_SERVICE

APEX_WEB_SERVICE APIを使用すると、PL/SQLを使用できるアプリケーション内の任意の場所でWebサービスと対話できるため、Application Expressと他のシステムを統合できます。APIには、SOAPおよびRESTful形式のWebサービスをコールするためのプロシージャおよびファンクションが含まれます。また、Webサービスからのレスポンスを解析し、SOAP対応のbase64エンコーディングにエンコード/デコードするファンクションが含まれます。このAPIには、APIからかWebサービス・タイプの標準プロセスを使用するかにかかわらず、WebサービスをコールするときにCookiesおよびHTTPヘッダーを管理するためのパッケージ・グローバルも含まれます。CookiesおよびHTTPヘッダーは、グローバルを移入することによってWebサービスへのコールを起動する前に設定でき、Webサービスのレスポンスから戻されたCookiesおよびHTTPヘッダーは、他のグローバルから読み取ることができます。

- APEX_WEB_SERVICE APIについて

- SOAP形式のWebサービスの起動

- RESTful形式のWebサービスの起動

- CookiesおよびHTTPヘッダーの取得

- CookiesおよびHTTPヘッダーの設定

- BLOB2CLOBBASE64ファンクション

- CLOBBASE642BLOBファンクション

- MAKE_REQUESTプロシージャ

- MAKE_REQUESTファンクション

- MAKE_REST_REQUESTファンクション

- MAKE_REST_REQUEST_Bファンクション

- PARSE_RESPONSEファンクション

- PARSE_RESPONSE_CLOBファンクション

- PARSE_XMLファンクション

- PARSE_XML_CLOBファンクション

APEX_WEB_SERVICE APIについて

APEX_WEB_SERVICE APIを使用して、Webサービスを起動し、PL/SQLを使用できるApplication Express内の任意の場所でレスポンスを調べます。

次のような場合に、APEX_WEB_SERVICE APIを使用します。

- Ajaxを使用してオンデマンド・プロセスでWebサービスを起動する場合。

- 認証スキームの一部としてWebサービスを起動する場合。

- base64でエンコードされたWebサービスにラージ・バイナリ・パラメータを渡す必要がある場合。

- 検証の一部としてWebサービスを起動する場合。

SOAP形式のWebサービスの起動

SOAP形式のWebサービスを起動するプロシージャおよびファンクションがあります。プロシージャは、パラメータp_collection_nameによって指定されたコレクションのレスポンスを格納します。ファンクションは、結果をXMLTYPEとして戻します。レスポンスから特定の値を取得するには、結果がコレクションに格納される場合はPARSE_RESPONSEファンクションを、レスポンスがXMLTYPEとして戻される場合はPARSE_XMLファンクションを使用します。base64でエンコードされた文字データとしてバイナリ・パラメータをWebサービスに渡すには、BLOB2CLOBBASE64ファンクションを使用します。逆に、base64でエンコードされたバイナリ・パラメータを含むレスポンスを変換するには、CLOBBASE642BLOBファンクションを使用します。次に、BLOB2CLOBBASE64ファンクションを使用してパラメータをエンコードし、MAKE_REQUESTプロシージャを使用してWebサービスをコールし、PARSE_RESPONSEファンクションを使用してレスポンスから特定の値を抽出する例を示します。

declare
l_filename varchar2(255);
l_BLOB BLOB;
l_CLOB CLOB;
l_envelope CLOB;
l_response_msg varchar2(32767);
BEGIN
IF :P1_FILE IS NOT NULL THEN
SELECT filename, BLOB_CONTENT
INTO l_filename, l_BLOB
FROM APEX_APPLICATION_FILES
WHERE name = :P1_FILE;

l_CLOB := apex_web_service.blob2clobbase64(l_BLOB);

l_envelope := q'!<?xml version='1.0' encoding='UTF-8'?>!';
l_envelope := l_envelope || '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:chec="http://www.stellent.com/CheckIn/">
<soapenv:Header/>
<soapenv:Body>
<chec:CheckInUniversal>
<chec:dDocName>'||l_filename||'</chec:dDocName>
<chec:dDocTitle>'||l_filename||'</chec:dDocTitle>
<chec:dDocType>Document</chec:dDocType>
<chec:dDocAuthor>GM</chec:dDocAuthor>
<chec:dSecurityGroup>Public</chec:dSecurityGroup>
<chec:dDocAccount></chec:dDocAccount>
<chec:CustomDocMetaData>
<chec:property>
<chec:name></chec:name>
<chec:value></chec:value>
</chec:property>
</chec:CustomDocMetaData>
<chec:primaryFile>
<chec:fileName>'||l_filename'||</chec:fileName>
<chec:fileContent>'||l_CLOB||'</chec:fileContent>
</chec:primaryFile>
<chec:alternateFile>
<chec:fileName></chec:fileName>
<chec:fileContent></chec:fileContent>
</chec:alternateFile>
<chec:extraProps>
<chec:property>
<chec:name></chec:name>
<chec:value></chec:value>
</chec:property>
</chec:extraProps>
</chec:CheckInUniversal>
</soapenv:Body>
</soapenv:Envelope>';

apex_web_service.make_request(
p_url               => 'http://127.0.0.1/idc/idcplg',
p_action            => 'http://www.stellent.com/CheckIn/',
p_collection_name   => 'STELLENT_CHECKIN',
p_envelope          => l_envelope,
p_username          => 'sysadmin',
p_password          => 'welcome1' );

l_response_msg := apex_web_service.parse_response(
p_collection_name=>'STELLENT_CHECKIN',
p_xpath=>'//idc:CheckInUniversalResponse/idc:CheckInUniversalResult/idc:StatusInfo/idc:statusMessage/text()',
p_ns=>'xmlns:idc="http://www.stellent.com/CheckIn/"');

:P1_RES_MSG := l_response_msg;

END IF;
END;

RESTful形式のWebサービスの起動

RESTful形式のWebサービスでは、SOAPより単純なアーキテクチャを使用します。通常、RESTful形式のWebサービスへの入力は、名前/値ペアのコレクションです。レスポンスは、XML文書またはカンマ区切りのレスポンスやJSONなどの単純なテキストです。Ajaxからコールできるアプリケーション・プロセスで使用されているMAKE_REST_REQUESTの例を次に示します。

declare
l_clob clob;
l_buffer         varchar2(32767);
l_amount         number;
l_offset         number;
begin

l_clob := apex_web_service.make_rest_request(
p_url => 'http://us.music.yahooapis.com/ video/v1/list/published/popular',
p_http_method => 'GET',
p_parm_name => apex_util.string_to_table('appid:format'),
p_parm_value => apex_util.string_to_table(apex_application.g_x01||':'||apex_application.g_x02));

l_amount := 32000;
l_offset := 1;
begin
loop
dbms_lob.read( l_clob, l_amount, l_offset, l_buffer );
htp.p(l_buffer);
l_offset := l_offset + l_amount;
l_amount := 32000;
end loop;
exception
when no_data_found then
null;
end;

end;

CookiesおよびHTTPヘッダーの取得

Application Expressでサポートされているいずれかのメソッドを使用してWebサービスを起動すると、WebサービスのレスポンスにCookiesまたはHTTPヘッダーが含まれていた場合、g_response_cookiesおよびg_headersグローバルが移入されます。これらのグローバルは問合せが可能で、コレクションに情報を格納できます。次に、APEX_WEB_SERVICEグローバルを問い合せてCookieおよびHTTPヘッダーのレスポンスをコレクションに格納する例を示します。

declare
i number;
secure varchar2(1);
begin
apex_collection.create_or_truncate_collection('P31_RESP_COOKIES');
for i in 1.. apex_web_service.g_response_cookies.count loop
IF (apex_web_service.g_response_cookies(i).secure) THEN
secure := 'Y';
ELSE
secure := 'N';
END IF;
apex_collection.add_member(p_collection_name => 'P31_RESP_COOKIES',
p_c001 => apex_web_service.g_response_cookies(i).name,
p_c002 => apex_web_service.g_response_cookies(i).value,
p_c003 => apex_web_service.g_response_cookies(i).domain,
p_c004 => apex_web_service.g_response_cookies(i).expire,
p_c005 => apex_web_service.g_response_cookies(i).path,
p_c006 => secure,
p_c007 => apex_web_service.g_response_cookies(i).version );
end loop;
end;

declare
i number;
begin
apex_collection.create_or_truncate_collection('P31_RESP_HEADERS');

for i in 1.. apex_web_service.g_headers.count loop
apex_collection.add_member(p_collection_name => 'P31_RESP_HEADERS',
p_c001 => apex_web_service.g_headers(i).name,
p_c002 => apex_web_service.g_headers(i).value,
p_c003 => apex_web_service.g_status_code);
end loop;
end;

CookiesおよびHTTPヘッダーの設定

Webサービスを起動するプロセスの前に、グローバルg_request_cookiesおよびg_request_headersを移入することによって、Webサービス・リクエストとともに送信する必要があるCookiesおよびHTTPヘッダーを設定します。次に、グローバルを移入して、リクエストとともにCookiesおよびHTTPヘッダーを送信する例を示します。

for c1 in (select seq_id, c001, c002, c003, c004, c005, c006, c007
from apex_collections
where collection_name = 'P31_RESP_COOKIES' ) loop
apex_web_service.g_request_cookies(c1.seq_id).name := c1.c001;
apex_web_service.g_request_cookies(c1.seq_id).value := c1.c002;
apex_web_service.g_request_cookies(c1.seq_id).domain := c1.c003;
apex_web_service.g_request_cookies(c1.seq_id).expire := c1.c004;
apex_web_service.g_request_cookies(c1.seq_id).path := c1.c005;
if c1.c006 = 'Y' then
apex_web_service.g_request_cookies(c1.seq_id).secure := true;
else
apex_web_service.g_request_cookies(c1.seq_id).secure := false;
end if;
apex_web_service.g_request_cookies(c1.seq_id).version := c1.c007;
end loop;

for c1 in (select seq_id, c001, c002
from apex_collections
where collection_name = 'P31_RESP_HEADERS' ) loop
apex_web_service.g_request_headers(c1.seq_id).name := c1.c001;
apex_web_service.g_request_headers(c1.seq_id).value := c1.c002;
end loop;

BLOB2CLOBBASE64ファンクション

このファンクションを使用して、BLOBデータ型を、base64でエンコードされたCLOBに変換します。通常、バイナリをWebサービスへの入力として送信する場合に使用します。

構文

APEX_WEB_SERVICE.BLOB2CLOBBASE64 (
p_blob IN BLOB)
RETURN CLOB;

パラメータ

表27-1では、BLOB2CLOBBASE64ファンクションで使用可能なパラメータについて説明します。

表27-1 BLOB2CLOBBASE64のパラメータ

パラメータ

説明

p_blob

base64でエンコードされたCLOBに変換するBLOB。

例

次に、apex_application_filesビューからアンロードされたファイルを取得し、BLOBをbase64でエンコードされたCLOBに変換する例を示します。

declare
l_clob   CLOB;
l_blob       BLOB;
begin
SELECT BLOB_CONTENT
INTO l_BLOB
FROM APEX_APPLICATION_FILES
WHERE name = :P1_FILE;

l_CLOB := apex_web_service.blob2clobbase64(l_BLOB);
end;

CLOBBASE642BLOBファンクション

このファンクションを使用して、base64でエンコードされたCLOBデータ型をBLOBに変換します。通常、バイナリ・パラメータを含むWebサービスから出力を取得する場合に使用します。

構文

APEX_WEB_SERVICE.CLOBBASE642BLOB (
p_clob IN CLOB)
RETURN BLOB;

パラメータ

表27-2では、CLOBBASE642BLOBファンクションで使用可能なパラメータについて説明します。

表27-2 CLOBBASE642BLOBパラメータ

パラメータ

説明

p_clob

BLOBに変換するbase64でエンコードされたCLOB。

例

次に、base64でエンコードされたノードをXML文書からCLOBとして取得し、BLOBに変換する例を示します。

declare
l_base64     CLOB;
l_blob       BLOB;
l_xml        XMLTYPE;
begin
l_base64 := apex_web_service.parse_xml_clob(l_xml, ' //runReportReturn/reportBytes/text()');
l_blob := apex_web_service.clobbase642blob(l_base64);
end;

MAKE_REQUESTプロシージャ

このプロシージャを使用して、指定されたSOAPエンベロープとともにSOAP形式のWebサービスを起動し、結果をコレクションに格納します。

構文

APEX_WEB_SERVICE.MAKE_REQUEST (
p_url               IN VARCHAR2,
p_action            IN VARCHAR2 default null,
p_version           IN VARCHAR2 default '1.1',
p_collection_name   IN VARCHAR2 default null,
p_envelope          IN CLOB,
p_username          IN VARCHAR2 default null,
p_password          IN VARCHAR2 default null,
p_scheme            IN VARCHAR2 DEFAULT 'Basic',
p_proxy_override    IN VARCHAR2 default null,
p_transfer_timeout  IN NUMBER   default 180,
p_wallet_path       IN VARCHAR2 default null,
p_wallet_pwd        IN VARCHAR2 default null );

パラメータ

表27-3では、MAKE_REQUESTプロシージャで使用可能なパラメータについて説明します。

表27-3 MAKE_REQUESTプロシージャのパラメータ

パラメータ

説明

p_url

WebサービスのURLエンドポイント。

p_action

起動する操作に対応するSOAPアクション。

p_version

SOAPのバージョン(1.1または1.2)。デフォルトは1.1。

p_collection_name

レスポンスを格納するコレクションの名前。

p_envelope

サービスにポストするSOAPエンベロープ。

p_username

このサービスに基本認証が必要な場合はユーザー名。

p_password

このサービスに基本認証が必要な場合はパスワード。

p_scheme

ご使用のデータベース・リリースでサポートされている場合、認証スキームのBasic (デフォルト)、AWS、Digestのいずれか。

p_proxy_override

リクエストに使用するプロキシ。指定したプロキシは、アプリケーション属性で定義したプロキシより優先されます。

p_transfer_timeout

レスポンスを待機する時間(秒単位)。

p_wallet_path

URLエンドポイントがHTTPSの場合はウォレットへのファイル・システム・パス。file:/usr/home/oracle/WALLETSなど。指定されたウォレットのパスは、インスタンス設定で定義したウォレットより優先されます。

p_wallet_pwd

ウォレットにアクセスするためのパスワード。

例

次の例では、make_requestプロシージャを使用して、SOAP形式のWebサービスからムービーのリストを取得します。レスポンスはApplication ExpressコレクションMOVIE_LISTINGSに格納されます。

declare
l_envelope CLOB;
BEGIN
l_envelope := '<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://www.ignyte.com/whatsshowing"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<tns:GetTheatersAndMovies>
<tns:zipCode>43221</tns:zipCode>
<tns:radius>5</tns:radius>
</tns:GetTheatersAndMovies>
</soap:Body>
</soap:Envelope>';

apex_web_service.make_request(
p_url               => ' http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx',
p_action            => ' http://www.ignyte.com/whatsshowing/GetTheatersAndMovies',
p_collection_name   => 'MOVIE_LISTINGS',
p_envelope          => l_envelope
);
END;

MAKE_REQUESTファンクション

このファンクションを使用して、指定されたSOAPエンベロープとともにSOAP形式のWebサービスを起動し、XMLTYPEで結果を戻します。

構文

APEX_WEB_SERVICE.MAKE_REQUEST (
p_url               IN VARCHAR2,
p_action            IN VARCHAR2 default null,
p_version           IN VARCHAR2 default '1.1',
p_envelope          IN CLOB,
p_username          IN VARCHAR2 default null,
p_password          IN VARCHAR2 default null,
p_scheme            IN VARCHAR2 default 'Basic',
p_proxy_override    IN VARCHAR2 default null,
p_transfer_timeout  IN NUMBER   default 180,
p_wallet_path       IN VARCHAR2 default null,
p_wallet_pwd        IN VARCHAR2 default null )
RETURN XMLTYPE;

パラメータ

表27-4では、MAKE_REQUESTファンクションで使用可能なパラメータについて説明します。

表27-4 MAKE_REQUESTファンクションのパラメータ

パラメータ

説明

p_url

WebサービスのURLエンドポイント。

p_action

起動する操作に対応するSOAPアクション。

p_version

SOAPのバージョン(1.1または1.2)。デフォルトは1.1。

p_envelope

サービスにポストするSOAPエンベロープ。

p_username

このサービスに基本認証が必要な場合はユーザー名。

p_password

このサービスに基本認証が必要な場合はパスワード。

p_scheme

ご使用のデータベース・リリースでサポートされている場合、認証スキームのBasic (デフォルト)、AWS、Digestのいずれか。

p_proxy_override

リクエストに使用するプロキシ。指定したプロキシは、アプリケーション属性で定義したプロキシより優先されます。

p_transfer_timeout

レスポンスを待機する時間(秒単位)。

p_wallet_path

URLエンドポイントがHTTPSの場合はウォレットへのファイル・システム・パス。file:/usr/home/oracle/WALLETSなど。指定されたウォレットのパスは、インスタンス設定で定義したウォレットより優先されます。

p_wallet_pwd

ウォレットにアクセスするためのパスワード。

例

次の例では、make_requestファンクションを使用して、ムービーのリストを戻すSOAP形式のWebサービスを起動します。結果はXMLTYPEで格納されます。

declare
l_envelope CLOB;
l_xml        XMLTYPE;
BEGIN
l_envelope := ' <?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://www.ignyte.com/whatsshowing"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<tns:GetTheatersAndMovies>
<tns:zipCode>43221</tns:zipCode>
<tns:radius>5</tns:radius>
</tns:GetTheatersAndMovies>
</soap:Body>
</soap:Envelope>';

l_xml := apex_web_service.make_request(
p_url => ' http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx',
p_action => ' http://www.ignyte.com/whatsshowing/GetTheatersAndMovies',
p_envelope => l_envelope
);
END

MAKE_REST_REQUESTファンクション

このファンクションを使用して、名前/値ペア、キャラクタベースのペーロード、バイナリ・ペイロードのいずれかを指定し、レスポンスをCLOBで戻して、RESTful形式のWebサービスを起動します。

構文

APEX_WEB_SERVICE.MAKE_REST_REQUEST(
p_url               IN VARCHAR2,
p_http_method       IN VARCHAR2,
p_username          IN VARCHAR2 default null,
p_password          IN VARCHAR2 default null,
p_scheme            IN VARCHAR2 default 'Basic',
p_proxy_override    IN VARCHAR2 default null,
p_transfer_timeout  IN NUMBER   default 180,
p_body              IN CLOB default empty_clob(),
p_body_blob         IN BLOB default empty_blob(),
p_parm_name         IN apex_application_global.VC_ARR2 default empty_vc_arr,
p_parm_value        IN apex_application_global.VC_ARR2 default empty_vc_arr,
p_wallet_path       IN VARCHAR2 default null,
p_wallet_pwd        IN VARCHAR2 default null )
RETURN CLOB;

パラメータ

表27-5では、MAKE_REST_REQUESTファンクションで使用可能なパラメータについて説明します。

表27-5 MAKE_REST_REQUESTファンクションのパラメータ

パラメータ

説明

p_url

WebサービスのURLエンドポイント。

p_http_method

使用するHTTPメソッド(PUT、POST、GET、HEADまたはDELETE)。

p_username

このサービスに基本認証が必要な場合はユーザー名。

p_password

このサービスに基本認証が必要な場合はパスワード。

p_scheme

ご使用のデータベース・リリースでサポートされている場合、認証スキームのBasic (デフォルト)、AWS、Digestのいずれか。

p_proxy_override

リクエストに使用するプロキシ。指定したプロキシは、アプリケーション属性で定義したプロキシより優先されます。

p_transfer_timeout

レスポンスを待機する時間(秒単位)。

p_body

CLOBとして送信するHTTPペイロード。

p_body_blob

バイナリBLOBとして送信するHTTPペイロード。ファイルのポストなど。

p_parm_name

名前/値ペアで使用するパラメータの名前。

p_parm_value

名前/値ペアで使用するパラメータの値。

p_wallet_path

URLエンドポイントがHTTPSの場合はウォレットへのファイル・システム・パス。file:/usr/home/oracle/WALLETSなど。指定されたウォレットのパスは、インスタンス設定で定義したウォレットより優先されます。

p_wallet_pwd

ウォレットにアクセスするためのパスワード。

例

次の例では、make_rest_requestファンクションを使用して、パラメータを名前/値ペアとしてサービスに渡すRESTful形式のWebサービスをコールします。サービスからのレスポンスはローカルで宣言されたCLOBで格納されます。

declare
l_clob       CLOB;
BEGIN

l_clob := apex_web_service.make_rest_request(
p_url => 'http://us.music.yahooapis.com/ video/v1/list/published/popular',
p_http_method => 'GET',
p_parm_name => apex_util.string_to_table('appid:format'),
p_parm_value => apex_util.string_to_table('xyz:xml'));

END;

MAKE_REST_REQUEST_Bファンクション

このファンクションを使用して、名前/値ペア、キャラクタベースのペイロード、バイナリ・ペイロードのいずれかを指定し、レスポンスをBLOBで戻す、RESTful形式のWebサービスを起動します。

構文

APEX_WEB_SERVICE.MAKE_REST_REQUEST_B(
p_url               IN VARCHAR2,
p_http_method       IN VARCHAR2,
p_username          IN VARCHAR2 default null,
p_password          IN VARCHAR2 default null,
p_scheme            IN VARCHAR2 default 'Basic',
p_proxy_override    IN VARCHAR2 default null,
p_transfer_timeout  IN NUMBER   default 180,
p_body              IN CLOB default empty_clob(),
p_body_blob         IN BLOB default empty_blob(),
p_parm_name         IN apex_application_global.VC_ARR2 default empty_vc_arr,
p_parm_value        IN apex_application_global.VC_ARR2 default empty_vc_arr,
p_wallet_path       IN VARCHAR2 default null,
p_wallet_pwd        IN VARCHAR2 default null )
RETURN BLOB;

パラメータ

表27-5では、MAKE_REST_REQUEST_Bファンクションで使用可能なパラメータについて説明します。

表27-6 MAKE_REST_REQUEST_Bファンクションのパラメータ

パラメータ

説明

p_url

WebサービスのURLエンドポイント。

p_http_method

使用するHTTPメソッド(PUT、POST、GET、HEADまたはDELETE)。

p_username

このサービスに基本認証が必要な場合はユーザー名。

p_password

このサービスに基本認証が必要な場合はパスワード。

p_scheme

ご使用のデータベース・リリースでサポートされている場合、認証スキームのBasic (デフォルト)、AWS、Digestのいずれか。

p_proxy_override

リクエストに使用するプロキシ。指定したプロキシは、アプリケーション属性で定義したプロキシより優先されます。

p_transfer_timeout

レスポンスを待機する時間(秒単位)。

p_body

CLOBとして送信するHTTPペイロード。

p_body_blob

バイナリBLOBとして送信するHTTPペイロード。ファイルのポストなど。

p_parm_name

名前/値ペアで使用するパラメータの名前。

p_parm_value

名前/値ペアで使用するパラメータの値。

p_wallet_path

URLエンドポイントがHTTPSの場合はウォレットへのファイル・システム・パス。file:/usr/home/oracle/WALLETSなど。指定されたウォレットのパスは、インスタンス設定で定義したウォレットより優先されます。

p_wallet_pwd

ウォレットにアクセスするためのパスワード。

例

次の例では、make_rest_requestファンクションを使用して、パラメータを名前/値ペアとしてサービスに渡すRESTful形式のWebサービスをコールします。サービスからのレスポンスはローカルで宣言されたBLOBで格納されます。

declare
l_blob       BLOB;
BEGIN

l_blob := apex_web_service.make_rest_request_b(
p_url => 'http://us.music.yahooapis.com/ video/v1/list/published/popular',
p_http_method => 'GET',
p_parm_name => apex_util.string_to_table('appid:format'),
p_parm_value => apex_util.string_to_table('xyz:xml'));

END;

PARSE_RESPONSEファンクション

このファンクションを使用して、コレクションに格納されたWebサービスからのレスポンスを解析し、結果をVARCHAR2型で戻します。

構文

APEX_WEB_SERVICE.PARSE_RESPONSE (
p_collection_name   IN VARCHAR2,
p_xpath             IN VARCHAR2,
p_ns                IN VARCHAR2 default null )
RETURN VARCHAR2;

パラメータ

表27-7では、PARSE_RESPONSEファンクションで使用可能なパラメータについて説明します。

表27-7 PARSE_RESPONSEファンクションのパラメータ

パラメータ

説明

p_collection_name

Webサービスのレスポンスが格納されるコレクションの名前。

p_xpath

目的のノードへのXPath式。

p_ns

目的のノードへのネームスペース。

例

次の例では、STELLENT_CHECKINというコレクションに格納されたレスポンスを解析し、値をローカルで宣言されたVARCHAR2変数に格納します。

declare
l_response_msg  VARCHAR2(4000);
BEGIN
l_response_msg := apex_web_service.parse_response(
p_collection_name=>'STELLENT_CHECKIN',
p_xpath =>
'//idc:CheckInUniversalResponse/idc:CheckInUniversalResult/idc:StatusInfo/idc:statusMessage/text()',
p_ns=>'xmlns:idc="http://www.stellent.com/CheckIn/"');
END;

PARSE_RESPONSE_CLOBファンクション

このファンクションを使用して、コレクションに格納されたWebサービスからのレスポンスを解析し、結果をCLOB型で戻します。

構文

APEX_WEB_SERVICE.PARSE_RESPONSE_CLOB (
p_collection_name   IN VARCHAR2,
p_xpath             IN VARCHAR2,
p_ns                IN VARCHAR2 default null )
RETURN CLOB;

パラメータ

表27-8では、PARSE_RESPONSE_CLOBファンクションで使用可能なパラメータについて説明します。

表27-8 PARSE_RESPONSE _CLOBファンクションのパラメータ

パラメータ

説明

p_collection_name

Webサービスのレスポンスが格納されるコレクションの名前。

p_xpath

目的のノードへのXPath式。

p_ns

目的のノードへのネームスペース。

例

次の例では、STELLENT_CHECKINというコレクションに格納されたレスポンスを解析し、値をローカルで宣言されたCLOB変数に格納します。

declare
l_response_msg  CLOB;
BEGIN
l_response_msg := apex_web_service.parse_response_clob(
p_collection_name=>'STELLENT_CHECKIN',
p_xpath=>
'//idc:CheckInUniversalResponse/idc:CheckInUniversalResult/idc:StatusInfo/idc:statusMessage/text()',
p_ns=>'xmlns:idc="http://www.stellent.com/CheckIn/"');
END;

PARSE_XMLファンクション

このファンクションを使用して、XMLTYPEとして戻されたWebサービスからのレスポンスを解析し、リクエストされた値をVARCHAR2として戻します。

構文

APEX_WEB_SERVICE.PARSE_XML (
p_xml               IN XMLTYPE,
p_xpath             IN VARCHAR2,
p_ns                IN VARCHAR2 default null )
RETURN VARCHAR2;

パラメータ

表27-9に、PARSE_XMLファンクションで使用可能なパラメータを示します。

表27-9 PARSE_XMLファンクションのパラメータ

パラメータ

説明

p_xml

解析するXMLTYPEとしてのXML文書。

p_xpath

目的のノードへのXPath式。

p_ns

目的のノードへのネームスペース。

例

次の例では、make_requestファンクションを使用してWebサービスをコールし、結果をローカルのXMLTYPE変数に格納します。その後、XMLTYPEに格納されたXML文書の特定ノードの取得にparse_xmlファンクションが使用され、その結果をローカルに宣言されたVARCHAR2変数に格納します。

declare
l_envelope CLOB;
l_xml XMLTYPE;
l_movie VARCHAR2(4000);
BEGIN
l_envelope := ' <?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://www.ignyte.com/whatsshowing"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<tns:GetTheatersAndMovies>
<tns:zipCode>43221</tns:zipCode>
<tns:radius>5</tns:radius>
</tns:GetTheatersAndMovies>
</soap:Body>
</soap:Envelope>';

l_xml := apex_web_service.make_request(
p_url => ' http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx',
p_action => ' http://www.ignyte.com/whatsshowing/GetTheatersAndMovies',
p_envelope => l_envelope );

l_movie := apex_web_service.parse_xml(
p_xml => l_xml,
p_xpath => ' //GetTheatersAndMoviesResponse/GetTheatersAndMoviesResult/Theater/Movies/Movie/Name[1]',
p_ns => ' xmlns="http://www.ignyte.com/whatsshowing"' );

END;

PARSE_XML_CLOBファンクション

このファンクションを使用して、XMLTYPEとして戻されたWebサービスからのレスポンスを解析し、リクエストされた値をCLOBとして戻します。

構文

APEX_WEB_SERVICE.PARSE_XML_CLOB (
p_xml               IN XMLTYPE,
p_xpath             IN VARCHAR2,
p_ns                IN VARCHAR2 default null )
RETURN VARCHAR2;

パラメータ

表27-10では、PARSE_XML_CLOBファンクションで使用可能なパラメータについて説明します。

表27-10 PARSE_XML_CLOBファンクションのパラメータ

パラメータ

説明

p_xml

解析するXMLTYPEとしてのXML文書。

p_xpath

目的のノードへのXPath式。

p_ns

目的のノードへのネームスペース。

例

次の例では、make_requestファンクションを使用してWebサービスをコールし、結果をローカルのXMLTYPE変数に格納します。その後、XMLTYPEに格納されたXML文書の特定ノードの取得にparse_xmlファンクションが使用され、その結果をローカルに宣言されたVARCHAR2変数に格納します。

declare
l_envelope CLOB;
l_xml XMLTYPE;
l_movie CLOB;
BEGIN
l_envelope := ' <?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://www.ignyte.com/whatsshowing"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<tns:GetTheatersAndMovies>
<tns:zipCode>43221</tns:zipCode>
<tns:radius>5</tns:radius>
</tns:GetTheatersAndMovies>
</soap:Body>
</soap:Envelope>';

l_xml := apex_web_service.make_request(
p_url => ' http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx',
p_action => ' http://www.ignyte.com/whatsshowing/GetTheatersAndMovies',
p_envelope => l_envelope );

l_movie := apex_web_service.parse_xml_clob(
p_xml => l_xml,
p_xpath => ' //GetTheatersAndMoviesResponse/GetTheatersAndMoviesResult/Theater/Movies/Movie/Name[1]',
p_ns => ' xmlns="http://www.ignyte.com/whatsshowing"' );

END;

28 APEX_ZIP

このパッケージは、ファイルの圧縮および解凍を管理します。

- データ型

- ADD_FILEプロシージャ

- FINISHプロシージャ

- GET_FILE_CONTENTファンクション

- GET_FILESファンクション

データ型

この項では、APEX_ZIPパッケージで使用するデータ型について説明します。

t_files

type t_files is table of varchar2(32767) index by binary_integer;

ADD_FILEプロシージャ

このプロシージャは、単一のファイルをzipファイルに追加します。

注意:
すべてのファイルを追加した後に、APEX_ZIP.FINISHをコールする必要があります。

構文

APEX_ZIP.ADD_FILE (
p_zipped_blob IN OUT NOCOPY BLOB,
p_file_name   IN VARCHAR2,
p_content     IN BLOB );

パラメータ

表28-1 ADD_FILEプロシージャのパラメータ

パラメータ

説明

p_zipped_blob

zipファイルを格納しているBLOB。

p_file_name

zipファイルに追加するファイルのファイル名(パスを含む)。

p_content

ファイルを格納しているBLOB。

例

この例では、表から複数のファイルを読み取り、単一のzipファイルに格納します。

declare
l_zip_file blob;
begin
for l_file in ( select file_name,
file_content
from my_files )
loop
apex_zip.add_file (
p_zipped_blob => l_zip_file,
p_file_name   => l_file.file_name,
p_content     => l_file.file_content );
end loop;

apex_zip.finish (
p_zipped_blob => l_zip_file );

end;

FINISHプロシージャ

このプロシージャは、APEX_ZIP.ADD_FILEでファイルを追加した後に、zipファイルの作成を完了します。

構文

APEX_ZIP.FINISH (
p_zipped_blob IN OUT NOCOPY BLOB );

パラメータ

表28-2 FINISHプロシージャのパラメータ

パラメータ

説明

p_zipped_blob

zipファイルを格納しているBLOB。

例

例は、「ADD_FILEプロシージャ」を参照してください。

GET_FILE_CONTENTファンクション

このファンクションは、指定されたzipファイルに格納されたファイルのBLOBを戻します。

構文

APEX_ZIP.GET_FILE_CONTENT (
p_zipped_blob IN BLOB,
p_file_name   IN VARCHAR2,
p_encoding    IN VARCHAR2 DEFAULT NULL )
RETURN BLOB;

パラメータ

表28-3 GET_FILE_CONTENTファンクションのパラメータ

パラメータ

説明

p_zipped_blob

これはzipファイルを格納しているBLOBです。

p_file_name

zipファイルに含まれるファイルのファイル名(パスを含む)。

p_encoding

ファイルの圧縮に使用されるエンコーディング。

戻り値

表28-4 GET_FILE_CONTENTファンクションの戻り値

戻り値

説明

BLOB

zipファイルを格納しているBLOB。

例

例は、「GET_FILESファンクション」を参照してください。

GET_FILESファンクション

このファンクションは、BLOBを格納している指定されたzipファイルのファイル名(パスを含む)の配列を戻します。

構文

APEX_ZIP.GET_FILES (
p_zipped_blob IN BLOB,
p_only_files  IN BOOLEAN DEFAULT TRUE,
p_encoding    IN VARCHAR2 DEFAULT NULL )
RETURN t_files;

パラメータ

表28-5 GET_FILESファンクションのパラメータ

パラメータ

説明

p_zipped_blob

これはBLOBを格納しているzipファイルです。

p_only_files

TRUEに設定すると、戻された配列に空のディレクトリ・エントリが含まれません。FALSEに設定すると、空のディレクトリ・エントリが含まれます。

p_encoding

これはファイルの圧縮に使用されるエンコーディングです。

戻り値

表28-6 GET_FILESファンクションの戻り値

戻り値

説明

t_files

ファイルの名前とパスの表。詳細は、「データ型」を参照してください。

例

この例では、表からzipファイルを読み取り、解凍してzipファイルの全ファイルをmy_filesに格納します。

declare
l_zip_file      blob;
l_unzipped_file blob;
l_files         apex_zip.t_files;
begin
select file_content
into l_zip_file
from my_zip_files
where file_name = 'my_file.zip';

l_files := apex_zip.get_files (
p_zipped_blob => l_zip_file );

for i in 1 .. l_files.count loop
l_unzipped_file := apex_zip.get_file_content (
p_zipped_blob => l_zip_file,
p_file_name   => l_files(i) );

insert into my_files ( file_name, file_content )
values ( l_files(i), l_unzipped_file );
end loop;
end;

29 JavaScript API

このセクションでは、Oracle Application Expressに付属する、すべてのページで使用可能なJavaScriptのファンクションおよびオブジェクトについて説明します。これらのファンクションおよびオブジェクトを使用することで、クライアント側の機能(ページ要素の表示/非表示、XML HTTP Asynchronous JavaScriptおよびXML (Ajax)リクエストの作成など)を提供できます。

- apexネームスペースの使用

- apex.daネームスペース

- apex.debugネームスペース

- apex.eventネームスペース

- apex.item

- apex.langネームスペース

- apex.navigationネームスペース

- apex.serverネームスペース

- apex.storageネームスペース

- apex.utilネームスペース

- apex.widgetネームスペース

- 非ネームスペースのJavascript API

- レガシーJavaScript API

apexネームスペースの使用

apex.confirmファンクションは、確認を表示し、ユーザーの選択に応じてページを送信するか、ページの送信をキャンセルします。apex.submitファンクションは、現在のページを送信します。

- グローバル変数

- apex.confirmファンクションについて

- apex.confirm(pMessage, pRequest)

- apex.confirm(pMessage, pOptions)

- apex.submitファンクションについて

- apex.submit(pOptions)

- apex.submit(pRequest)

グローバル変数

apexネームスペースは、Application Expressのグローバル変数およびファンクションを格納します。

- apex.gPageContext$ - 現在のページ・コンテキストを格納するApplication Express変数。現在のページ・コンテキストは、そのページがデスクトップか、jQuery Mobileページかによって異なります。デスクトップの場合は、文書レベルに設定されます。jQuery Mobileの場合、ページは実際にはブラウザのDOMのDIV要素として表され、複数ページのDIVをブラウザのDOMに同時にロードできるので、これは現在のページを表すDIV要素に設定されます。
これを使用してjQueryセレクタのコンテキストを設定し、セレクタが正しいページのコンテキスト内で確実に実行されるようにします。

次に例を示します。

jQuery( ".my_class", apex.gPageContext$ );

これは、現在のページ・コンテキストで、CSSクラスがmy_classのすべての要素を選択します。

apex.confirmファンクションについて

apex.confirmファンクションは、確認を表示し、ユーザーの選択に応じてページを送信するか、ページの送信をキャンセルします。このファンクションには、2つのシグネチャがあります。

参照:
「apex.confirm(pMessage, pRequest)」、「apex.confirm(pMessage, pOptions)」

apex.confirm(pMessage, pRequest)

確認にメッセージ(pMessage)を表示し、ユーザーの選択に応じてページ設定リクエスト値(pRequest)を送信するか、またはページ送信を取り消します。

パラメータ

pMessage (string)
pRequest (string)

例

この例では、確認ダイアログ・ボックスに「Delete Department」というテキストが表示されます。ユーザーが削除を選択すると、REQUESTの値が'DELETE'の現在のページが送信されます。

apex.confirm('Delete Department', 'DELETE');

apex.confirm(pMessage, pOptions)

メッセージ(pMessage)を表示する確認画面を表示し、ユーザーの選択に基づいて、pOptionsによって指定したリクエスト値を設定するページを送信するか、またはページの送信をキャンセルします。

パラメータ

pMessage (string)
pOptions (Object)
where pOptions contains one to any of the following properties:
submitIfEnter - If you only want to confirm when the ENTER key has been pressed, call apex.confirm in the event callback and pass the event object as this parameter.
request - The request value to set (defaults to null)
set - Object conatining name/value pairs of items to be set on the page prior to submission(defaults to null).
showWait - Flag to control if a 'Wait Indicator' icon is displayed, which can be useful when running long page operations (Defaults to false).

戻り値

Boolean - submitIfEnterオプションが指定されている場合、ブール値を戻します。[Enter]キーが押されていなければTRUE、[Enter]キーが押されていればFALSEを戻します。submitIfEnterが指定されていない場合、戻り値はありません。

例

この例では、「Save Department?」というテキストの確認メッセージが表示されます。ユーザーが保存を選択すると、REQUEST値がSAVEのページが送信され、2つのページ・アイテム値が設定されます(P1_DEPTNOが10、P1_EMPNOが5433)。

apex.confirm("Save Department?", {
request:"SAVE",
set:{"P1_DEPTNO":10, "P1_EMPNO":5433}
});

apex.submitファンクションについて

apex.submitファンクションは、現在のページを送信します。このファンクションには、2つのシグネチャがあります。

参照:
「apex.submit(pOptions)」、「apex.submit(pRequest)」

apex.submit(pOptions)

このファンクションは、pOptionsで指定したオプションを使用してページを送信します。

パラメータ

pOptions (Object)
where pOptions contains one to any of the following properties:
submitIfEnter - If you only want to submit when the ENTER key has been pressed, call apex.submit in the event callback and pass the event object as this parameter.
request - The request value to set (defaults to null)
set - Object conatining name/value pairs of items to be set on the page prior to submission(defaults to null).
showWait - Flag to control if a 'Wait Indicator' icon is displayed, which can be useful when running long page operations (Defaults to false).

戻り値

Boolean - submitIfEnterオプションが指定されている場合、ブール値を戻します。[Enter]キーが押されていなければTRUE、[Enter]キーが押されていればFALSEを戻します。submitIfEnterが指定されていない場合、戻り値はありません。

例

この例では、REQUESTの値が'DELETE'のページを送信します。2つのページ・アイテム値P1_DEPTNOが10、P1_EMPNOが5433に設定されています。送信中は、待機アイコンがユーザーへのインジケータとして表示されます。

apex.submit({
request:"DELETE",
set:{"P1_DEPTNO":10, "P1_EMPNO":5433}});

apex.submit(pRequest)

このファクションは、ページを送信して、Application Express Requestの値pRequestを設定します。

パラメータ

pRequest (String)

例

REQUESTの値が'DELETE'の現在のページを送信します。

apex.submit( 'DELETE' );

apex.daネームスペース

このネームスペースは、Oracle Application Expressのすべての動的アクション・ファンクションを保持します。

apex.da.resume (pCallback, pErrorOccurred)

このファンクションは動的アクションの実行を再開します。動的アクションの実行は、アクションの「結果を待機」属性がチェックされていれば一時停止できます。「結果を待機」はAjaxベース動的アクションと使用されるように設計された動的アクション・プラグインの標準属性です。プラグインがこの属性を示すと、プラグインJavaScriptコードの関連場所でこのファンクションを呼び出すことで、実行を再開する必要があります。そうしないと、アクションが動的アクションの実行をブレークします。

パラメータ

pCallback (ファンクション) - this.resumeCallbackプロパティから使用可能なコールバック・ファンクションを参照する、必須パラメータです。

pErrorOccurred (ブール) - エラーが発生したかどうかをフレームワークに示す、必須パラメータです。エラーが発生し、アクションの「エラー時に実行停止」属性がチェックされている場合、動的アクションの実行は停止します。

戻り値

なし

例1

エラーが発生していない(たとえば、Ajaxベース・アクションの正常なコールバックから)ことを示すアクションの実行を再開します。

apex.da.resume( lResumeCallback, false );

例2

エラーが発生した(たとえば、Ajaxベース・アクションのエラーのコールバックから)ことを示すアクションの実行を再開します。アクションの状態

「エラー時に実行停止」属性がチェックされている場合、動的アクションの実行は停止します。

apex.da.resume( lResumeCallback, true );

apex.debugネームスペース

このネームスペースは、Oracle Application Expressのすべてのデバッグ・ファンクションを格納します。

- ログ・レベルの定数

- apex.debug.error(...*)

- apex.debug.getLevel()

- apex.debug.info(...*)

- apex.debug.log(...*)

- apex.debug.message(pLevel,...*)

- apex.debug.setLevel(pLevel)

- apex.debug.trace(...*)

- apex.debug.warn(...*)

ログ・レベルの定数

LOG_LEVEL

apex.debug.LOG_LEVEL = {
OFF: 0,
ERROR: 1,
WARN: 2,
INFO: 4,
APP_TRACE: 6,
ENGINE_TRACE: 9
};

表29-1 LOG_LEVELの説明

値

説明

OFF: 0

ロギングは無効です。

ERROR: 1

エラー・ログ・レベル。

WARN: 2

警告ログ・レベル。

INFO: 4

情報ログ・レベル。

APP_TRACE: 6

アプリケーション・トレース・ログ・レベル。

ENGINE_TRACE: 9

エンジン・トレース・ログ・レベル。

apex.debug.error(...*)

エラー・メッセージをログに記録します。errorファンクションは、サーバーからまたはapex.debug.setLevelを使用して設定されたログ・レベルに関係なく常にエラーを書き込みます。メッセージは、使用可能な場合、ブラウザの組込みコンソール・ロギングを使用して書き込まれます。サポートされている場合、console.traceがコールされます。古いブラウザでは、コンソール・オブジェクトやその機能の一部がサポートされていないこともあります。

パラメータ

表29-2 debug.error( ...* )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

...*

引数

必須

コンソールにログが出力される任意の数のパラメータ。

例1

この例では、メッセージ"Update Failed"をコンソールに出力します。

apex.debug.error("Update Failed");

例2

この例では、例外メッセージをコンソールに出力します。

apex.debug.error("Exception: ", ex);

apex.debug.getLevel()

デバッグ・ログ・レベルを戻すメソッド。デバッグ・ログ・レベルは非表示のアイテム"#pdebug"と同期がとられます。

戻り値

ログ・レベルを整数の1から9、またはデバッグ・ログが無効になっていることを示す0 (ゼロ)として戻します。戻り値の意味は、「ログ・レベルの定数」を参照してください。

パラメータ

なし

例

この例では、ログ・レベルを取得し、先頭に"Level"を付け、コンソールにログを出力します。

apex.debug.log("Level=", apex.debug.getLevel());

apex.debug.info(...*)

情報メッセージをログに記録します。レベルをINFOに設定したapex.debug.messageと同様です。

パラメータ

表29-3 debug.info( ...* )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

...*

引数

必須

コンソールにログが出力される任意の数のパラメータ。

例1

この例では、ログ・レベルがINFO以上の場合に、情報メッセージをコンソールに出力します。

apex.debug.info("Command successful");

apex.debug.log(...*)

メッセージをログに記録します。レベルを最高レベルに設定したapex.debug.messageと同様です。

パラメータ

表29-4 debug.log( ...* )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

...*

引数

必須

コンソールにログが出力される任意の数のパラメータ。

例1

この例では、現在のログ・レベルに関係なく、ログ・レベルを取得してコンソールに出力します。

apex.debug.log("Level=", apex.debug.getLevel());

apex.debug.message(pLevel,...*)

指定されたデバッグ・ログ・レベルでメッセージをログに記録します。サーバーからまたはapex.debug.setLevelを使用して設定されたログ・レベルは、メッセージを実際に書き込むかどうかを制御します。設定されたログ・レベルがpLevel以上である場合、メッセージは書き込まれます。メッセージは、使用可能な場合、ブラウザの組込みコンソール・ロギングを使用して書き込まれます。古いブラウザでは、コンソール・オブジェクトやその機能の一部がサポートされていないこともあります。

パラメータ

表29-5 debug.message( pLevel )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pLevel

NUMBER

必須

1から9の数値で、レベル1は最も重要であり、レベル9は最も重要ではありません。LOG_LEVELの定数のいずれかを指定できます。0 (ゼロ)などの他の値は、デバッグ・ログを無効にします。

...*

引数

必須

コンソールにログが出力される任意の数のパラメータ。

例

この例では、ログ・レベルが7以上である場合、メッセージ"Testing"をコンソールに出力します。

apex.debug.message(7,"Testing"));

apex.debug.setLevel(pLevel)

デバッグ・ログ・レベルを設定するメソッド。指定されたレベル以下のログ・メッセージがコンソール・ログに書き込まれます。デバッグ・ログ・レベルは、サーバーから取得される非表示のアイテム#pdebugと同期がとられるため、このファンクションをコールする必要はほとんどありません。

パラメータ

表29-6 debug.setlevel( pLevel )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pLevel

NUMBER

必須

1から9の数値で、レベル1は最も重要であり、レベル9は最も重要ではありません。LOG_LEVELの定数のいずれかを指定できます。0 (ゼロ)などの他の値は、デバッグ・ログを無効にします。

例

この例では、ログ・レベルをアプリケーション・トレースに設定します。

apex.debug.setLevel(apex.debug.LOG_LEVEL.APP_TRACE));

apex.debug.trace(...*)

トレース・メッセージをログに記録します。レベルをAPP_TRACEに設定したapex.debug.messageと同様です。

パラメータ

表29-7 debug.trace( ...* )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

...*

引数

必須

コンソールにログが出力される任意の数のパラメータ。

例1

この例では、デバッグ・ログ・レベルがAPP_TRACE以上の場合に、ログ・メッセージをコンソールに出力します。

apex.debug.trace("Got click event: ", event);

apex.debug.warn(...*)

警告メッセージをログに記録します。レベルをWARNに設定したapex.debug.messageと同様です。

パラメータ

表29-8 debug.warn( ...* )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

...*

引数

必須

コンソールにログが出力される任意の数のパラメータ。

例1

この例では、デバッグ・ログ・レベルがWARN以上の場合に、警告メッセージをコンソールに出力します。

apex.debug.warn("Empty string ignored");

apex.eventネームスペース

apex.eventネームスペースは、Oracle Application Expressのすべてのイベント関連のファンクションを格納します。

- apex.event.trigger(pSelector,pEvent,pData)

apex.event.trigger(pSelector,pEvent,pData)

jQueryセレクタ、jQueryオブジェクトまたはDOMノードを指定すると、指定したpEventがトリガーされます。pEventは、「クリック」や「変更」のようなブラウザ・イベントですが、「スライド変更」のようなカスタム・イベントでもあります。このファクションは、動的アクション・フレームワークによって処理されるイベントをトリガーする場合にのみ使用する必要があります。そうしないと、アプリケーションにインストールされたプラグインによって登録されたカスタム・イベントや動的アクションですでに公開されているイベントが危険にさらされる可能性があります。

パラメータ

pSelector (jQuery selector | jQuery object | DOM Node)
pEvent (String)
pData (Object)

戻り値

Boolean

apex.item

apex.item APIによって、Application Expressのアイテム関連機能に単一のインタフェースが提供されます。このAPIでApplication Expressアイテム・オブジェクトを戻し、それをアイテム関連のファンクションおよびプロパティにアクセスするために使用できます。

- apex.item( pNd )

- apex.item( pNd ).addValue( pValue )

- apex.item( pNd ).disable()

- apex.item( pNd ).enable()

- apex.item( pNd ).getValue()

- apex.item( pNd ).hide( pHideRow)

- apex.item( pNd ).isEmpty()

- apex.item( pNd ).setFocus()

- apex.item( pNd ).setStyle( pPropertyName, pPropertyValue )

- apex.item( pNd ).setValue(pValue, pDisplayValue, pSuppressChangeEvent)

- apex.item( pNd ).show( pShowRow )

apex.item( pNd )

このAPIでApplication Expressアイテム・オブジェクトを戻し、それをアイテム関連のファンクションおよびプロパティにアクセスするために使用できます。このAPIでApplication Expressアイテム・オブジェクトを戻し、そのアイテムをアイテム関連のファンクションおよびプロパティにアクセスするために使用できます。

プラグイン開発者は、apex.widget.initPageItemをオーバーライドで呼び出すことによって、apex.itemネームスペースに定義された動作の多くをオーバーライドできます。詳細は、apex.widget.initPageItem( pName, pOptions)のドキュメントを参照してください。

パラメータ

表29-9 apex.item( pNd )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pNd

(DOMノード|文字列)

必須

Application Expressのアイテム名またはDOMノード。

戻り値

表29-10「apex.item( pNd )の戻り値」に、このファンクションの戻り値を示します。

表29-10 apex.item( pNd )の戻り値

タイプ

説明

(オブジェクト)

Application Expressのアイテム・オブジェクトを戻し、このオブジェクトが、アイテム固有のファンクションへのアクセスに使用されます。たとえば、getValue、setValueなどです。

例

これは、単独では使用されず、次に示す各APIで説明されているように、アイテム固有のファンクションおよびプロパティにアクセスするために使用されます。

apex.item( pNd ).addValue( pValue )

複数の値をサポートするApplication Expressアイテムに値を追加します。

パラメータ

表29-11 apex.item( pNd ).addValue( pValue )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pValue

(文字列)

必須

設定される値。

戻り値

なし。

例

この例では、P1_ITEMと呼ばれるページ・アイテムにおいて、現在選択された値に値100が追加されます。

apex.item( "P1_ITEM" ).addValue('100') ;

apex.item( pNd ).disable()

アイテム・タイプを考慮してApplication Expressのアイテム値を無効にし、編集不可にします。

パラメータ

なし。

戻り値

なし。

例

この例では、P1_ITEMと呼ばれるページ・アイテムは無効化され、編集不可となります。

apex.item( "P1_ITEM" ).disable() ;

apex.item( pNd ).enable()

アイテム・タイプを考慮してApplication Expressのアイテム値を有効化し、編集可能にします。

パラメータ

なし。

戻り値

なし。

例

この例では、P1_ITEMと呼ばれるページ・アイテムは有効化され、編集可能となります。

apex.item( "P1_ITEM" ).enable() ;

apex.item( pNd ).getValue()

現在のアイテム・タイプを考慮して、ページにおけるApplication Expressのアイテムの現行値を戻します。これはセッション・ステートからアイテムの現行値を戻すのではなく(同じである可能性もありますが)、現在のページ上にある値を戻します。

アイテム値を戻す.getValue(). $v( pNd )に関連するファンクションは2つあり、この形式でアイテム値は送信されます。これは単一の値か、またはアイテムが複数の値をサポートする場合は、: (コロン)で区切られた値リストとなります。$v2( pNd )ファンクションもあり、これは.getValue()へのショートカットで、単一の値または値の配列のいずれかを戻します。

パラメータ

なし。

戻り値

表29-12 apex.item( pNd ).getValue()の戻り値

名前

説明

(文字列|配列)

単一の文字列値か、アイテムが複数の値をサポートする場合(たとえば「選択リスト」の「複数選択を許可」属性を「はい」または「シャトル」・ネイティブ・アイテム・タイプに設定)は、文字列値の配列のいずれかを戻します。

例

この例では、P1_ITEMと呼ばれるページ・アイテムの現行値は、アラートで表示されます。

alert( "P1_ITEM value = " +  apex.item( "P1_ITEM" ).getValue()  );

apex.item( pNd ).hide( pHideRow)

アイテム・タイプを考慮して、Application Expressのアイテム値を非表示にします。.hide()ファンクションを使用するときは、次を理解することが重要です。

- 非表示となっているアイテムが、表のレイアウトを使用しているページ(このページが、「グリッド・レイアウト・タイプ」が「HTML表」に設定されているページ・テンプレートを参照している)でレンダリングされ、非表示にするためのコールで表の行全体の非表示を指定すると(pHideRow = TRUE)、このアイテムに関連するすべてがその行に含まれると見なされ、行全体が非表示になります。

- 非表示となっているアイテムが、表のレイアウトを使用しているページでレンダリングされ、非表示にするためのコールで表の行全体の非表示を指定しないと(pHideRow = FALSE、または指定しない)、ファンクションは、FOR属性がアイテムのIDに一致する場合に、そのアイテムのラベルを非表示にしようとします。

- 非表示となっているアイテムが、グリッド・レイアウトを使用しているページ(このページが「グリッド・レイアウト・タイプ」が「固定列数」または「可変列数」に設定されているページ・テンプレートを参照している)でレンダリングされ、このアイテムが既知のIDのある「フィールド・コンテナ」要素を含む「ラベル」・テンプレートを参照している場合(「フィールド・コンテナ」→「「ラベルの前」とアイテム」属性にid="#CURRENT_ITEM_CONTAINER_ID#"のHTML要素が含まれる場合)、このアイテムに関連するすべてが「フィールド・コンテナ」に含まれると見なされ、非表示になります。

パラメータ

表29-13 apex.item( pDN ).hide( pHideRow )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pHideRow

(文字列|配列)

オプション

FALSE

TRUEの場合、表の同じ行(TR)が非表示となります。アイテムが表のレイアウトを使用しているページにある場合(ページが「グリッド・レイアウト・タイプ」が「HTML表」に設定されているページ・テンプレートを参照している場合)にのみ、適用可能です。

戻り値

なし。

例

この例では、P1_ITEMと呼ばれるページ・アイテムは非表示になります。P1_ITEMがグリッド・レイアウトを使用しているページ上にあり、そのアイテムが、「フィールド・コンテナ」要素と既知のIDが含まれる「ラベル」・テンプレートを参照している場合(詳細については前述のとおり)、このコンテナ要素は非表示になります。その他の場合は、アイテムおよび対応するラベルは非表示になります。

apex.item( "P1_ITEM" ).hide();

この例では、P1_ITEMと呼ばれるページ・アイテムが含まれる表の行全体(TR)が非表示になります(pHideRow = TRUEのため)。表の行全体の非表示は、表のレイアウトを使用するページ上でのみ使用してください。P1_ITEMがグリッド・レイアウトを使用しているページ上にある場合、pHideRow = TRUEの引き渡しが機能せず、正しくない表の行が誤って非表示になり、ページ・レイアウトに悪影響が生じます。

apex.item( "P1_ITEM" ).hide(true);

apex.item( pNd ).isEmpty()

Application Expressのアイテムが空かどうかでTRUEまたはFALSEを戻します(空白、タブ、フォーム・フィードなどの空白文字のみで構成されるアイテム値を空と見なします)。また、アイテム・タイプで「LOV」が使用されているかどうか、および「LOV」で「NULL戻り値」が定義されているかどうかについても考慮します。この場合、「NULL戻り値」は、アイテムが空である場合にアサートするために使用されます。

パラメータ

なし。

戻り値

表29-14 apex.item( pNd ).isEmpty()の戻り値

タイプ

説明

(ブール)

Application Expressのアイテムが空かどうかでTRUEまたはFALSEを戻します。

例

この例では、P1_ITEMと呼ばれるページ・アイテムが空かどうかを.isEmpty()へのコールによって確認し、空の場合はアラートを表示します。

if( apex.item( "P1_ITEM" ).isEmpty()  ) {
alert( "P1_ITEM empty!" );
}

apex.item( pNd ).setFocus()

特定のアイテムがどのようにフォーカスを受け取るように設計されているかを考慮し、ユーザーのフォーカスをApplication Expressのアイテムに移動します。

パラメータ

なし。

戻り値

なし。

例

この例では、ユーザーのフォーカスはP1_ITEMと呼ばれるページ・アイテムに設定されています。

apex.item( "P1_ITEM" ).setFocus();

apex.item( pNd ).setStyle( pPropertyName, pPropertyValue )

特定のアイテムがどのようにスタイル設定されるように設計されているかを考慮し、Application Expressのアイテムにスタイルを設定します。

パラメータ

表29-15 apex.item( pNd ).setStyle( pPropertyName, pPropertyValue )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pPropertyName

(CSSプロパティ名)

必須

設定されるCSSプロパティ名。

pPropertyValue

(CSSプロパティ値)

必須

CSSプロパティを設定するために使用される値。

戻り値

なし。

例

この例では、CSSプロパティのcolorが、P1_ITEMと呼ばれるページ・アイテムに対してredに設定されています。

apex.item( "P1_ITEM" ).setStyle( "color", "red" );

apex.item( pNd ).setValue(pValue, pDisplayValue, pSuppressChangeEvent)

アイテム・タイプを考慮して、Application Expressのアイテム値を設定します。このファンクションは、ページ上のApplication Expressアイテムの現行値を設定し、アイテムのセッション・ステートにおける現行値は設定しません。これによってコール元は、必要に応じて、設定されるアイテムにchangeイベントを抑止することもできます。

.setValue()へのショートカットについては、$s( pNd, pValue, pDisplayValue, pSuppressChangeEvent )ファンクションに関する説明を参照してください。

パラメータ

表29-16 apex.item (pNd ).setValue( pValue, pDisplayValue, pSuppressChangeEvent)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pValue

(文字列|配列)

必須

設定される値。複数の値をサポートするアイテムの場合(例: Shuttle)、1つ文字列値配列を渡すことで、複数の値を一度に設定できます。

pDisplayValue

(文字列)

オプション

戻り値が異なる場合に、ページ・アイテムの表示値を設定するために使用されるオプションのパラメータ。たとえば、アイテム・タイプ「ポップアップLOV」の「入力フィールド」属性が「入力不可、表示値の表示と戻り値の格納」の場合、この値で「入力フィールド」が設定されます。このアイテムの非表示の戻り値フィールドを設定するには、pValueの値を使用します。

pSuppressChangeEvent

(ブール)

オプション

FALSE

設定されているアイテムがchangeイベントによってトリガーされないようにするには、TRUEを渡します。

戻り値

なし。

例

この例では、P1_ITEMと呼ばれるページ・アイテムの値は、10に設定されます。pSuppressChangeEventが渡されていないため、デフォルトの動作である、P1_ITEMをトリガーするchangeイベントが発生します。

apex.item( "P1_ITEM" ).setValue( "10" );

この例でP1_ITEMは、「入力フィールド」属性が「入力不可、表示値の表示と戻り値の格納」となっている「ポップアップLOV」のページ・アイテムであり、「入力フィールド」に設定されます。P1_ITEMの表示値は"SALES"に設定され、非表示の戻り値が10に設定されます。pSuppressChangeEventパラメータにtrueが渡されているため、P1_ITEMに関してchangeイベントはトリガーされません。

apex.item( "P1_ITEM" ).setValue( "10", "SALES", true );

apex.item( pNd ).show( pShowRow )

アイテム・タイプを考慮して、Application Expressのアイテム値を表示します。.show()ファンクションを使用するときは、次を理解することが重要です。

- 表示となっているアイテムが、表のレイアウトを使用しているページ(このページが、「グリッド・レイアウト・タイプ」が「HTML表」に設定されているページ・テンプレートを参照している)でレンダリングされ、表示するためのコールで表の行全体の表示を指定すると(pShowRow = TRUE)、このアイテムに関連するすべてがその行に含まれると見なされ、行全体が表示されます。

- 表示となっているアイテムが、表のレイアウトを使用しているページでレンダリングされ、表示するためのコールで表の行全体の表示を指定しないと(pShowRow = FALSE、または指定しない)、ファンクションは、FOR属性がアイテムのIDに一致する場合に、そのアイテムのラベルを表示しようとします。

- 表示となっているアイテムが、グリッド・レイアウトを使用しているページ(このページが「グリッド・レイアウト・タイプ」が「固定列数」または「可変列数」に設定されているページ・テンプレートを参照している)でレンダリングされ、このアイテムが既知のIDのある「フィールド・コンテナ」要素を含む「ラベル」・テンプレートを参照している場合(「フィールド・コンテナ」→「「ラベルの前」とアイテム」属性にid="#CURRENT_ITEM_CONTAINER_ID#"のHTML要素が含まれる場合)、このアイテムに関連するすべてが「フィールド・コンテナ」に含まれると見なされ、表示になります。

パラメータ

表29-17 apex.item ( pNd ).show( pShowRow )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pShowRow

(文字列|配列)

オプション

FALSE

TRUEの場合、表の同じ行(TR)が表示となります。アイテムが表のレイアウトを使用しているページにある場合(ページが「グリッド・レイアウト・タイプ」が「HTML表」に設定されているページ・テンプレートを参照している場合)にのみ、適用可能です。

戻り値

なし。

例

この例では、P1_ITEMと呼ばれるページ・アイテムが表示されます。P1_ITEMがグリッド・レイアウトを使用しているページ上にあり、そのアイテムが、「フィールド・コンテナ」要素と既知のIDが含まれる「ラベル」・テンプレートを参照している場合(詳細については前述のとおり)、このコンテナ要素は表示されます。その他の場合には、アイテムおよび対応するラベルが表示されます。

apex.item( "P1_ITEM" ).show();

この例では、P1_ITEMと呼ばれるページ・アイテムが含まれる表の行全体(TR)が表示されます(pShowRow = TRUEのため)。表の行全体の表示は、表のレイアウトを使用するページ上でのみ使用してください。P1_ITEMがグリッド・レイアウトを使用しているページ上にある場合、pShowRow = TRUEの引き渡しが機能せず、正しくない表の行が誤って表示され、ページ・レイアウトに悪影響が生じます。

apex.item( "P1_ITEM" ).show(true);

apex.langネームスペース

このネームスペースは、Oracle Application Expressのローカライズ関連のファンクションに使用します。

- apex.lang.addMessages ( pMessages )

- apex.lang.clearMessages ( pMessages )

- apex.lang.format ( pPattern, ...* )

- apex.lang.formatMessage ( pKey, ...* )

- apex.lang.formatMessageNoEscape ( pKey, ...* )

- apex.lang.formatNoEscape ( pPattern, ...* )

- apex.lang.getMessage ( pKey )

apex.lang.addMessages ( pMessages )

getMessageおよびformatファンクションで使用するメッセージを追加します。複数回コールできます。追加メッセージがマージされます。「JavaScriptで使用」が「はい」に設定されているアプリケーション・テキスト・メッセージ全部を使用して自動的にコールされるため、通常、このファンクションをコールする必要はありません。

パラメータ

表29-18 apex.lang.addMessages( ...* )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pMessages

｛オブジェクト｝

必須

プロパティがメッセージ・キーのオブジェクトで、値はローカライズされたメッセージ・テキストです。

例

この例では、メッセージを追加します。

apex.lang.addMessages({
APPLY_BUTTON_LABEL: "Apply"
});

apex.lang.clearMessages ( pMessages )

すべてのメッセージを削除します。

パラメータ

なし。

例

この例では、すべてのメッセージを削除します。

apex.lang.clearMessages()

apex.lang.format ( pPattern, ...* )

formatMessageと同じですが、メッセージ・パターンが直接指定される(すでにローカライズされている、またはローカライズされることになっていない)ことを除きます。キーではありません。「apex.lang.formatMessage ( pKey, ...* )」を参照してください。

パラメータ

表29-19 apex.lang.format( pPattern, ...*)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pPattern

{文字列}

必須

1つ以上のパラメータ(%0から%9)を含むメッセージ・パターン。

{...*}

オプション

メッセージ・パラメータ(%0から%9)ごとに1つのオプションの置換値。文字列でない引数は文字列に変換されます。

戻り値

表29-20 apex.lang.format( pPattern, ...*)の戻り値

タイプ

説明

{文字列}

ローカライズされた書式設定済のメッセージ・テキスト。

例

この例では、totalCost変数が34.00であるとすれば、Total cost: $34.00を戻します。

apex.lang.format("Total cost: $%0", orderTotal);

apex.lang.formatMessage ( pKey, ...* )

メッセージの書式を設定します。メッセージのパラメータ(%0から%9)は対応するファンクションの引数で置換されます。単一の%を含めるには、%%を使用します。置換引数はHTMLエスケープされます。

パラメータ

表29-21 apex.lang.formatMessage( pKey, ...*)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pKey

{文字列}

必須

キーは、getMessageと同様に、ローカライズされたメッセージ・テキストの参照に使用されます。

{...*}

オプション

メッセージ・パラメータ(%0から%9)ごとに1つのオプションの置換値。

戻り値

表29-22 apex.lang.formatMessage( pKey, ...*)の戻り値

タイプ

説明

{文字列}

ローカライズされた書式設定済のメッセージ・テキスト。キーが見つからない場合、そのキーが戻されます。

例

この例では、PROCESS_STATUSメッセージ・テキストが"Process %0%% complete"であり、progress変数の値が60である場合、"Process 60% complete"を戻します。

apex.lang.formatMessage("PROCESS_STATUS", progress);

apex.lang.formatMessageNoEscape ( pKey, ...* )

formatMessageと同じですが、置換引数がHTMLエスケープされないことを除きます。安全であると認識される必要があるか、安全なコンテキストで使用される必要があります。「apex.lang.formatMessage ( pKey, ...* )」を参照してください。

パラメータ

表29-23 apex.lang.formatMessageNoEscape( pKey, ...*)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pKey

{文字列}

必須

キーは、getMessageと同様に、ローカライズされたメッセージ・テキストの参照に使用されます。

{...*}

オプション

メッセージ・パラメータ(%0から%9)ごとに1つのオプションの置換値。

戻り値

表29-24 apex.lang.formatMessageNoEscape( pKey, ...*)の戻り値

タイプ

説明

{文字列}

ローカライズされた書式設定済のメッセージ・テキスト。キーが見つからない場合、そのキーが戻されます。

例

この例では、CONFIRMメッセージ・テキストが"You entered %0"であり、inputValue変数の値が"<ok>"の場合、"You entered <ok>"を戻します。この文字列は、XSS脆弱性を回避するためにHTMLエスケープが実行されるコンテキストで使用する必要があります。

apex.lang.formatMessageNoEscape("CONFIRM", inputValue);

apex.lang.formatNoEscape ( pPattern, ...* )

formatと同じですが、置換引数がHTMLエスケープされないことを除きます。安全であると認識される必要があるか、安全なコンテキストで使用される必要があります。「apex.lang.format ( pPattern, ...* )」を参照してください。

パラメータ

表29-25 apex.lang.formatNoEscape( pPattern, ...*)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pPattern

{文字列}

必須

1つ以上のパラメータ(%0から%9)を含むメッセージ・パターン。

{...*}

オプション

メッセージ・パラメータ(%0から%9)ごとに1つのオプションの置換値。

戻り値

表29-26 apex.lang.formatNoEscape( pPattern, ...*)の戻り値

タイプ

説明

{文字列}

ローカライズされた書式設定済のメッセージ・テキスト。キーが見つからない場合、そのキーが戻されます。

例

この例では、inputValue変数の値が"<ok>"の場合、"You entered <ok>"を戻します。この文字列は、XSS脆弱性を回避するためにHTMLエスケープが実行されるコンテキストで使用する必要があります。

apex.lang.formatNoEscape("You entered %0", inputValue);

apex.lang.getMessage ( pKey )

指定されたキーに関連付けられたメッセージを戻します。キーは、addMessagesで追加されたメッセージで検索されます。

パラメータ

表29-27 apex.lang.getMessage( pKey)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pKey

{文字列}

必須

メッセージ・キー。

戻り値

表29-28 apex.lang.getMessage( pKey)の戻り値

タイプ

説明

{文字列}

ローカライズされたメッセージ・テキスト。キーが見つからない場合、そのキーが戻されます。

例

この例では、キーOK_BTN_LABELのローカライズされたテキストが"OK"の場合、"OK"を戻します。

apex.lang.getMessage("OK_BTN_LABEL");

apex.navigationネームスペース

apex.navigationネームスペースは、Oracle Application Expressのポップアップおよびリダイレクト関連のファンクションを格納します。

- apex.navigation.dialog(pUrl,pOptions,pCssClasses,pTriggeringElement)

- apex.navigation.dialog.cancel(plsModal)

- apex.navigation.dialog.close(plsModal,pAction)

- apex.navigation.dialog.fireCloseHandler(pHandler$,pAction)

- apex.navigation.dialog.registerCloseHandler(pOptions)

- apex.navigation.openInNewWindow(pUrl,pWindowName,pOptions)

- apex.navigation.popup(pOptions)

- apex.navigation.popup.close(pItem,pValue)

- apex.navigation.redirect(pUrl)

apex.navigation.dialog(pUrl,pOptions,pCssClasses,pTriggeringElement)

指定されたページをダイアログで開きます。モバイルUIの場合、ページはmobile.changePageコールでロール'dialog'を使用してロードされます。デスクトップUIの場合、モーダル・ページがjQuery UIダイアログ・ウィジェットを使用してiframeにロードされます。デスクトップUIの場合、非モーダル・ページがポップアップ・ブラウザ・ウィンドウにロードされます。名前_self、_parentおよび_topは使用できません。ウィンドウ名は、他のアプリケーションと共有できないように一意にします。あらゆる手段を尽くしてそのウィンドウをフォーカスします。

パラメータ

pUrl {String} the url of the page to load.
pOptions {Object} object to identify the attributes of the dialog, with the following properties:
title - the title of the dialog. The default is the name of the page.
height - height of dialog content area, in pixels, default is 500.
width - width of window content area, in pixels, default 500.
maxWidth - maximum width of window content area, in pixels, default 1500.
modal - true or false. Default is true.
dialog_attributes - optional attribute, to allow the setting of any additional options supported by the underlying dialog implementation.
For example, to define jQuery UI Dialog attribute resizable:

resizable:false

See Also: See jQuery UI documentation of Dialog widget for all other available options for a modal dialog in a desktop user interface.
http://api.jqueryui.com/

See jQuery Mobile documentation of Dialog widget for all other available options for a modal dialog in a mobile user interface.
http://jquerymobile.com/

pCssClasses {String} to identify the CSS classes, if any, to be applied to the dialog, and appended on to the dialogClass attribute
pTriggeringElement {String} jQuery selector to identify APEX page element opening the dialog

戻り値

Not applicable.

例

apex.navigation.dialog(url, {
title:'About',
height:'480',
width:'800',
maxWidth:'1200',
modal:true,
resizable:false },
'a-Dialog--uiDialog',
$('#myregion_static_id'));

apex.navigation.dialog.cancel(plsModal)

ダイアログ・ウィンドウを閉じます。

パラメータ

pIsModal {Boolean} to identify whether the dialog is modal.

戻り値

Not applicable.

apex.navigation.dialog.close(plsModal,pAction)

操作を実行して、ダイアログ・ウィンドウを閉じます。

パラメータ

pIsModal {Boolean} to identify whether the dialog is modal.
pAction {String, Function, Object} can be
-) a URL which will trigger a redirect in the parent page
-) a function to redirect to a different dialog page
-) false to cancel the dialog
-) an object of page items and values which will be exposed in the 'Dialog Closed dynamic action event

戻り値

Not applicable.

例

モーダル・ダイアログ・ページ間のチェーンを処理するには、次のようにします。

apex.navigation.dialog.close(true, function( pDialog ) {
apex.navigation.dialog(url, {
title:'About',
height:'480',
width:'800',
maxWidth:'1200',
modal:true,
dialog:pDialog,
resizable:false },
'a-Dialog--uiDialog',
$('#myregion_static_id'));

});

apex.navigation.dialog.fireCloseHandler(pHandler$,pAction)

ダイアログのオープン時に、registerCloseHandlerで登録されたダイアログの"close"内部イベントを起動します。

パラメータ

pOptions {Object} pOptions has to contain the following attributes
"handler$" jQuery object where the event will be registered for.
"dialog" DOM/jQuery/... object of the current dialog instance which will be passed into the open dialog call if the existing dialog should be re-used.
"closeFunction" Function which is used to close the dialog.

戻り値

Not applicable.

apex.navigation.dialog.registerCloseHandler(pOptions)

ダイアログの"close"内部イベントを登録します。イベントはfireCloseEventによってトリガーされ、pActionで渡された値に応じて次のように動作します。

- 既存のダイアログを再利用し、別のダイアログ・ページにナビゲートします

- コール元の別のページにナビゲートします

- ダイアログを取り消します

- ダイアログを閉じ、"apexafterclosedialog"イベントをトリガーします

パラメータ

pOptions {Object} pOptions has to contain the following attributes
"handler$" jQuery object where the event will be registered for.
"dialog" DOM/jQuery/... object of the current dialog instance which will be passed into the open dialog call if the existing dialog should be re-used.
"closeFunction" Function which is used to close the dialog.

戻り値

Not applicable.

apex.navigation.openInNewWindow(pUrl,pWindowName,pOptions)

指定されたURLを新しい名前付きウィンドウまたはタブで開きます(ブラウザ/ブラウザのユーザー・プリファレンス設定によってウィンドウを使用するかタブを使用するかを制御することもあります)。その名前のウィンドウがすでに存在する場合は、それを再利用します。名前_self、_parentおよび_topは使用できません。ウィンドウ名は、他のアプリケーションと共有できないように一意にします。あらゆる手段を尽くしてそのウィンドウをフォーカスします。

注意:
FirefoxおよびIEでは、タブがブラウザ・ウィンドウで現在アクティブなタブでない場合、そのタブはフォーカスされません。そのため、favorTabbedBrowsingがTRUEでない場合、このAPIではフォーカスされる可能性が高まるようにURLを新しいウィンドウで開くことを強制します。

注意:
Operaの場合、フォーカスが機能するように、「詳細設定」/「コンテンツ」 > 「JavaScriptオプション」: 「ウィンドウの強制前面表示を許可する」を選択する必要があります。

注意:
ポップアップ・ブロッカーによる抑制を回避するには、リンクまたはボタンのクリック・イベント・ハンドラからこのファンクションをコールします。

パラメータ

pUrl {String} the url of the page to load.
pWindowName {String} the name of the window (optional) The default is "_blank"
pOptions {Object} optional object with the following properties:
favorTabbedBrowsing  - {Boolean} if true don't try to force a new window for the benefit of being able to focus it. This option only affects Firefox and IE.

戻り値

Returns the window object of the named window or null if for some reason the window isn't opened.

例

apex.navigation.openInNewWindow(url, "MyWindow");

apex.navigation.popup(pOptions)

指定されたURLを、一般的に名前付きの新しいポップアップ・ウィンドウで開きます。その名前のウィンドウがすでに存在する場合は、それを再利用します。名前が指定されていない場合または名前が"_blank"の場合は、新しい名前なしポップアップ・ウィンドウが開きます。名前_self、_parentおよび_topは使用できません。ウィンドウ名は、他のアプリケーションと共有できないように一意にします。

注意:
ポップアップ・ブロッカーによる抑制を回避するには、リンクまたはボタンのクリック・イベント・ハンドラからこのファンクションをコールします。

パラメータ

pOptions {Object} an object with the following optional properties:
url - the page url to open in the window. The default is "about:blank"
name - the name of the window. The default is "_blank", which opens a new unnamed window.
height - height of window content area in pixels. Default 600
width - width of window content area in pixels. Default 600
scroll - "yes" or "no" Default is "yes"
resizeable - "yes" or "no" Default is "yes"
toolbar - "yes" or "no" Default is "no"
location - "yes" or "no" Default is "no"
statusbar - "yes" or "no" Default is "no" This controls the status feature
menubar - "yes" or "no" Default is "no"

戻り値

Not applicable.

例

apex.navigation.popup ({
url: "about:blank",
name: "_blank",
width: 400,
height: 400,
scroll: "no",
resizable: "no",
toolbar: "yes" });

apex.navigation.popup.close(pItem,pValue)

親ウィンドウ内のアイテム(pItem)の値を(pValue)に設定してから、ポップアップ・ウィンドウを閉じます。

パラメータ

pItem (DOM node | string ID)
pValue (string)

戻り値

Not applicable.

apex.navigation.redirect(pUrl)

指定されたページ(pUrl)を現在のウィンドウで開きます。

パラメータ

pWhere {String} the url of the page to open in the current window

戻り値

Not applicable.

apex.server namespace

apex.serverネームスペースは、Oracle Application Expressのサーバー部分と通信するためのすべてのAjaxファンクションを格納します。

- apex.server.plugin(pAjaxIdentifier,pData,pOptions)

- apex.server.pluginUrl( pAjaxIdentifier, pData )

- apex.server.process( pName, pData, pOptions )

- apex.server.url( pData ) (pPage)

apex.server.plugin(pAjaxIdentifier,pData,pOptions)

このファンクションは、プラグインに定義されているPL/SQL Ajaxファンクションをコールします。このファンクションは、jQuery.ajaxファンクションのラッパーであり、Application Expressに固有の追加機能に加えて、jQueryファンクションで提供されるすべての設定をサポートします。

パラメータ

表29-29 apex.server.plugin(pAjaxIdentifier,pData,pOptions)のパラメータ

パラメータ

タイプ

オプション/必須

説明

pAjaxIdentifier

(文字列)

必須

PL/SQLパッケージapex_plugin.get_ajax_identifierによって戻される値を使用して、プラグインを特定します。

pData

｛オブジェクト｝

オプション

Ajaxリクエストとともに送信される追加の値を送信するためにオプションで使用可能なオブジェクト。タイプにjQueryセレクタ、jQueryオブジェクト、DOMオブジェクトまたはアイテム名の配列を選択できる特別な属性pageItemsによって、URLに含む必要のあるページ・アイテムが指定されます。ただし、wwv_flow.showプロシージャによって提供される追加のパラメータを設定することもできます(たとえば、スカラー・パラメータx01 - x10および配列f01 - f20を設定できます)。

pOptions

｛オブジェクト｝

オプション

Ajaxによって使用される追加のオプションを設定するためにオプションで使用可能なオブジェクト。次に示すApplication Expressに固有のオプションの属性がサポートされます。

refreshObject: apexbeforerefreshイベントおよびapexafterrefreshイベントを起動するDOM要素を特定するjQueryセレクタ、jQueryオブジェクトまたはDOMオブジェクト。

refreshObjectData: apexbeforerefreshイベントおよびapexafterrefreshイベントをトリガーするコードによって内部で渡されるデータを指定して、これらのイベントに定義されたすべてのハンドラがこのデータにアクセスできるようにします。「リフレッシュ前」イベントまたは「リフレッシュ後」イベントに定義された動的アクションでは、JavaScriptからthis.dataプロパティを使用してこのデータにアクセスできます。カスタムjQueryイベント・ハンドラの場合、イベント・ハンドラのpDataパラメータを介してこのデータにアクセスできます。

clear: apexbeforerefreshイベントの起動後、実際のAjaxコールがトリガーされる前に、DOMをクリアするために使用されるJavaScriptファンクション。

loadingIndicator: ロード・インジケータの横に表示する必要のあるDOM要素を指定するjQueryセレクタ、jQueryオブジェクトまたはDOMオブジェクト。loadingIndicatorは、jQueryオブジェクトとしてロード・インジケータを取得するファンクションにすることもでき、作成されたロード・インジケータにjQuery参照を戻す必要があります。次に例を示します。

function( pLoadingIndicator ) {
return pLoadingIndicator.prependTo ( apex.jQuery( "td.shuttleControl", gShuttle ))
}

loadingIndicatorPosition: ロード・インジケータの表示位置を定義する6つのオプション。loadingIndicatorに渡される値がファンクションでない場合にのみ考慮されます。

- before: loadingIndicatorによって定義されるDOM要素の前に表示します。

- after: loadingIndicatorによって定義されるDOM要素の後に表示します。

- prepend: loadingIndicatorによって定義されるDOM要素の先頭の内側に表示します。

- append: loadingIndicatorによって定義されるDOM要素の末尾の内側に表示します。

- centered: loadingIndicatorによって定義されるDOM要素の中央に表示します。

- page: ページの中央に表示します。

参照: 使用可能な他のすべての属性については、jQuery.ajaxに関するjQueryドキュメントを参照してください。dataType属性は、デフォルトでjsonに設定されます。

http://docs.jquery.com/

戻り値

表29-30 戻り値

タイプ

説明

｛オブジェクト｝

jqXHRオブジェクトを戻します。

参照: このオブジェクトの詳細は、jQueryドキュメントを参照してください。

http://docs.jquery.com/

例

apex.server.pluginへのこのコールによって、スカラー値x01がtest (apex_application.g_x01を使用してPL/SQLからアクセス可能)に設定され、セッション・ステートにページ・アイテムのP1_DEPTNOおよびP1_EMPNOの値が(jQueryセレクタ構文を使用して)設定されます。apexbeforerefreshイベントおよびapexafterrefreshイベントを起動する要素として、P1_MY_LISTアイテムが使用されます。P1_MY_LISTは、横にロード・インジケータが表示される要素として使用されます。成功のコールバックはスタブ・アウトされ、コールが正常に戻された際に起動される独自のコードを開発者が追加するために使用されます。lAjaxIdentifierの値は、サーバーのPL/SQL API apex_plugin.get_ajax_identifierによって戻される値に設定する必要があります。

成功のコールバックに対するpDataパラメータには、コールから送信されるすべてのレスポンスが含まれます。

apex.server.plugin ( lAjaxIdentifier, {
x01: "test",
pageItems: "#P1_DEPTNO,#P1_EMPNO"
}, {
refreshObject:     "#P1_MY_LIST",
loadingIndicator:  "#P1_MY_LIST",
success: function( pData ) { ... do something here ... }
} );

apex.server.pluginUrl( pAjaxIdentifier, pData )

このファンクションは、プラグインに定義されているPL/SQL Ajaxファンクションに対してGETリクエストを発行するためのURLを戻します。

パラメータ

表29-31 apex.server.pluginUrl( pAjaxIdentifier, pData)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pAjaxIdentifier

(文字列)

必須

PL/SQLパッケージapex_plugin.get_ajax_identifierによって戻される値を使用して、プラグインを特定します。

pData

｛オブジェクト｝

オプション

URLに含む追加の値を設定するためにオプションで使用可能なオブジェクト。タイプにjQueryセレクタ、jQueryオブジェクト、DOMオブジェクトまたはアイテム名の配列を選択できる特別な属性pageItemsによって、URLに含むページ・アイテムが指定されます。wwv_flow.showプロシージャによって提供される追加のパラメータを設定することもできます(たとえば、スカラー・パラメータx01 - x10および配列f01 - f20を設定できます)。

戻り値

表29-32 戻り値

タイプ

説明

(文字列)

GETリクエストを発行するためのURL。

例

apex.server.pluginUrlへのこのコールによって、プラグインに定義されているPL/SQL Ajaxファンクションに対してGETリクエストを発行するためのURLが戻され、スカラー値x01がtest (apex_application.g_x01を使用してPL/SQLからアクセス可能)に設定され、セッション・ステートにページ・アイテムのP1_DEPTNOおよびP1_EMPNOの値が(jQueryセレクタ構文を使用して)設定されます。lAjaxIdentifierの値は、サーバーのPL/SQL API apex_plugin.get_ajax_identifierによって戻される値に設定する必要があります。

var lUrl = apex.server.pluginUrl ( lAjaxIdentifier, {
x01: "test",
pageItems: "#P1_DEPTNO,#P1_EMPNO" } );

apex.server.process( pName, pData, pOptions )

このファンクションは、ページ・レベルまたはアプリケーション・レベルで定義されたPL/SQLオンデマンド(Ajaxコールバック)プロセスをコールします。このファンクションは、jQuery.ajaxファンクションのラッパーであり、Application Expressの追加機能を提供するとともに、jQueryファンクションで提供されるすべての設定をサポートします。

パラメータ

表29-33 apex.server.processのパラメータ

名前

タイプ

オプション/必須

説明

pName

(文字列)

必須

コールするPL/SQLオンデマンド・ページ・プロセスまたはPL/SQLオンデマンド・アプリケーション・プロセスの名前。

pData

｛オブジェクト｝

オプション

Ajaxリクエストとともに送信される追加の値を送信するためにオプションで使用可能なオブジェクト。タイプにjQueryセレクタ、jQueryオブジェクト、DOMオブジェクトまたはアイテム名の配列を選択できる特別な属性pageItemsによって、URLに含むページ・アイテムが指定されます。wwv_flow.showプロシージャによって提供される追加のパラメータを設定することもできます(たとえば、スカラー・パラメータx01 - x10および配列f01 - f20を設定できます)。

pOptions

｛オブジェクト｝

オプション

Ajaxによって使用される追加のオプションを設定するためにオプションで使用可能なオブジェクト。

これは、次に示すApplication Expressに固有のオプションの属性をサポートします。

refreshObject: apexbeforerefreshイベントおよびapexafterrefreshイベントを起動するDOM要素を特定するjQueryセレクタ、jQueryオブジェクトまたはDOMオブジェクト。

refreshObjectData: apexbeforerefreshイベントおよびapexafterrefreshイベントをトリガーするコードによって内部で渡されるデータを指定して、これらのイベントに定義されたすべてのハンドラがこのデータにアクセスできるようにします。「リフレッシュ前」イベントまたは「リフレッシュ後」イベントに定義された動的アクションでは、JavaScriptからthis.dataプロパティを使用してこのデータにアクセスできます。カスタムjQueryイベント・ハンドラの場合、イベント・ハンドラのpDataパラメータを介してこのデータにアクセスできます。

clear: apexbeforerefreshイベントの起動後、実際のAjaxコールがトリガーされる前に、DOMをクリアするために使用されるJavaScriptファンクション。

loadingIndicator: ロード・インジケータの横に表示する必要のあるDOM要素を指定するjQueryセレクタ、jQueryオブジェクトまたはDOMオブジェクト。loadingIndicatorは、jQueryオブジェクトとしてロード・インジケータを取得するファンクションにすることもでき、作成されたロード・インジケータにjQuery参照を戻す必要があります。次に例を示します。

function( pLoadingIndicator ) {
return lLoadingIndicator.prependTo ( apex.jQuery(
"td.shuttleControl", gShuttle ))
}

loadingIndicatorPosition: ロード・インジケータの表示位置を定義する6つのオプション。loadingIndicatorに渡される値がファンクションでない場合にのみ考慮されます。

before: loadingIndicatorによって定義されるDOM要素の前に表示します

after: loadingIndicatorによって定義されるDOM要素の後に表示します

prepend: loadingIndicatorによって定義されるDOM要素の先頭の内側に表示します

append: loadingIndicatorによって定義されるDOM要素の末尾の内側に表示します

centered: loadingIndicatorによって定義されるDOM要素の中央に表示します。

page: ページの中央に表示します。

参照: 使用可能な他のすべての属性については、jQuery.ajaxに関するjQueryドキュメントを参照してください。dataType属性は、デフォルトでjsonに設定されます。

このオブジェクトの詳細は、jQueryドキュメントを参照してください。

http://docs.jquery.com/

戻り値

表29-34 戻り値

タイプ

説明

｛オブジェクト｝

jqXHRオブジェクトを戻します。

このオブジェクトの詳細は、jQueryドキュメントを参照してください。

http://docs.jquery.com/

例

apex.server.processへのこのコールによって、MY_PROCESSというオンデマンド・プロセスがコールされ、スカラー値x01がtest (apex_application.g_x01を使用してPL/SQLからアクセス可能)に設定され、セッション・ステートにページ・アイテムのP1_DEPTNOおよびP1_EMPNOの値が(jQueryセレクタ構文を使用して)設定されます。成功のコールバックはスタブ・アウトされ、コールが正常に戻された際に起動される独自のコードを開発者が追加するために使用されます。

注意: 成功のコールバックに対するpDataパラメータには、コールから送信されるすべてのレスポンスが含まれます。

apex.server.process ( "MY_PROCESS", {
x01: "test",
pageItems: "#P1_DEPTNO,#P1_EMPNO"
}, {
success: function( pData ) { ... do something here ... }
} );

apex.server.url( pData ) (pPage)

このファンクションは、現在のページに対してGETリクエストを発行するためのURLを戻します。

パラメータ

表29-35 apex.server.url( pData, pPage)のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pData

｛オブジェクト｝

オプション

URLに含む追加の値を設定するためにオプションで使用可能なオブジェクト。タイプにjQueryセレクタ、jQueryオブジェクト、DOMオブジェクトまたはアイテム名の配列を選択できる特別な属性pageItemsによって、URLに含むページ・アイテムが指定されます。wwv_flow.showプロシージャによって提供される追加のパラメータを設定することもできます(たとえば、スカラー・パラメータx01 - x10および配列f01 - f20を設定できます)。

pPage

{文字列}

オプション

戻されるURLにページIDを設定するためにオプションで使用可能な現在のページのページID。

戻り値

表29-36 戻り値

タイプ

説明

(文字列)

GETリクエストを発行するためのURL。

例

apex.server.urlへのこのコールによって、このページに定義されているDELETEファンクションに対してGETリクエストを発行するためのURLが戻され、スカラー値x01がtest (apex_application.g_x01を使用してPL/SQLからアクセス可能)に設定され、セッション・ステートにページ・アイテムのP1_DEPTNOおよびP1_EMPNOの値が(jQueryセレクタ構文を使用して)設定されます。

apex.server.url ({
p_request: "DELETE",
x01: "test",
pageItems: "#P1_DEPTNO,#P1_EMPNO" });

apex.storageネームスペース

apex.storageネームスペースは、Oracle Application Expressのすべての記憶域関連ファンクションを格納します。

- apex.storage.getCookie(pName)

- apex.storage.setCookie(pName,pValue)

apex.storage.getCookie(pName)

Cookie名(pName)の値を戻します。

戻り値

Not applicable.

パラメータ

pName (String)

apex.storage.setCookie(pName,pValue)

Cookie (pName)を指定の値(pValue)に設定します。

戻り値

Not applicable.

パラメータ

pName (String)
pValue (String)

apex.utilネームスペース

apex.utilネームスペースは、Oracle Application Expressの汎用ユーティリティ・ファンクションを格納します。

- apex.util.showSpinner

- apex.util.delayLinger

apex.util.showSpinner

ユーザー処理が実行されていることを示すスピン・アラートをレンダリングするファンクション。アラートは、スクリーン・リーダーなどの支援テクノロジが処理ステータスへの注意を喚起されるようにARIAアラートとして定義されます。

パラメータ

表29-37 util.showSpinnerのパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pContainer

｛オブジェクト｝

オプション

$("body")

スピナーを中央に置くコンテナを特定するオプションのjQueryセレクタ、jQueryまたはDOMオブジェクト。渡されない場合、スピナーはページ全体の中央に配置されます。

pOptions

｛オブジェクト｝

オプション

Processing

"alert"オプション(非表示でも、支援テクノロジで使用可能なアラート・テキスト)があるオプションのオブジェクト。デフォルトは、Processingです。

戻り値

表29-38 戻り値

タイプ

説明

｛オブジェクト｝

スピナーのjQueryオブジェクト。

例

スピナーを表示するには、次のようにします。

var lSpinner$ = apex.util.showSpinner( $( "#container_id" ) );

スピナーを削除するには、次のようにします。

lSpinner$.remove();

apex.util.delayLinger

delayLingerシングルトンは、点滅する進捗インジケータ(スピナーなど)の問題を解決します。しばらく時間がかかるAjaxリクエスト(および後続のユーザー・インタフェースの更新)などのプロセスの場合、何かが発生していることをユーザーに知らせることが重要です。問題は、非同期プロセスが高速の場合、進捗インジケータを必要としないことです。ユーザーは、ユーザー・インタフェースの更新を瞬時に体験します。ごく短時間の非同期プロセスに進捗インジケータを表示して非表示にすると、ユーザーが完全に理解する時間がないほど瞬間的にコンテンツが表示されることになります。良くても、邪魔なものとなり、悪ければ、何かおかしいとか、何か重要なことを見逃したのではないかとユーザーは考えます。インジケータが表示されてすぐにプロセスは終了することもあるため、進捗インジケータを遅らせるだけでは問題の解決になりません。リクエストがすでに終了していたとしても、せめて短くても認識できる程度の時間、インジケータを表示する必要があります。

このオブジェクトを使用すると、このようなapex.util.delayLingerなどの進捗実装による進捗表示の期間の管理が簡単になります。apex.serverネームスペースのファンクションなどのOracle Application Expressの組込み進捗インジケータの多くは、すでにdelayLingerを内部的に使用しているため、このAPIが必要となるのは、実行時間が長い独自のカスタム非同期処理についてのみです。

apex.util.delayLinger.start

このファンクションは、潜在的に実行時間が長い非同期プロセスが起動する際にコールします。各コールが指定されたpScopeNameで始まるには、対応するコールが同じpScopeNameで終わるようにする必要があります。別のpScopeName引数が指定されたコールは互いに干渉しません。

終了するためのコールの前に、同じpScopeNameに対して開始するためのコールが複数あってもかまいませんが、最初のコールのpActionのみが1回しかコールされません。

パラメータ

表29-39 apex.util.delayLinger.startファンクションのパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pScopeName

文字列

進捗インジケータごとに一意の名前。

pAction

ファンクション

進捗インジケータを表示するためにコールするファンクション。

apex.util.delayLinger.finish

このファンクションは、潜在的に実行時間が長い非同期プロセスが終了する際にコールします。各コールが指定されたpScopeNameで始まるには、対応するコールが同じpScopeNameで終わるようにする必要があります。pActionは、対応する開始pActionがコールされた場合のみ、1回コールされます。終了するためのコールが複数ある場合、最後のコールのpActionのみがコールされます。

パラメータ

表29-40 apex.util.delayLinger.finishファンクションのパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pScopeName

文字列

進捗インジケータごとに一意の名前

pAction

ファンクション

進捗インジケータを表示するためにコールするファンクション

例

var lSpinner$, lPromise;
lPromise = doLongProcess();
apex.util.delayLinger.start( "main", function() {
lSpinner$ = util.showSpinner( $( "#container_id" ) );
} );
lPromise.always( function() {
apex.util.delayLinger.finish( "main", function() {
lSpinner$.remove();
} );
} );

apex.widgetネームスペース

apex.widgetネームスペースは、Oracle Application Expressのすべてのウィジェット関連の汎用ファンクションを格納します。

- apex.widget.initPageItem( pName, pOptions)

apex.widget.initPageItem( pName, pOptions)

Application Expressのページ・アイテム名やDOMノードを指定すると、異なるコールバックおよびプロパティをページ・アイテムに登録できます。これは、プラグイン・アイテム・タイプに、Application Expressのクライアント側機能に関する組込みページ・アイテムをシームレスに統合するために必要です。

プラグインの実装の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のプラグインの実装に関する説明を参照してください。

戻り値

なし。

パラメータ

表29-41 apex.widget.initPageItem( pName, pOptions )のパラメータ

名前

タイプ

オプション/必須

デフォルト

説明

pName

(DOMノード|文字列)

必須

Application Expressのページ・アイテム名またはDOMノード。

pOptions

(オブジェクト)

必須(個別のプロパティはオプション)

コールバックおよび一部のアイテム固有値を指定するための、多くのプロパティをサポートします。これらのプロパティを指定することで、特定のプロパティに対してApplication Expressのデフォルト動作をオーバーライドできます。

pOptionプロパティの詳細は、表29-42「pOptionsパラメータのプロパティ」を参照してください。

pOptionsには、次のプロパティの1つを含めることができます。

- getValue()

- setValue( pValue, pDisplayValue )

- enable()

- disable()

- show()

- hide()

- addValue()

- nullValue()

- setFocusTo

- setStyleTo

- afterModify()

- loadingIndicator( pLoadingIndicator$ )

表29-42 pOptionsパラメータのプロパティ

名前

説明

getValue()

アイテム値を取得するためのファンクションを指定します(これによって、デフォルトのページ・アイテムの処理がオーバーライドされます)。アイテムが値を正しく戻すようにするということは、たとえばアイテムでWhen条件を評価するための「動的アクション」、またはアイテムの値を取得するためにJavaScriptファンクション$vをコールする場合などに、Application Expressのクライアント側機能に関する特定のアイテムが動作しているということです。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).getValue()」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテム値が正確に戻されているかどうかを確認するために、apex.item( pNd ).getValue();をコールしてチェックできます。

setValue( pValue, pDisplayValue )

アイテム値を設定するためのファンクションを指定します(これによって、ページ・アイテムのデフォルトの処理がオーバーライドされます)。アイテムが値を正しく設定できるようにするということは、たとえば「動的アクション」の「値の設定」アクションを使用してアイテム値を設定する場合や、JavaScriptファンクション$sをコールしてアイテムの値を設定する場合などに、Application Expressのクライアント側機能に関する特定のアイテムが動作しているということです。

注意: このファンクションが定義されている場合でも、デフォルト処理によって常に.afterModify()ファンクションおよびpSuppressChangeEventパラメータと関連するロジックが処理されるため、プラグイン開発者が関係する範囲外となります。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).setValue(pValue, pDisplayValue, pSuppressChangeEvent)」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテム値が正確に設定されているかどうかを確認するために、apex.item( pNd ).setValue( pValue );をコールしてチェックできます。

enable()

アイテムを有効化するためのファンクションを指定します(これによって、デフォルトのページ・アイテムの処理がオーバーライドされます)。これは、有効化も必要な複合要素からアイテムが構成されている場合、または再利用しようとする独自の有効化メソッドをすでに保有しているウィジェットにアイテムが基づいている場合などに、役立つ可能性があります。アイテムを正しく有効化できるようにするということは、たとえばアイテムを有効化するために「動的アクション」の「有効化」アクションを使用する場合に、Application Expressのクライアント側機能に関する特定のアイテムが動作していることになります

注意: このファンクションが定義されている場合でも、デフォルト処理によって常に.afterModify()ファンクションと関連するロジックが処理されるため、プラグイン開発者が関係する範囲外となります。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).enable()」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテムが正しく有効化されているかどうかを確認するために、apex.item( pNd ).enable();をコールしてチェックできます。

disable()

アイテムを無効化するためのファンクションを指定します(これによって、デフォルトのページ・アイテムの処理がオーバーライドされます)。これは、無効化も必要な複合要素からアイテムが構成されている場合、または再利用しようとする独自の無効化メソッドをすでに保有しているウィジェットにアイテムが基づいている場合などに、役立つ可能性があります。アイテムを正しく無効化できるようにするということは、たとえばアイテムを無効化するために「動的アクション」の「無効化」アクションを使用する場合に、Application Expressのクライアント側機能関連の特定のアイテムが動作していることになります。

注意: このファンクションが定義されている場合でも、デフォルト処理によって常に.afterModify()ファンクションと関連するロジックが処理されるため、プラグイン開発者が関係する範囲外となります。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).disable()」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテムが正しく無効化されているかどうかを確認するために、apex.item( pNd ).disable();をコールしてチェックできます。

show()

アイテムを表示するためのファンクションを指定します(これによって、デフォルトのページ・アイテムの処理がオーバーライドされます)。これは、表示も必要な複合要素からアイテムが構成されている場合、または再利用しようとする独自の表示メソッドをすでに保有しているウィジェットにアイテムが基づいている場合などに、役立ちます。アイテムを正しく表示できるようにするということは、たとえば「動的アクション」の「表示」アクションを使用する場合に、Application Expressのクライアント側機能に関する特定のアイテムが動作してアイテムを表示するということです。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).show( pShowRow )」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテムが正しく表示されているかどうかを確認するために、apex.item( pNd ).show();をコールしてチェックできます。

hide()

アイテムを非表示にするためのファンクションを指定します(これによって、デフォルトのページ・アイテムの処理がオーバーライドされます)。これは、非表示も必要な複合要素からアイテムが構成されている場合、または再利用しようとする独自の非表示メソッドをすでに保有しているウィジェットにアイテムが基づいている場合などに、役立つ可能性があります。アイテムを正しく非表示にできるようにするということは、たとえば「動的アクション」の「非表示」アクションを使用する場合に、Application Expressのクライアント側機能に関する特定のアイテムが動作してアイテムを非表示にするということです。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).hide( pHideRow)」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテムが正しく非表示になっているかどうかを確認するために、apex.item( pNd ).hide();をコールしてチェックできます。

addValue()

アイテムが複数の値をサポートする場合、アイテムに値を追加するためのファンクションを指定します。現在、これに依存するApplication Expressのクライアント側の機能はありません。デフォルトのページ・アイテム処理もありません。

注意: このファンクションが定義されている場合でも、デフォルト処理によって常に.afterModify()ファンクションと関連するロジックが処理されるため、プラグイン開発者が関係する範囲外となります。

このファンクションを定義する方法の詳細は、「apex.item( pNd ).addValue( pValue )」を参照してください。

nullValue

アイテムがnullかどうかの判断に使用される値を指定します。これは、アイテムが「LOV」の定義をサポートする場合、開発者がアイテムの「NULL戻り値」を定義できる場合、およびアイテムがnullまたは空の場合にアサートするため、これをデフォルトのアイテム処理で認識する必要がある場合に使用されます。これは、次の手順に従って行います。

1. プラグイン定義のレンダリング・ファンクションから、ページがロードされる際に起動する、アイテム初期化JavaScriptコードの一部としてp_item.lov_null_valueに格納される値を送信します。次に例を示します。

/* Assumes that you have some JavaScript function called 'com_your_company_your_item' that accepts 2 parameters, the first being the name of the item and the second being an object storing properties (say pOptions) required by the item's client side code. */
apex_javascript.add_onload_code (
p_code => 'com_your_company_your_item('||
apex_javascript.add_value(
apex_plugin_util.page_item_names_to_jquery(p_item.name)||', {'||
apex_javascript.add_attribute('lovNullValue', p_item.lov_null_value, false, false)||
'});' );

2. 次に、com_your_company_your_item( pName, pOptions )の実装において、pOptions.lovNullValueプロパティに、特定のアイテムの「NULL戻り値」に値を定義します。これは、nullValueプロパティを設定するためのapex.widget.initPageItemへのコールに使用できます。
nullValueプロパティを設定すると、たとえばアイテムに関するis nullまたはis not nullのwhen条件を正しく評価するための「動的アクション」において、またはアイテムがnullかどうかを判断するためにJavaScriptファンクションapex.item( pNd ).isEmpty()をコールする場合に、Application Expressのクライアント側機能に関する特定のアイテムが動作していることになります

このAPIの詳細は、「apex.item( pNd ).isEmpty()」を参照してください。

setFocusTo

apex.item( pNd ).setFocus() APIを使用してアイテムにフォーカスを設定する際に、フォーカスを受けとるための要素を指定します。これは、jQueryセレクタ、jQueryまたはDOM要素を識別するDOMオブジェクト、または要素を参照するjQueryオブジェクトを戻すファンクションとして定義できます。これは、アイテムが複合要素から構成され、アイテム名と一致するIDがある要素にフォーカスが移動する(デフォルトの動作)必要がない場合に、役立つ可能性があります。たとえば、属性Input FieldがNot enterable, Show Display Value and Store Return Valueに設定されている場合、ネイティブ・アイテム・タイプPopup LOVは、アイテム名と一致するIDのある主な要素として無効化された入力フィールドと、入力の隣のポップアップ選択アイコンをレンダリングします。この場合、無効化された入力に移動するためのフォーカスが不要であるため、setFocusToアイテムのプロパティを使用して、ポップアップ選択アイコンに設定します。

アイテムがフォーカスを正しく設定できるようにするということは、たとえば「動的アクション」のSet Focusアクションを使用してアイテムへのフォーカスを設定する場合、関連するアイテムに直接移動するために検証エラーのメッセージに表示されるGo to Errorリンクにユーザーが従う場合、またはアイテムがページにおける最初のアイテムで、開発者がページ・レベルの属性Cursor FocusをFirst item on pageに設定した場合などに、Application Expressのクライアント側機能に関する特定のアイテムが動作していることになります。

このAPIの詳細は、「apex.item( pNd ).setFocus()」を参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。このページでページ属性Cursor FocusがFirst item on pageに設定されている場合、ページの最初のアイテムとしてこのアイテムを追加してからこのページを実行することによって、これをチェックできます。アイテムがフォーカスされます。

setStyleTo

apex.item( pNd ).setStyle() APIを使用してアイテムにスタイルを設定する際に、スタイルを受け取るための要素を指定します。これは、jQueryセレクタ、jQueryまたはDOM要素を識別するDOMオブジェクト、または要素を参照するjQueryオブジェクトを戻すファンクションとして定義できます。これは、アイテムが複合要素から構成され、要素にスタイルが設定される必要がない場合に、あるいはアイテム名と一致するIDのある要素のみから構成されている場合(デフォルトの動作)に、役立ちます。アイテムがスタイルを正しく設定できるようにするということは、たとえば「動的アクション」のSet Styleアクションを使用してアイテムにスタイルを追加する場合に、Application Expressのクライアント側機能に関する特定のアイテムが動作していることになります。

注意: このプロパティが定義されている場合でも、デフォルト処理によって常に.afterModify()ファンクションと関連するロジックが処理されるため、プラグイン開発者が関係する範囲外となります。

このAPIの詳細は、apex.item( pNd ).setStyle()に関するドキュメントを参照してください。

注意: Application Expressのそのアイテムのデフォルト処理が動作しているかどうかを最初にチェックする必要があります(動作している場合はこれを指定する必要がありません)。アイテムがスタイルを正確に設定しているかどうかを確認するために、apex.item( pNd ).setStyle( pPropertyName, pPropertyValue );をコールしてチェックできます。

afterModify()

アイテムが変更された後で、呼び出されるファンクションを指定します。これは、たとえばjQuery Mobileなどの一部のフレームワークでウィジェットの変更の有無が通知される必要があるときに(例: 値が設定されたり、これらがネイティブ制御と拡張制御の両方を同期するために無効化されたなど)役立ちます。これを行うためのフックが、このコールバックによって提供されます。

loadingIndicator( pLoadingIndicator$ )

アイテムの一部のページのリフレッシュ中に、アイテムのロード・インジケータが表示される方法を標準化するファンクションを指定します。このファンクションは、最初のパラメータとしてpLoadingIndicator$パラメータを渡す必要があり、ロード・インジケータに関してDOM要素への参照があるjQueryオブジェクトを含んでいます。次にこのファンクションはアイテムのページにおける適切なDOM要素にロード・インジケータを追加し、ロード・インジケータへjQueryオブジェクト参照をも戻すため(これへの参照がフレームワークにあるようなもの)、コールが完了するとこれを削除可能です。

これはたとえば、アイテムがCascading LOVであって「カスケードLOV親アイテム」が変更される場合、またはサーバー側の「動的アクション」(例: Set Value - SQL Statement)の1つを使用することによってアイテムの値を設定する場合に使用されます。

例

次の例では、利用可能なすべてのコールバックおよびプロパティが渡されたapex.widget.initPageItemへのコールを示しています。

apex.widget.initPageItem( "P100_COMPANY_NAME", {
getValue:   function() {
var lValue;
// code to determine lValue based on the item type.
return lValue;
},
setValue:   function( pValue, pDisplayValue ) {
// code that sets pValue and pDisplayValue (if required), for the item type
},
enable:     function() {
// code that enables the item type
},
disable:    function() {
// code that disables the item type
},
show:       function() {
// code that shows the item type
},
hide:       function() {
// code that hides the item type
},
addValue:   function( pValue ) {
// code that adds pValue to the values already in the item type
},
nullValue:  "<null return value for the item>",
setFocusTo: $( "<some jQuery selector>" ),
setStyleTo: $( "<some jQuery selector>" ),
afterModify:        function(){
// code to always fire after the item has been modified (value set, enabled, etc.)
},
loadingIndicator:   function( pLoadingIndicator$ ){
// code to add the loading indicator in the best place for the item
return pLoadingIndicator$;
}
});

非ネームスペースのJavascript API

この項には、Oracle Application Expressのその他すべての非ネームスペースのAPIが含まれています(非常によく使用されるファンクションへのショートカットを含む)。

- $x(pNd)

- $v(pNd)

- $v2(pNd)

- $s(pNd, pValue, pDisplayValue, pSuppressChangeEvent)

- $u_Carray(pNd)

- $u_Narray(pNd)

- $nvl(pTest, pDefault)

- $x_Style(pNd, pStyle, pString)

- $x_Hide(pNd)

- $x_Show(pNd)

- $x_Toggle(pNd)

- $x_Remove(pNd)

- $x_Value(pNd,pValue)

- $x_UpTill(pNd, pToTag)

- $x_ItemRow(pNd,pFunc)

- $x_HideItemRow(pNd)

- $x_ShowItemRow(pNd)

- $x_ToggleItemRow(pNd)

- $x_HideAllExcept(pNd,pNdArray)

- $x_HideSiblings(pNd)

- $x_ShowSiblings(pNd)

- $x_Class(pNd,pClass)

- $x_SetSiblingsClass(pNd, pClass, pNdClass)

- $x_ByClass(pClass, pNd, pTag)

- $x_ShowAllByClass(pNd, pClass, pTag)

- $x_ShowChildren(pNd)

- $x_HideChildren(pNd)

- $x_disableItem(pNd, pTest)

- $f_get_emptys(pNd, pClassFail, pClass)

- $v_Array(pNd)

- $f_ReturnChecked(pNd)

- $d_ClearAndHide(pNd)

- $f_SelectedOptions(pNd)

- $f_SelectValue(pNd)

- $u_ArrayToString(pArray, pDelim)

- $x_CheckImageSrc(pId,pSearch)

- $v_CheckValueAgainst(pThis, pValue)

- $f_Hide_On_Value_Item(pThis, pThat, pValue)

- $f_Show_On_Value_Item(pThis, pThat, pValue)

- $f_Hide_On_Value_Item_Row(pThis, pThat, pValue)

- $f_Show_On_Value_Item_Row(pThis, pThat, pValue)

- $f_DisableOnValue(pThis, pValue, pThat)

- $x_ClassByClass(pNd, pClass, pTag, pClass2)

- $f_ValuesToArray(pThis, pClass, pTag)

- $x_FormItems(pNd, pType)

- $f_CheckAll(pThis, pCheck, pArray)

- $f_CheckFirstColumn(pNd)

- $x_ToggleWithImage(pThis,pNd)

- $x_SwitchImageSrc(pNd, pSearch, pReplace)

- $x_CheckImageSrc(pNd, pSearch)

- $u_SubString(pText,pMatch)

- html_RemoveAllChildren(pNd)

- html_SetSelectValue(pId,pValue)

- addLoadEvent(pFunction)

- $f_Swap(pThis,pThat)

- $f_SetValueSequence(pArray,pMultiple)

- $dom_AddTag(pThis, pTag, pText)

- $tr_AddTD(pThis,pText)

- $dom_AddInput(pThis,pType,pId,pName,pValue)

- $dom_MakeParent(p_Node,p_Parent)

- $x_RowHighlight(pThis, pColor)

- $x_RowHighlightOff(pThis)

- $v_Upper(pNd)

- $d_Find(pThis,pString,pTags,pClass)

- $f_First_field(pNd)

$x(pNd)

DOMノードまたは文字列ID (pNd)を指定すると、このファンクションは、その要素がページ上に存在する場合はDOMノードを戻し、存在しない場合はFALSEを戻します。

戻り値

(DOM Node | false)

パラメータ

pNd (DOM Node | string ID)

$v(pNd)

DOMノードまたは文字列ID (pNd)を指定すると、このファンクションは、Application Expressアイテムがポストされた場合と同じ形式で、その値を戻します。

パラメータ

pNd (DOM Node | string ID)

$v2(pNd)

DOMノードまたは文字列ID(pNd)を指定すると、このファンクションは、Application Expressアイテムの値を文字列または配列として戻します。ページ・アイテムに、シャトル、チェックボックス、複数選択リストなど、複数の値が含まれる場合は配列が戻され、そうでない場合は文字列が戻されます。

戻り値

(string|array)

パラメータ

pNd (DOM Node | string ID)

$s(pNd, pValue, pDisplayValue, pSuppressChangeEvent)

DOMノードまたは文字列ID(pNd)を指定すると、このファンクションは、そのApplication Expressアイテムの型を考慮に入れて、値を設定します。pDisplayValueはオプションです。「入力フィールド」属性が「入力不可、表示値の表示と戻り値の格納」である、「ポップアップLOV」タイプのページ・アイテムに使用する場合、「入力フィールド」を設定します。pValueの値は非表示の戻り値フィールドに格納されます。pSuppressChangeEventパラメータの指定は任意です。FALSEを渡した場合、またはこのパラメータ値を渡さない場合は、変更イベントが生成され、設定されているアイテムを実行します。変更イベントによって設定されているアイテムが実行されるのを防ぐには、TRUEを渡します。

パラメータ

pNd (DOM Node | string ID)
pValue  (String | Array)
pDisplayValue(String)
pSuppressChangeEvent(Boolean)

$u_Narray(pNd)

DOMノード、文字列IDまたは配列(pNd)を指定すると、このファンクションは、pNdが配列でも、要素が1つしかなく、その要素の値が戻される場合には単一値を戻し、それ以外の場合は配列を戻します。1つまたは複数のDOMノードに対応可能なDOMベースの機能を作成する場合に使用されます。

戻り値

Array (DOM Node | string ID | Array)

パラメータ

Array or first value

$u_Carray(pNd)

指定されたDOMノード、文字列IDまたは配列(pNd)に対して、このファンクションは配列を戻します。1つまたは複数のDOMノードに対応可能なDOMベースの機能を作成する場合に使用されます。

戻り値

pNd (DOM Node | string ID | Array)

パラメータ

Array

$nvl(pTest, pDefault)

pTestが空またはFALSEの場合はpDefaultを戻し、それ以外の場合はpTestを戻します。

戻り値

(string | Array)

パラメータ

pTest  (String | Array)
pDefault (String | Array)

$x_Style(pNd, pStyle, pString)

DOMノードまたはDOMノード配列(pNd)の特定のスタイル・プロパティ(pStyle)を指定の値(pString)に設定します。

戻り値

(DOM node | DOM Array)

パラメータ

pNd (DOM node | string ID | DOM node Array )
pStyle (String)
pString (String)

$x_Hide(pNd)

1つのDOMノードまたは配列のDOMノード(pNd)を非表示にします。非表示にされているApplication Expressアイテムのタイプも考慮されます。

戻り値

(DOM node | Array)

パラメータ

pNd (DOM node | string ID | DOM node Array )

$x_Show(pNd)

1つのDOMノードまたは配列のDOMノード(pNd)を表示します。非表示にされているApplication Expressアイテムのタイプも考慮されます。

戻り値

(DOM node | Array)

パラメータ

pNd (DOM node | string ID | DOM node Array )

$x_Toggle(pNd)

1つのDOMノードまたは配列のDOMノード(pNd)を切り替えます。

戻り値

(DOM node | Array)

パラメータ

pNd (DOM node | string ID | Array)

$x_Remove(pNd)

1つのDOMノードまたは配列のDOMノードを削除します。

戻り値

(DOM Node | Array)

パラメータ

pNd (DOM node | string ID | DOM node Array)

$x_Value(pNd,pValue)

1つのDOMノードまたは配列のDOMノード(pNd)の値(pValue)を設定します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM node Array)
pValue (String)

$x_UpTill(pNd, pToTag)

このファンクションは、DOMノード(pNd)から開始して、ノード名のタグ(pToTag)が検出されるまでDOMツリーの上位の方にカスケードします。オプションのpToClassが指定されている場合、祖先ノードはpToTagと同じノード名を持ち、pToClassと同じクラスである必要があります。

戻り値

(DOM Node | false)

パラメータ

pNd  (DOM Node | string ID)
String (pToTag)
String (pToClass )

$x_ItemRow(pNd,pFunc)

DOMノードまたはDOMノードの配列を指定すると、このファンクションは、そのDOMノードまたはDOMノードの配列を含む行全体を表示するか、非表示にするか、または切り替えます。これは、ページ・アイテムを使用する場合に最も役立ちます。このファンクションは、含まれるtr要素を明示的に検索するため、表のレイアウトでのみ機能します。

戻り値

Not applicable.

パラメータ

pNd (DOM Node | string ID | Dom node Array)
pFunc ['TOGGLE','SHOW','HIDE'] (String )

$x_HideItemRow(pNd)

ページ・アイテム名を指定すると、このファンクションは、そのアイテムを保持している行全体を非表示にします。ほとんどの場合、これはアイテムおよびそのラベルです。このファンクションは、含まれるtr要素を明示的に検索するため、表のレイアウトでのみ機能します。

戻り値

Not applicable.

パラメータ

pNd (DOM Node | string ID | DON node Array)

$x_ShowItemRow(pNd)

ページ・アイテム名を指定すると、このファンクションは、そのアイテムを保持している行全体を表示します。ほとんどの場合、これはアイテムおよびそのラベルです。このファンクションは、含まれるtr要素を明示的に検索するため、表のレイアウトでのみ機能します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM note Array)

$x_ToggleItemRow(pNd)

ページ・アイテム名(pNd)を指定すると、このファンクションは、そのアイテムを保持している行全体を切り替えます。ほとんどの場合、これはアイテムおよびそのラベルです。このファンクションは、含まれるtr要素を明示的に検索するため、表のレイアウトでのみ機能します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM node ray)

$x_HideAllExcept(pNd,pNdArray)

pNdArrayから参照されているすべてのDOMノードを非表示にし、pNdで参照されているDOMノードを表示します。これは、pNdがpNdArrayのノードでもある場合に最も役立ちます。

戻り値

(DOM node | DOM Array)

パラメータ

pNd (DOM node | string ID | DOM node Array)
pNdArray (DOM node | String | Array)

$x_HideSiblings(pNd)

指定されたpNdの兄弟ノードをすべて非表示にします。

戻り値

(DOM node)

パラメータ

pNd (DOM node | string ID )

$x_ShowSiblings(pNd)

指定されたDOMノード(pNd)の兄弟DOMノードをすべて表示します。

戻り値

(DOM node)

パラメータ

pNd (DOM node | string ID )

$x_Class(pNd,pClass)

1つのDOMノードまたは配列のDOMノードを1つのクラス名に設定します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM node Array)
pClass (String)

$x_SetSiblingsClass(pNd, pClass, pNdClass)

ノード(pNd)のすべての兄弟DOMノードのクラス(pClass)を設定します。pNdClassがNULLでない場合、pNdはpNdClassに設定されます。

戻り値

(DOM node | false)

パラメータ

pNd (DOM Nnde | string ID)
pClass (String)
pThisClass (String)

$x_ByClass(pClass, pNd, pTag)

指定されたクラス名(pClass)に基づいて、DOMノードの配列を戻します。pNdパラメータが提示されている場合、戻される要素はすべてそのDOMノードの子になります。pTagパラメータも指定すると、戻り値が絞り込まれて、そのタグ・タイプのノードのみが戻されます。

戻り値

(Array)

パラメータ

pClass (String)
pNd  (DOM node | string ID)
pTag (String)

$x_ShowAllByClass(pNd, pClass, pTag)

DOMノード(pNd)の子で、特定のクラス(pClass)およびタグ(pTag)を持つDOMノードをすべて表示します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID)
pClass (String)
pTag (String)

$x_ShowChildren(pNd)

DOMノード(pNd)の子のDOMノードをすべて表示します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID)

$x_HideChildren(pNd)

DOMノード(pNd)の子のDOMノードをすべて非表示にします。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID)

$x_disableItem(pNd, pTest)

1つのアイテムまたは配列のアイテムを、(pTest)に基づいて無効または有効にします。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM node array)
a (true | false)

$f_get_emptys(pNd, pClassFail, pClass)

1つのアイテムまたは配列のアイテムが空かどうかをチェックし、空のすべてのアイテムについてそのクラスをpClassFailに設定します。空でないすべてのアイテムについては、クラスをpClassに設定します。

戻り値

false, Array  Array of all items that are empty (false | Array)

パラメータ

pNd (DOM node | string ID | DOM node Array)
Sting (pClassFail)
Sting (pClass)

$v_Array(pNd)

アイテムの値を配列として戻します。複数選択およびチェック・ボックスで役立ちます。

戻り値

(Array)

パラメータ

pId (DOM Node | string ID)

$f_ReturnChecked(pNd)

アイテムの値を配列として戻します。ラジオ・アイテムおよびチェック・ボックスで役立ちます。

戻り値

(Array)

パラメータ

pId (DOM node | string ID)

$d_ClearAndHide(pNd)

1つのDOMノードまたは配列のDOMノードの内容をクリアし、そのノードを非表示にします。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM node array)

$f_SelectedOptions(pNd)

選択アイテム(pNd)の選択されたオプションのDOMノードを戻します。

戻り値

(DOM Array)

パラメータ

pNd (DOM node | string ID)

$f_SelectValue(pNd)

選択アイテム(pNd)の選択されたオプションの値を戻します。

戻り値

(DOM Array | String)

パラメータ

pNd (DOM node | string ID)

$u_ArrayToString(pArray, pDelim)

指定された配列(pArray)について、その値を指定の区切り文字(pDelim)で区切った文字列を戻します。

戻り値

Not applicable.

パラメータ

pArray (pArray)
pDelim (String)

$x_CheckImageSrc(pId,pSearch)

イメージ(pId)のsource属性に、部分文字列(pSearch)が含まれているかどうかをチェックします。ファンクションは、部分文字列(pSearch)が見つかった場合、TRUEを戻します。部分文字列(pSearch)が見つからない場合、FALSEを戻します。

戻り値

(true | false)

パラメータ

pId (DOM Node | String)
pSearch (pSearch)

$v_CheckValueAgainst(pThis, pValue)

ページ・アイテム(pThis)の値と、一連の値(pValue)を照合します。値が一致すると、このファンクションはTRUEを戻します。

戻り値

(true | false)

パラメータ

pThis (DOM node | string ID)
pValue (Number | String | Array)

$f_Hide_On_Value_Item(pThis, pThat, pValue)

ページ・アイテム(pThis)の値と値(pValue)を照合します。一致した場合は、DOMノード(pThat)が非表示に設定されます。一致しなかった場合は、DOMノード(pThat)が表示されるように設定されます。

戻り値

(true | false)

パラメータ

pThis (DOM node | string ID)
pThat  (DOM node | string ID | DOM node Array )
pValue (Number | String | Array)

$f_Show_On_Value_Item(pThis, pThat, pValue)

ページ・アイテム(pThis)の値と値(pValue)を照合します。一致した場合は、DOMノード(pThat)が表示に設定されます。一致しなかった場合は、DOMノード(pThat)が非表示にされるように設定されます。

戻り値

(true | false)

パラメータ

pThis (DOM node | string ID)
pThat  (DOM node | string ID | DOM node Array )
pValue (Number | String | Array)

$f_Hide_On_Value_Item_Row(pThis, pThat, pValue)

アイテム(pThis)の値(pValue)をチェックします。一致した場合、このファンクションは、表内の(pThat)を保持する行を非表示にします。一致しなかった場合は、その行を表示します。

戻り値

(true | false)

パラメータ

pThis (DOM node | string ID)
pThat  (DOM node | string ID | DOM node Array )
pValue (Number | String | Array)

$f_Show_On_Value_Item_Row(pThis, pThat, pValue)

アイテム(pThis)の値(pValue)をチェックします。一致した場合、このファンクションは、表内の(pThat)を保持する行を表示します。一致しなかった場合は、その行を非表示にします。

戻り値

(true | false)

パラメータ

pThis (DOM node | string ID)
pThat  (DOM node | string ID | DOM node Array )
pValue (Number | String | Array)

$f_DisableOnValue(pThis, pValue, pThat)

アイテム(pThis)の値(pValue)をチェックします。一致した場合、このファンクションは、そのアイテムまたは配列のアイテム(pThat)を無効にします。一致しなかった場合は、アイテムを有効にします。

戻り値

(true | false)

パラメータ

pThis (DOM node | string ID)
pValue (String)
pThat  (DOM node | string ID | DOM node Array )

$x_ClassByClass(pNd, pClass, pTag, pClass2)

配列のノードをクラスによって選択し、そのクラス属性を設定します。

戻り値

(DOM node | DOM node Array)

パラメータ

pNd (DOM node | string ID)
pClass (String)
pTag (String)
pClass2 (String)

$f_ValuesToArray(pThis, pClass, pTag)

クラス属性が(pClass)、ノード名が(pTag)のDOMノード(pThis)に含まれるフォーム・アイテムの値を収集して、配列を戻します。

戻り値

No applicable.

パラメータ

pThis (DOM node | string ID)
pCLass (String)
pTag (String)

$x_FormItems(pNd, pType)

特定のタイプ(pType)のDOMノード(pThis)に含まれているフォーム入力アイテムをすべて戻します。

戻り値

DOM node Array

パラメータ

pNd (DOM node | string ID)
pType (String)

$f_CheckAll(pThis, pCheck, pArray)

DOMノード(pThis)に含まれるすべてのチェック・ボックスを選択または選択解除(pCheck)します。DOMノードのチェック・ボックスの配列(pArray)が指定されている場合は、その配列を対象のチェック・ボックスとして使用します。

戻り値

Not applicable.

パラメータ

pThis (DOM node | string ID)
pCheck (true | fales)
pArray (DOM node array)

$f_CheckFirstColumn(pNd)

このファンクションは、表の最初の列にあるすべてのチェック・ボックスを、コール先のチェック・ボックス(pNd)の選択状態に基づいて設定します。これは、表形式のフォームで役立ちます。

戻り値

DOM node Array

パラメータ

pNd (DOM node | String)

$x_ToggleWithImage(pThis,pNd)

イメージ要素(pThis)およびDOMノード(pNd)を指定すると、このファンクションは、DOMノード(pNd)の表示状態を切り替えます。イメージ要素(pThis)のsrc属性はリライトされます。イメージのsrcは、プラスの部分文字列がマイナスの部分文字列で置換されるか、またはマイナスの部分文字列がプラスの部分文字列で置換されます。

戻り値

(DOM Node)

パラメータ

pThis (DOM Node | string ID)
pNd (DOM Nnde | string iD | DOM node Array)

$x_SwitchImageSrc(pNd, pSearch, pReplace)

イメージ(pId)のsrc属性に部分文字列(pSearch)が含まれているかどうかをチェックします。その部分文字列が検出されると、このファンクションはイメージのsrc属性全体を(pReplace)で置換します。

戻り値

(DOM node | false)

パラメータ

pNd (DOM node | string ID)
pSearch (String)
pReplace (String)

$x_CheckImageSrc(pNd, pSearch)

イメージ(pNd)のsource属性に、部分文字列(pSearch)が含まれているかどうかをチェックします。ファンクションは、部分文字列(pSearch)が見つかった場合、TRUEを戻します。部分文字列(pSearch)が見つからない場合、FALSEを戻します。

戻り値

(true | fales)

パラメータ

pNd  (DOM node | string ID)
pSearch (String)

$u_SubString(pText,pMatch)

文字列(pText)に部分文字列(pMatch)が含まれるかどうかで、TRUEまたはFALSEを戻します。

戻り値

(true | false)

パラメータ

pText (String)
pMatch (String)

html_RemoveAllChildren(pNd)

DOMメソッドを使用して、DOMノード(pND)の子のDOMをすべて削除します。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID)

html_SetSelectValue(pId,pValue)

選択アイテム(pId)の値(pValue)を設定します。値が検出されない場合、このファンクションは最初のオプションを選択します(通常はNULLを選択します)。

戻り値

Not applicable.

パラメータ

pId (DOM node | String)
pValue (String)

addLoadEvent(pFunction)

onloadファンクション(func)を追加します。すでに指定されたonloadファンクションが存在している場合でも、そのファンクションは上書きされません。

戻り値

Not applicable.

パラメータ

pFunction (Javascript Function)

$f_Swap(pThis,pThat)

2つのフォーム要素(pThis、pThat)のフォーム値を交換します。

戻り値

Not applicable.

パラメータ

pThis (DOM Node | String)
pThat (DOM Node | String)

$f_SetValueSequence(pArray,pMultiple)

フォーム・アイテムの配列(pArray)に(pMultiple)の倍数の連番を設定します。

戻り値

Not applicable.

パラメータ

pArray (Array)
pMultiple (Number)

$dom_AddTag(pThis, pTag, pText)

innerHTMLを(pText)に設定し、html要素(pTag)をDOMノード(pThis)の子ノードとして挿入します。

戻り値

DOM node

パラメータ

pThis (DOM node | string ID )
pTag (String)
pText (String)

$tr_AddTD(pThis,pText)

表のセルを表の行(pThis)に追加します。内容を(pText)に設定します。

戻り値

(DOM node)

パラメータ

pThis (DOM node | string ID)
pText (String)

$tr_AddTH(pThis,pText)

表のセルを表の行(pThis)に追加します。内容を(pText)に設定します。

戻り値

DOM node

パラメータ

pThis (DOM node | string ID)
pTest (String)

$dom_AddInput(pThis,pType,pId,pName,pValue)

ID (pId)および名前(pName)の値をpValueに設定して、htmlフォーム入力要素(pType)をDOMノード(pThis)の子ノードとして挿入します。

戻り値

(DOM node)

パラメータ

pThis (DOM node | string ID)
pType (String)
pId (String)
pName (String)
pValue (String)

$dom_MakeParent(p_Node,p_Parent)

DOMノード(p_Node)をDOMノード(p_Parent)の子にしてから、DOMノード(pNode)を戻します。

戻り値

(DOM node)

パラメータ

p_This (DOM node | string ID)
p_Parent (DOM node | string ID)

$x_RowHighlight(pThis, pColor)

表の行のDOM要素(pThis)を指定すると、このファンクションは、表のすべてのセルの背景色を(pColor)に設定します。グローバル変数gCurrentRowはpThisに設定されます。

戻り値

Not applicable.

パラメータ

pThis (DOM node | String)
pColor(String)

$x_RowHighlightOff(pThis)

表の行のDOMノード(pThis)を指定すると、このファンクションは、表のすべてのセルの背景をNULLに設定します。

戻り値

Not applicable.

パラメータ

pThis (DOM Element | String)

$v_Upper(pNd)

フォーム・アイテム(pNd)の値を大文字にします。

戻り値

Not applicable.

パラメータ

pNd (DOM Node | String)

$d_Find(pThis,pString,pTags,pClass)

DOMノード(pThis)の子ノードで、そのinnerHTMLがpStringのいずれかのインスタンスに一致するものを非表示にします。子ノードを絞り込むには、タグ名(pTag)またはクラス名(pClass)を指定します。子ノードは、表示可能に設定されている場合にブロック・レベル要素に設定されます。

戻り値

Not applicable.

パラメータ

pThis (DOM node | String)
pString (String)
pTags (String
pClass (String)

$f_First_field(pNd)

ユーザーのフォーカスをフォーム・アイテム(pNd)に移動します。pNdが検出されなかった場合は、ユーザー編集が可能なフィールドで、最初に検出されたフィールドにフォーカスが移動します。

戻り値

true (if successful)

パラメータ

pNd

レガシーJavaScript API

ページのレンダリング時にOracle Application ExpressによってロードされるJavaScriptの合計サイズを削減する作業が開始されました。各ページで提供されなくなったJavaScript機能は、徐々にレガシーJavaScriptファイルに移動され、/i/libraries/apex/legacy.jsで確認できます。

アプリケーションの開発時に、開発者は、レガシーJavaScript機能を含めるかどうかを選択できます。これは、アプリケーションの「共有コンポーネント」の下にある「ユーザー・インタフェース属性」ページで、「レガシーJavaScriptを含める」プロパティを使用して行うことができます。

既存のアプリケーションは、下位互換性を確保するために、このオプションを有効にして移行されます。レガシー・ファイルを含めないようにするには、レガシー・ファイルにリスト表示されているファンクションを確認し、アプリケーションおよび関連するJavaScriptファイルがこれらのファイルを参照していないかを検索する必要があります。これらの機能への参照が見つからなかった場合は、レガシー・ファイルを含めずに、より小さいライブラリの利益を得ることができます。

新しいアプリケーションの開発時は、Desktopユーザー・インタフェース・タイプを使用するすべてのアプリケーションに、デフォルトでレガシー・ファイルが含まれます。「jQuery Mobileスマートフォン」ユーザー・インタフェース・タイプを使用する新しいアプリケーションに、このファイルは含まれません。

このレガシーJavaScriptへの依存性を減らすため、新しいアプリケーションの開発と既存のアプリケーションの開発の両方で、legacy.jsにあるファンクションの使用を継続しないことをお薦めします。

- $v_PopupReturn(pValue, pThat) [非推奨]

- $v_IsEmpty(pThis) [非推奨]

- submitEnter(pNd,e) [非推奨]

- setReturn(p_R,p_D) [非推奨]

- GetCookie (pName) [非推奨]

- SetCookie (pName,pValue) [非推奨]

$v_PopupReturn(pValue, pThat) [非推奨]

親ウィンドウ(pThat)内のアイテムの値を(pValue)に設定してから、ポップアップ・ウィンドウを閉じます。

注意:
この関数は非推奨です。この場合は、次を使用します。
apex.navigation.popup(pOptions)

既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

Not applicable.

パラメータ

pValue (string)
pThat (DOM node | string ID)

$v_IsEmpty(pThis) [非推奨]

フォーム要素が空かどうかでTRUEまたはFALSEを戻します(空白、タブ、フォーム・フィードなどの空白文字を空と見なします)。アイテムで指定された任意のNULL値も考慮されます。

注意:
この関数は非推奨です。この場合は、次を使用します。
apex.item( pNd ).isEmpty()

既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

[true | false]

パラメータ

pThis (DOM Node | String)

submitEnter(pNd,e) [非推奨]

テキスト・フィールドで[Enter]が押されたときにページを送信し、リクエスト値をDOMノード(pNd)のIDに設定します。

例: onkeypress="submitEnter(this,event)"

注意:
この関数は非推奨です。この場合は、次を使用します。
apex.submit( { submitIfEnter : event })

submitIfEnter pOptionsプロパティの使用方法の詳細は、apex.submitを参照してください。既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古いファンクションを引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

Not applicable.

パラメータ

pNd (DOM node | String | Array)

setReturn(p_R,p_D) [非推奨]

ポップアップからのアイテムの移入に使用できるように、DOMアイテムをグローバル変数returnInput(p_R)およびreturnDisplay(p_D)に設定します。

注意:
このファンクションは非推奨であり、値が非常に制限されるため、かわりの値はありません。
既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

Not applicable.

パラメータ

p_R
p_D

GetCookie (pName) [非推奨]

Cookie名(pName)の値を戻します。

注意:
この関数は非推奨です。この場合は、次を使用します。
apex.storage.getCookie(pName)

既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

Not applicable.

パラメータ

pName (String)

SetCookie (pName,pValue) [非推奨]

Cookie (pName)を指定の値(pValue)に設定します。

注意:
この関数は非推奨です。この場合は、次を使用します。
apex.storage.setCookie(pName,pValue)

既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

Not applicable.

パラメータ

pName (String)
pValue (String)

索引
A C E F J L P R S U V W

A

APEX_APPLICATION

グローバル変数, 1

HELPプロシージャ, 1

パッケージ, 1

配列の参照, 1

STOP_APEX_ENGINEプロシージャ, 1

APEX_APPLICATION_INSTALL, 2

CLEAR_ALLプロシージャ, 2

例, 2

例, 2, 2, 2

GENERATE_APPLICATION_IDプロシージャ, 2

GENERATE_OFFSETプロシージャ, 2

GET_APPLICATION_ALIASファンクション, 2

GET_APPLICATION_IDファンクション, 2

GET_APPLICATION_NAMEファンクション, 2

GET_IMAGE_PREFIXファンクション, 2

GET_OFFSETファンクション, 2

GET_PROXYファンクション, 2

GET_SCHEMAファンクション, 2

GET_WORKSPACE_IDファンクション, 2

異なるワークスペースへのアプリケーションのインポート, 2

アプリケーションIDの生成によるアプリケーションのインポート, 2

アプリケーションIDの指定によるアプリケーションのインポート, 2

変更がない場合のアプリケーションのインポート, 2

トレーニング・インスタンスへのインポート, 2

スクリプトのインポート例, 2

パッケージの概要, 2

SET_APPLICATION_ALIASプロシージャ, 2

SET_APPLICATION_IDプロシージャ, 2

SET_APPLICATION_NAMEプロシージャ, 2

SET_IMAGE_PREFIXプロシージャ, 2

SET_OFFSETプロシージャ, 2

SET_PROXYプロシージャ, 2

SET_SCHEMAプロシージャ, 2

SET_WORKSPACE_IDプロシージャ, 2

APEX_APPLICATION_INSTALL.GET_AUTO_INSTALL_SUP_OBJ, 2 APEX_APPLICATION_INSTALL.SET_AUTO_INSTALL_SUP_OBJ, 2 APEX_AUTHENTICATION, 3

CALLBACKプロシージャ, 3

GET_CALLBACK_URLプロシージャ, 3

GET_LOGIN_USERNAME_COOKIE_LOGINファンクション, 3

IS_AUTHENTICATEDファンクション, 3

IS_PUBLIC_USERファンクション, 3

LOGINプロシージャ, 3

LOGOUTプロシージャ, 3

POST_LOGINプロシージャ, 3

SEND_LOGIN_USERNAME_COOKIEプロシージャ, 3

APEX_AUTHORIZATION, はじめに, 4

ENABLE_DYNAMIC_GROUPSプロシージャ, 4

IS_AUTHORIZEDファンクション, 4

RESET_CACHEプロシージャ, 4

APEX_COLLECTION, 5

ADD_MEMBERファンクション, 5

ADD_MEMBERプロシージャ, 5

ADD_MEMBERSプロシージャ, 5

COLLECTION_EXISTSファンクション, 5

COLLECTION_HAS_CHANGEDファンクション, 5

COLLECTION_MEMBER_COUNTファンクション, 5

CREATE_COLLECTIONプロシージャ, 5

CREATE_COLLECTION_FROM_QUERY, 5

CREATE_COLLECTION_FROM_QUERY_Bプロシージャ, 5

CREATE_COLLECTION_FROM_QUERY2プロシージャ, 5

CREATE_COLLECTION_FROM_QUERYB2プロシージャ, 5

CREATE_OR_TRUNCATE_COLLECTION, 5

CREATE_OR_TRUNCATE_COLLECTIONプロシージャ, 5

DELETE_ALL_COLLECTIONSプロシージャ, 5

DELETE_ALL_COLLECTIONS_SESSIONプロシージャ, 5

DELETE_COLLECTIONプロシージャ, 5

DELETE_MEMBERプロシージャ, 5

DELETE_MEMBERSプロシージャ, 5

GET_MEMBER_MD5ファンクション, 5

MERGE_MEMBERSプロシージャ, 5

MOVE_MEMBER_DOWNプロシージャ, 5

MOVE_MEMBER_UPプロシージャ, 5

RESEQUENCE_COLLECTIONプロシージャ, 5

RESET_COLLECTION_CHANGEDプロシージャ, 5

RESET_COLLECTION_CHANGED_ALLプロシージャ, 5

SORT_MEMBERSプロシージャ, 5

TRUNCATE_COLLECTIONプロシージャ, 5

UPDATE_MEMBERプロシージャ, 5

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1, 5

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2, 5

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3, 5

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4, 5

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5, 5

UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ6, 5

UPDATE_MEMBERSプロシージャ, 5

APEX_CSS, 6

ADD_3RD_PARTY_LIBRARY_FILEプロシージャ, 6

ADD_FILEプロシージャ, 6

APEX_CUSTOM_AUTH, 7

APPLICATION_PAGE_ITEM_EXISTSファンクション, 7

CURRENT_PAGE_IS_PUBLICファンクション, 7

DEFINE_USER_SESSIONプロシージャ, 7

GET_COOKIE_PROPS, 7

GET_LDAP_PROPS, 7

GET_NEXT_SESSION_IDファンクション, 7

GET_SECURITY_GROUP_IDファンクション, 7

GET_SESSION_IDファンクション, 7

GET_SESSION_ID_FROM_COOKIE, 7

GET_USERファンクション, 7

GET_USERNAME, 7

IS_SESSION_VALID, 7

LOGIN

ログインAPI, 7

LOGOUT, 7 POST_LOGIN, 7 SESSION_ID_EXISTSファンクション, 7 SET_SESSION_IDプロシージャ, 7 SET_SESSION_ID_TO_NEXT_VALUEプロシージャ, 7 SET_USERプロシージャ, 7 APEX_DEBIG

定数, 8

DISABLEプロシージャ, 8

ENABLEプロシージャ, 8

ENTERプロシージャ, 8

ERRORプロシージャ, 8

INFOプロシージャ, 8

APEX_DEBUG, 8

LOG_DBMS_OUTPUTプロシージャ, 8

LOG_LONG_MESSAGEプロシージャ, 8

LOG_MESSAGEプロシージャ, 8

LOG_PAGE_SESSION_STATEプロシージャ, 8

MESSAGEプロシージャ, 8

REMOVE_DEBUG_BY_AGEプロシージャ, 8

REMOVE_DEBUG_BY_APPプロシージャ, 8

REMOVE_DEBUG_BY_VIEWプロシージャ, 8

REMOVE_SESSION_MESSAGESプロシージャ, 8

TOCHARファンクション, 8

TRACEプロシージャ, 8

WARNプロシージャ, 8

APEX_ERROR, 9

ADD_ERRORプロシージャのシグネチャ1, 9

ADD_ERRORプロシージャのシグネチャ2, 9

ADD_ERRORプロシージャのシグネチャ3, 9

ADD_ERRORプロシージャのシグネチャ4, 9

ADD_ERRORプロシージャのシグネチャ5, 9

AUTO_SET_ASSOCIATED_ITEMプロシージャ, 9

例

エラー処理ファンクション, 9

EXTRACT_CONSTRAINT_NAMEファンクション, 9 GET_ARIA_ERROR_ATTRIBUTESファンクション, 9 GET_FIRST_ORA_ERROR_TEXTプロシージャ, 9 HTMLファンクション, 10 INT_ERROR_RESULTファンクション, 9 APEX_ESCAPE, 10

定数, 10

HTML_ATTRIBUTEファンクション, 10

HTML_TRUNCファンクション, 10

HTML_WHITELISTファンクション, 10

JS_LITERALファンクション, 10

JSONファンクション, 10

LDAP_DNファンクション, 10

LDAP_SEARCH_FILTERファンクション, 10

NOOPファンクション, 10

REGEXPファンクション, 10

SET_HTML_ESCAPING_MODEプロシージャ, 10

APEX_INSTANCE_ADMIN, 11

ADD_SCHEMAプロシージャ, 11

ADD_WORKSPACEプロシージャ, 11

CREATE_SCHEMA_EXCEPTIONプロシージャ, 11

FREE_WORKSPACE_APP_IDSプロシージャ, 11

GET_PARAMETERファンクション, 11

GET_SCHEMASファンクション, 11

パラメータ値, 11

REMOVE_APPLICATIONプロシージャ, 11

REMOVE_SAVED_REPORTプロシージャ, 11

REMOVE_SAVED_REPORTSプロシージャ, 11

REMOVE_SCHEMAプロシージャ, 11

REMOVE_SCHEMA_EXCEPTIONプロシージャ, 11

REMOVE_SCHEMA_EXCEPTIONSプロシージャ, 11

REMOVE_SUBSCRIPTIONプロシージャ, 11

REMOVE_WORKSPACEプロシージャ, 11

REMOVE_WORKSPACE_EXCEPTIONSプロシージャ, 11

RESERVE_WORKSPACE_APP_IDSプロシージャ, 11

RESTRICT_SCHEMAプロシージャ, 11

SET_LOG_SWITCH_INTERVALプロシージャ, 11

SET_PARAMETERプロシージャ, 11

SET_WORKSPACE_CONSUMER_GROUPプロシージャ, 11

TRUNCATE_LOGプロシージャ, 11

UNRESTRICT_SCHEMAプロシージャ, 11

APEX_INSTANCE_ADMIN.GET_WORKSPACE_PARAMETER, 11 APEX_INSTANCE_ADMIN.SET_WORKSPACE_PARAMETER, 11 APEX_IR, 12

ADD_FILTERプロシージャのシグネチャ1, 12, 12

ADD_FILTERプロシージャのシグネチャ2, 12

CHANGE_REPORT_OWNERプロシージャ, 12

CHANGE_SUBSCRIPTION_LANGプロシージャ, 12

CLEAR_REPORTプロシージャのシグネチャ1, 12

CLEAR_REPORTプロシージャのシグネチャ2, 12

DELETE_REPORTプロシージャ, 12

DELETE_SUBSCRIPTIONプロシージャ, 12

GET_LAST_VIEWED_REPORT_IDファンクション, 12

GET_REPORTファンクション, 12

RESET_REPORTプロシージャのシグネチャ1, 12

RESET_REPORTプロシージャのシグネチャ2, 12

APEX_IR.CHANGE_SUBSCRIPTION_EMAIL, 12 APEX_IR.CHANGE_SUBSCRIPTION_EMAILプロシージャ, 12 APEX_ITEM, 13

CHECKBOX2ファンクション, 13

DATE_POPUPファンクション, 13, 13

DISPLAY_AND_SAVE, 13

HIDDENファンクション, 13

MD5_CHECKSUMファンクション, 13

MD5_HIDDENファンクション, 13

POPUP_FROM_LOVファンクション, 13

POPUP_FROM_QUERYファンクション, 13

POPUPKEY_FROM_LOVファンクション, 13

POPUPKEY_FROM_QUERYファンクション, 13

RADIOGROUPファンクション, 13

SELECT_LISTファンクション, 13

SELECT_LIST_FROM_LOVファンクション, 13

SELECT_LIST_FROM_LOV_XLファンクション, 13

SELECT_LIST_FROM_QUERYファンクション, 13

SELECT_LIST_FROM_QUERY_XLファンクション, 13

TEXTファンクション, 13

TEXT_FROM_LOVファンクション, 13

TEXT_FROM_LOV_QUERYファンクション, 13

TEXTAREAファンクション, 13

APEX_JAVASCRIPT, 14

ADD_ATTRIBUTEファンクションのシグネチャ1, 14

ADD_ATTRIBUTEファンクションのシグネチャ2, 14

ADD_ATTRIBUTEファンクションのシグネチャ3, 14

ADD_ATTRIBUTEファンクションのシグネチャ4, 14

ADD_INLINE_CODEプロシージャ, 14

ADD_LIBRARYプロシージャ, 14

ADD_ONLOAD_CODEプロシージャ, 14

ADD_VALUEファンクションのシグネチャ1, 14

ADD_VALUEファンクションのシグネチャ2, 14

ADD_VALUEファンクションのシグネチャ3, 14

ADD_VALUEファンクションのシグネチャ4, 14

ESCAPEファンクション, 14

APEX_JSON, 15

CLOSE_ALLプロシージャ, 15

CLOSE_ARRAYプロシージャ, 15

CLOSE_OBJECTプロシージャ, 15

定数およびデータ型, 15

DOES_EXISTファンクション, 15

FIND_PATHS_LIKEファンクション, 15

FLUSHプロシージャ, 15

FREE_OUTPUTプロシージャ, 15

GET_BOOLEANファンクション, 15

GET_CLOB_OUTPUTファンクション, 15

GET_COUNTファンクション, 15

GET_DATEファンクション, 15

GET_MEMBERSファンクション, 15

GET_NUMBERファンクション, 15

GET_VALUEファンクション, 15

GET_VARCHAR2ファンクション, 15

INITIALIZE_OUTPUTプロシージャ, 15

OPEN_ARRAYプロシージャ, 15

OPEN_OBJECTプロシージャ, 15

パッケージの概要, 15

PARSEプロシージャのシグネチャ1, 15

PARSEプロシージャのシグネチャ2, 15

STRINGIFYファンクションのシグネチャ1, 15

STRINGIFYファンクションのシグネチャ2, 15

STRINGIFYファンクションのシグネチャ3, 15

STRINGIFYファンクションのシグネチャ4, 15

TO_XMLTYPEファンクション, 15

WRITEプロシージャのシグネチャ1, 15

WRITEプロシージャのシグネチャ10, 15

WRITEプロシージャのシグネチャ11, 15

WRITEプロシージャのシグネチャ12, 15

WRITEプロシージャのシグネチャ13, 15

WRITEプロシージャのシグネチャ14, 15

WRITEプロシージャのシグネチャ15, 15

WRITEプロシージャのシグネチャ16, 15

WRITEプロシージャのシグネチャ2, 15

WRITEプロシージャのシグネチャ3, 15

WRITEプロシージャのシグネチャ4, 15

WRITEプロシージャのシグネチャ5, 15

WRITEプロシージャのシグネチャ6, 15

WRITEプロシージャのシグネチャ7, 15

WRITEプロシージャのシグネチャ8, 15

WRITEプロシージャのシグネチャ9, 15

APEX_JSON.INITIALIZE_OUTPUTプロシージャ, 15 APEX_LANG, 16

CREATE_LANGUAGE_MAPPINGプロシージャ, 16

DELETE_LANGUAGE_MAPPINGプロシージャ, 16

LANGファンクション, 16

MESSAGEファンクション, 16

PUBLISH_APPLICATIONプロシージャ, 16

SEED_TRANSLATIONSプロシージャ, 16

UPDATE_LANGUAGE_MAPPINGプロシージャ, 16

UPDATE_MESSAGEプロシージャ, 16

UPDATE_TRANSLATED_STRINGプロシージャ, 16

APEX_LDAP, 17

AUTHENTICATE, 17

GET_ALL_USER_ATTRIBUTES, 17

GET_USER_ATTRIBUTES, 17

IS_MEMBER, 17

MEMBER_OF, 17

MEMBER_OF2ファンクション, 17

APEX_MAIL, 18

ADD_ATTACHMENTプロシージャ, 18

PUSH_QUEUEプロシージャ, 18

SENDプロシージャ, 18

APEX_MAIL_QUEUE, キューの電子メールの送信, 18 APEX_PAGE, 19

GET_PAGE_MODEファンクション, 19

GET_UI_TYPEファンクション, 19

GET_URLファンクション, 19

グローバル定数, 19

IS_DESKTOP_UIファンクション, 19

IS_JQM_SMARTPHONE_UIファンクション, 19

IS_JQM_TABLET_UIファンクション, 19

IS_READ_ONLYファンクション, 19

PURGE_CACHEプロシージャ, 19

APEX_PAGE.PURGE_CACHEプロシージャ, 19 APEX_PLSQL_JOB, 20 APEX_PLSQL_JOBS

JOBS_ARE_ENABLEDファンクション, 20

PURGE_PROCESSプロシージャ, 20

SUBMIT_PROCESSファンクション, 20

TIME_ELAPSEDファンクション, 20

UPDATE_JOB_STATUSプロシージャ, 20

APEX_PLUGIN, 21

データ型, 21

GET_AJAX_IDENTIFIERファンクション, 21

GET_INPUT_NAME_FOR_PAGE_ITEMファンクション, 21

APEX_PLUGIN_UTIL, 22

DEBUG_DYNAMIC_ACTIONプロシージャ, 22

DEBUG_PAGE_ITEMプロシージャのシグネチャ1, 22

DEBUG_PAGE_ITEMプロシージャのシグネチャ2, 22

DEBUG_PROCESSプロシージャ, 22

DEBUG_REGIONプロシージャのシグネチャ1, 22

DEBUG_REGIONプロシージャのシグネチャ2, 22

ESCAPEファンクション, 22

EXECUTE_PLSQL_CODEプロシージャ, 22

GET_ATTRIBUTE_AS_NUMBERファンクション, 22

GET_DATAファンクションのシグネチャ1, 22

GET_DATAファンクションのシグネチャ2, 22

GET_DATA2ファンクションのシグネチャ1, 22

GET_DATA2ファンクションのシグネチャ2, 22

GET_DISPLAY_DATAファンクションのシグネチャ1, 22

GET_DISPLAY_DATAファンクションのシグネチャ2, 22

GET_ELEMENT_ATTRIBUTESファンクション, 22

GET_PLSQL_EXPRESSION_RESULTファンクション, 22

GET_PLSQL_FUNCTION_RESULTファンクション, 22

GET_POSITION_IN_LISTファンクション, 22

GET_SEARCH_STRINGファンクション, 22

IS_EQUALファンクション, 22

PAGE_ITEM_NAMES_TO_JQUERYファンクション, 22

PRINT_DISPLAY_ONLYプロシージャ, 22

PRINT_ESCAPED_VALUEプロシージャ, 22

PRINT_HIDDEN_IF_READONLYプロシージャ, 22

PRINT_JSON_HTTP_HEADERプロシージャ, 22

PRINT_LOV_AS_JSONプロシージャ, 22

PRINT_OPTIONプロシージャ, 22

REPLACE_SUBSTITUTIONSファンクション, 22

APEX_REGION, 23

IS_READ_ONLYファンクション, 23

PURGE_CACHEプロシージャ, 23

APEX_SPATIAL, 24

CHANGE_GEOM_METADATAプロシージャ, 24

CIRCLE_POLYGONファンクション, 24

データ型, 24

DELETE_GEOM_METADATAプロシージャ, 24

INSERT_GEOM_METADATAプロシージャ, 24

INSERT_GEOM_METADATA_LONLATプロシージャ, 24

POINTファンクション, 24

RECTANGLEファンクション, 24

APEX_UI_DEFAULT_UPDATE, 25

ADD_AD_COLUMNプロシージャ, 25

ADD_AD_SYNONYMプロシージャ, 25

DEL_AD_COLUMNプロシージャ, 25

DEL_AD_SYNONYMプロシージャ, 25

DEL_COLUMNプロシージャ, 25

DEL_GROUPプロシージャ, 25

DEL_TABLEプロシージャ, 25

SYNCH_TABLEプロシージャ, 25

UPD_AD_COLUMNプロシージャ, 25

UPD_AD_SYNONYMプロシージャ, 25

UPD_COLUMNプロシージャ, 25

UPD_DISPLAY_IN_FORMプロシージャ, 25

UPD_DISPLAY_IN_REPORTプロシージャ, 25

UPD_FORM_REGION_TITLEプロシージャ, 25

UPD_GROUPプロシージャ, 25

UPD_ITEM_DISPLAY_HEIGHTプロシージャ, 25

UPD_ITEM_DISPLAY_WIDTHプロシージャ, 25

UPD_ITEM_FORMAT_MASKプロシージャ, 25

UPD_ITEM_HELPプロシージャ, 25

UPD_ITEM_LABELプロシージャ, 25

UPD_REPORT_ALIGNMENTプロシージャ, 25

UPD_REPORT_FORMAT_MASKプロシージャ, 25

UPD_REPORT_REGION_TITLEプロシージャ, 25

UPD_TABLEプロシージャ, 25

APEX_UTIL, 26

CACHE_GET_DATE_OF_PAGE_CACHEファンクション, 26, 26

CACHE_PURGE_BY_APPLICATIONプロシージャ, 26

CACHE_PURGE_BY_PAGEプロシージャ, 26

CACHE_PURGE_STALEプロシージャ, 26

CHANGE_CURRENT_USER_PWプロシージャ, 26

CHANGE_PASSWORD_ON_FIRST_USEファンクション, 26

CLEAR_APP_CACHEプロシージャ, 26

CLEAR_PAGE_CACHEプロシージャ, 26

CLEAR_USER_CACHEプロシージャ, 26

COUNT_CLICKプロシージャ, 26

CREATE_USERプロシージャ, 26

CREATE_USER_GROUPプロシージャ, 26

CURRENT_USER_IN_GROUPファンクション, 26

CUSTOM_CALENDARプロシージャ, 26

DELETE_USER_GROUPプロシージャのシグネチャ1, 26

DELETE_USER_GROUPプロシージャのシグネチャ2, 26

DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ1, 26

DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ2, 26

DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ3, 26

DOWNLOAD_PRINT_DOCUMENTプロシージャのシグネチャ4, 26

EDIT_USERプロシージャ, 26

END_USER_ACCOUNT_DAYS_LEFTファンクション, 26

EXPIRE_END_USER_ACCOUNTプロシージャ, 26

EXPIRE_WORKSPACE_ACCOUNTプロシージャ, 26

EXPORT_USERSプロシージャ, 26

FETCH_APP_ITEMファンクション, 26

FETCH_USERプロシージャのシグネチャ1, 26

FETCH_USERプロシージャのシグネチャ2, 26

FETCH_USERプロシージャのシグネチャ3, 26

FIND_SECURITY_GROUP_IDファンクション, 26

FIND_WORKSPACEファンクション, 26

GET_ACCOUNT_LOCKED_STATUSファンクション, 26

GET_ATTRIBUTEファンクション, 26

GET_AUTHENTICATION_RESULTファンクション, 26

GET_BLOB_FILE_SRCファンクション, 26

GET_BUILD_OPTION_STATUSファンクションのシグネチャ1, 26

GET_BUILD_OPTION_STATUSファンクションのシグネチャ2, 26

GET_CURRENT_USER_IDファンクション, 26

GET_DEFAULT_SCHEMAファンクション, 26

GET_EDITIONファンクション, 26

GET_EMAILファンクション, 26

GET_FEEDBACK_FOLLOW_UPファンクション, 26

GET_FILEプロシージャ, 26

GET_FILE_IDファンクション, 26

GET_FIRST_NAMEファンクション, 26

GET_GROUP_IDファンクション, 26

GET_GROUP_NAMEファンクション, 26

GET_GROUPS_USER_BELONGS_TOファンクション, 26

GET_HASHファンクション, 26

GET_HIGH_CONTRAST_MODE_TOGGLEファンクション, 26

GET_LAST_NAMEファンクション, 26

GET_NUMERIC_SESSION_STATEファンクション, 26

GET_PREFERENCEファンクション, 26

GET_PRINT_DOCUMENTファンクションのシグネチャ1, 26

GET_PRINT_DOCUMENTファンクションのシグネチャ2, 26

GET_PRINT_DOCUMENTファンクションのシグネチャ3, 26

GET_PRINT_DOCUMENTファンクションのシグネチャ4, 26

GET_SCREEN_READER_MODE_TOGGLEファンクション, 26

GET_SESSION_LANGファンクション, 26

GET_SESSION_STATEファンクション, 26

GET_SESSION_TERRITORYファンクション, 26

GET_SESSION_TIME_ZONEファンクション, 26

GET_SINCEファンクション, 26

GET_USER_IDファンクション, 26

GET_USER_ROLESファンクション, 26

GET_USERNAMEファンクション, 26

HOST_URLファンクション, 26

IR_CLEARプロシージャ, 26, 26, 26, 26, 26, 26, 26, 26

IS_HIGH_CONTRAST_SESSIONファンクション, 26

IS_HIGH_CONTRAST_SESSION_YNファンクション, 26

IS_LOGIN_PASSWORD_VALIDファンクション, 26

IS_SCREEN_READER_SESSIONファンクション, 26

IS_SCREEN_READER_SESSION_YNファンクション, 26

IS_USERNAME_UNIQUEファンクション, 26

KEYVAL_NUMファンクション, 26

KEYVAL_VC2ファンクション, 26

LOCK_ACCOUNTプロシージャ, 26, 26

PASSWORD_FIRST_USE_OCCURREDファンクション, 26

PREPARE_URLファンクション, 26

PURGE_REGIONS_BY_NAMEプロシージャ, 26

PURGE_REGIONS_BY_PAGEプロシージャ, 26

REDIRECT_URLプロシージャ, 26

REMOVE_PREFERENCEプロシージャ, 26

REMOVE_SORT_PREFERENCESプロシージャ, 26

REMOVE_USERプロシージャ, 26

RESET_PASSWORDプロシージャ, 26

RESET_PWプロシージャ, 26

SAVEKEY_NUMファンクション, 26

SAVEKEY_VC2ファンクション, 26

SET_ATTRIBUTEプロシージャ, 26

SET_AUTHENTICATION_RESULTプロシージャ, 26

SET_BUILD_OPTION_STATUSプロシージャ, 26

SET_CURRENT_THEME_STYLEプロシージャ, 26

SET_CUSTOM_AUTH_STATUSプロシージャ, 26

SET_EDITIONプロシージャ, 26

SET_EMAILプロシージャ, 26

SET_FIRST_NAMEプロシージャ, 26

SET_GROUP_GROUP_GRANTSプロシージャ, 26

SET_GROUP_USER_GRANTSプロシージャ, 26

SET_LAST_NAMEプロシージャ, 26

SET_PREFERENCEプロシージャ, 26

SET_SECURITY_GROUP_IDプロシージャ, 26, 26

SET_SECURITY_HIGH_CONTRAST_OFFプロシージャ, 26

SET_SECURITY_HIGH_CONTRAST_ONプロシージャ, 26

SET_SESSION_MAX_IDLE_SECONDSプロシージャ, 26

SET_SESSION_SCREEN_READER_OFFプロシージャ, 26

SET_SESSION_SCREEN_READER_ONプロシージャ, 26

SET_SESSION_STATEプロシージャ, 26, 26

SET_SESSION_TERRITORYプロシージャ, 26

SET_SESSION_TIME_ZONEプロシージャ, 26

SET_USERNAMEプロシージャ, 26, 26

SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャ, 26

SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ, 26

STRING_TO_TABLEファンクション, 26

STRONG_PASSWORD_CHECKプロシージャ, 26

STRONG_PASSWORD_VALIDATIONファンクション, 26

SUBMIT_FEEDBACKプロシージャ, 26

SUBMIT_FEEDBACK_FOLLOWUPプロシージャ, 26

TABLE_TO_STRINGファンクション, 26

UNEXPIRE_END_USER_ACCOUNTプロシージャ, 26

UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ, 26

URL_ENCODEファンクション, 26

WORKSPACE_ACCOUNT_DAYS_LEFTファンクション, 26

APEX_WEB_SERVICE, 27

APEX_WEB_SERVICE APIについて, 27

BLOB2CLOBBASE64ファンクション, 27

CLOBBASE642BLOBファンクション, 27

RESTful形式のWebサービスの起動, 27

SOAP形式のWebサービスの起動, 27

MAKE_REQUESTファンクション, 27

MAKE_REQUESTプロシージャ, 27

MAKE_REST_REQUESTファンクション, 27, 27

PARSE_RESPONSEファンクション, 27

PARSE_RESPONSE_CLOBファンクション, 27

PARSE_XMLファンクション, 27

PARSE_XML_CLOBファンクション, 27

CookiesおよびHTTPヘッダーの取得, 27

CookiesおよびHTTPヘッダーの設定, 27

APEX_ZIP, 28

ADD_FILEプロシージャ, 28

データ型, 28

FINISHプロシージャ, 28

GET_FILE_CONTENTファンクション, 28

GET_FILESファンクション, 28

API

APEX_APPLICATION, 1

APEX_APPLICATION_INSTALL, 2

APEX_AUTHORIZATION, はじめに, 4

APEX_COLLECTION, 5

APEX_CSS, 6

APEX_CUSTOM_AUTH, 7

APEX_DEBUG, 8

APEX_ESCAPE, 10

APEX_INSTANCE_ADMIN, 11

APEX_IR, 12

APEX_ITEM, 13

APEX_JAVASCRIPT, 14

APEX_JSON, 15

APEX_LANG, 16

APEX_LDAP, 17

APEX_MAIL, 18

APEX_PAGE, 19

APEX_PLSQL_JOB, 20

APEX_PLUGIN, 21

APEX_PLUGIN_UTIL, 22

APEX_REGION, 23

APEX_SPATIAL, 24

APEX_UI_DEFAULT_UPDATE, 25

APEX_UTIL, 26

APEX_WEB_SERVICE, 27

APEX_ZIP, 28

JavaScript API, 29

アプリケーション

APEX_MAIL_QUEUEでのメッセージの送信, 18

外部へ電子メールを送信, 18

外部へ添付ファイルとして電子メールを送信, 18

属性値

設定, 26

認証済ユーザー

ユーザー・グループの作成, 26

ユーザー・グループの削除, 26, 26

認証, スキーム・セッションCookie, 7

C

チェック・ボックス, 作成, 13

クリック, カウント, 26

コレクション

アクセス, 5

APEX_COLLECTION API, 5

セッション・ステートのクリア, 5

作成, 5

メンバーの削除, 5

ステータスの判別, 5

マージ, 5

切捨て, 5

メンバーの更新, 5

E

電子メール

添付ファイルとしての送信, 18

APEX_MAIL_QUEUEでのメッセージの送信, 18

外部へ送信, 18

エクスポート・ファイル, ワークスペース, 26

F

F01, 1

ファイル・リポジトリ

ファイルのダウンロード, 26

主キーの取得, 26

J

JavaScript API, 29

$d_ClearAndHide(pNd), 29

$d_Find(pThis,pString,pTags,pClass), 29

$dom_AddInput(pThis,pType,pId,pName,pValue), 29

$dom_AddTag(pThis, pTag, pText), 29

$dom_MakeParent(p_Node,p_Parent), 29

$f_CheckAll(pThis, pCheck, pArray), 29

$f_CheckFirstColumn(pNd), 29

$f_DisableOnValue(pThis, pValue, pThat), 29

$f_First_field(pNd), 29

$f_get_emptys(pNd, pClassFail, pClass), 29

$f_Hide_On_Value_Item_Row(pThis, pThat, pValue), 29

$f_Hide_On_Value_Item(pThis, pThat, pValue), 29

$f_ReturnChecked(pNd), 29

$f_SelectedOptions(pNd), 29

$f_SelectValue(pNd), 29

$f_SetValueSequence(pArray,pMultiple), 29

$f_Show_On_Value_Item_Row(pThis, pThat, pValue), 29

$f_Show_On_Value_Item(pThis, pThat, pValue), 29

$f_Swap(pThis,pThat), 29

$f_ValuesToArray(pThis, pClass, pTag), 29

$nvl(pTest, pDefault), 29

$s(pNd, pValue), 29

$tr_AddTD(pThis,pText), 29

$tr_AddTH(pThis,pText), 29

$u_ArrayToString(pArray, pDelim), 29

$u_Carray(pNd), 29

$u_Narray(pNd), 29

$u_SubString(pText,pMatch), 29

$v_Array(pNd), 29

$v_CheckValueAgainst(pThis, pValue), 29

$v_IsEmpty(pThis), 29

$v_PopupReturn(pValue, pThat), 29

$v_Upper(pNd), 29

$v2(pNd), 29

$v(pNd), 29

$x_ByClass(pClass, pNd, pTag), 29

$x_CheckImageSrc(pId,pSearch), 29

$x_CheckImageSrc(pNd, pSearch), 29

$x_ClassByClass(pNd, pClass, pTag, pClass2), 29

$x_Class(pNd,pClass), 29

$x_disableItem(pNd,a), 29

$x_FormItems(pNd, pType), 29

$x_HideAllExcept(pNd,pNdArray), 29

$x_HideItemRow(pNd), 29

$x_Hide(pNd), 29

$x_HideSiblings(pNd), 29

$x_ItemRow(pNd,pFunc), 29

$x_Remove(pNd), 29

$x_RowHighlightOff(pThis), 29

$x_RowHighlight(pThis,pColor), 29

$x_SetSiblingsClass(pNd, pClass, pNdClass), 29

$x_ShowAllByClass(pNd, pClass, pTag), 29

$x_ShowChildren(pThis), 29, 29

$x_ShowItemRow(pNd), 29

$x_Show(pNd), 29

$x_ShowSiblings(pNd), 29

$x_Style(pNd, pStyle, pString), 29

$x_SwitchImageSrc(pNd, pSearch, pReplace), 29

$x_ToggleItemRow(pNd), 29

$x_Toggle(pNd), 29

$x_ToggleWithImage(pThis,pNd), 29

$x_UpTill(pNd, pToTag), 29

$x_Value(pNd,pValue), 29

$x(pNd), 29

addLoadEvent(pFunction), 29

apexネームスペース, 29

apex.daネームスペース, 29

apex.debugネームスペース, 29

apex.eventネームスペース, 29

apex.event.trigger(pSelector,pEvent,dData), 29

apex.item, 29

apex.langネームスペース, 29

apex.navigationネームスペース, 29

apex.serverネームスペース, 29

apex.storageネームスペース, 29

apex.submit(pRequest|pOptions), 29, 29

apex.utilネームスペース, 29

apex.utilネームスペース, apex.util.delayLinger, 29

apex.utilネームスペース, apex.util.delayLinger.finish, 29

apex.utilネームスペース, apex.util.delayLinger.start, 29

apex.utilネームスペース, apex.util.showSpinner, 29

apex.widgetネームスペース, 29

apex.widget.initPageItem(pName,pOptions), 29

confirmDelete(pMessage, pRequest), 29, 29

GetCookie (pName), 29

html_RemoveAllChildren(pNd), 29

html_SetSelectValue(pId,pValue), 29

非ネームスペースのAPI, 29

SetCookie (pName,pValue), 29

setReturn(p_R,p_D), 29

submitEnter(pNd,e), 29

L

LDAP属性, 取得, 7

P

パスワード

変更, 26

リセットおよびメール送信, 26

R

ラジオ・グループ, 生成, 13

S

セッションCookie, 7

セッション・ステート

カレント・アプリケーションに対するフェッチ, 26

カレント・ページでの削除, 26

カレント・セッションでの削除, 26

設定, 26, 26

特殊文字, エンコーディング, 26

U

ユーザー

電子メール・アドレスの取得, 26

プリファレンスの削除, 26

ユーザー・アカウント

変更, 26

新規作成, 26

フェッチ, 26, 26, 26

削除, 26

電子メール・アドレスの更新, 26

FIRST_NAMEの更新, 26

LAST_NAME値の更新, 26

USER_NAME値の更新, 26

V

変数, グローバル, 1

W

ワークスペース

エクスポート・ファイル, 26

数値のセキュリティ・グループID, 26

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2015, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。