Oracle® Application Express APIリファレンス

リリース4.2

B71112-01(原本部品番号:E35127-02)

目次

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

はじめに

- トピック概要

- 対象読者

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

- 関連ドキュメント

- 表記規則

1 APEX_APPLICATION

- 配列の参照

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

- 配列の単一値への変換

- HELPプロシージャ

- STOP_APEX_ENGINEプロシージャ

2 APEX_APPLICATION_INSTALL

- パッケージの概要

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

- CLEAR_ALLプロシージャ

- GENERATE_APPLICATION_IDプロシージャ

- GENERATE_OFFSETプロシージャ

- GET_APPLICATION_ALIASファンクション

- GET_APPLICATION_IDファンクション

- GET_APPLICATION_NAMEファンクション

- GET_IMAGE_PREFIXファンクション

- GET_OFFSETファンクション

- GET_PROXYファンクション

- GET_SCHEMAファンクション

- GET_WORKSPACE_IDファンクション

- SET_APPLICATION_ALIASプロシージャ

- SET_APPLICATION_IDプロシージャ

- SET_APPLICATION_NAMEプロシージャ

- 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_COLLECTION

- APEX_COLLECTION APIについて

- コレクションのネーミング、作成およびアクセス

- コレクションのマージ、切捨ておよび削除

- コレクション・メンバーの追加、更新および削除

- コレクションの管理

- 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

5 APEX_CSS

- ADDプロシージャ

- ADD_FILEプロシージャ

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

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

8 APEX_ERROR

- データ型および定数

- 結果の型に使用される定数

- t_error

- t_error_result

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

- 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ファンクション

9 APEX_ESCAPE

- 定数

- HTMLファンクション

- HTML_ATTRIBUTEファンクション

- HTML_TRUNCファンクション

- HTML_WHITELISTファンクション

- JS_LITERALファンクション

- LDAP_DNファンクション

- LDAP_SEARCH_FILTERファンクション

- NOOPファンクション

- SET_HTML_ESCAPING_MODEプロシージャ

10 APEX_INSTANCE_ADMIN

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

- ADD_SCHEMAプロシージャ

- ADD_WORKSPACEプロシージャ

- GET_PARAMETERファンクション

- GET_SCHEMASファンクション

- REMOVE_APPLICATIONプロシージャ

- REMOVE_SAVED_REPORTプロシージャ

- REMOVE_SAVED_REPORTSプロシージャ

- REMOVE_SCHEMAプロシージャ

- REMOVE_SUBSCRIPTIONプロシージャ

- REMOVE_WORKSPACEプロシージャ

- SET_PARAMETERプロシージャ

- TRUNCATE_LOGプロシージャ

11 APEX_IR

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

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

- 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

12 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ファンクション

13 APEX_JAVASCRIPT

- 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ファンクション

14 APEX_LANG

- LANGファンクション

- MESSAGEファンクション

15 APEX_LDAP

- AUTHENTICATEファンクション

- GET_ALL_USER_ATTRIBUTESプロシージャ

- GET_USER_ATTRIBUTESプロシージャ

- IS_MEMBERファンクション

- MEMBER_OFファンクション

- MEMBER_OF2ファンクション

16 APEX_MAIL

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

- ADD_ATTACHMENTプロシージャ

- PUSH_QUEUEプロシージャ

- SENDプロシージャ

17 APEX_PLSQL_JOB

- APEX_PLSQL_JOBパッケージについて

- JOBS_ARE_ENABLEDファンクション

- PURGE_PROCESSプロシージャ

- SUBMIT_PROCESSファンクション

- TIME_ELAPSEDファンクション

- UPDATE_JOB_STATUSプロシージャ

18 APEX_PLUGIN

- データ型

- GET_AJAX_IDENTIFIERファンクション

- GET_INPUT_NAME_FOR_PAGE_ITEMファンクション

19 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_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ファンクション

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

21 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ファンクション

- 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_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_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_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_PWプロシージャ

- SAVEKEY_NUMファンクション

- SAVEKEY_VC2ファンクション

- SET_ATTRIBUTEプロシージャ

- SET_AUTHENTICATION_RESULTプロシージャ

- SET_BUILD_OPTION_STATUSプロシージャ

- SET_CUSTOM_AUTH_STATUSプロシージャ

- SET_EDITIONプロシージャ

- SET_EMAILプロシージャ

- SET_FIRST_NAMEプロシージャ

- 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ファンクション

22 APEX_WEB_SERVICE

- APEX_WEB_SERVICE APIについて

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

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

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

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

- BLOB2CLOBBASE64ファンクション

- CLOBBASE642BLOBファンクション

- MAKE_REQUESTプロシージャ

- MAKE_REQUESTファンクション

- MAKE_REST_REQUESTファンクション

- PARSE_RESPONSEファンクション

- PARSE_RESPONSE_CLOBファンクション

- PARSE_XMLファンクション

- PARSE_XML_CLOBファンクション

23 JavaScript API

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

- apex.widget.initPageItem(pName,pOptions)

- $x(pNd)

- $v(pNd)

- $v2(pNd)

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

- $u_Carray(pNd)

- $u_Narray(pNd)

- $nvl(pTest, pDefault)

- apex.submit(pOptions)

- apex.submit(pRequest)

- apex.confirm(pMessage, pRequest)

- apex.item(pThis).isEmpty()

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

- apex.storage.getCookie(pName)

- apex.storage.setCookie(pName,pValue)

- apex.confirm(pMessage, pOptions)

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

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

- $x_ToggleWithImage(pThis,pNd)

- $x_SwitchImageSrc(pNd, pSearch, pReplace)

- $x_CheckImageSrc(pNd, pSearch)

- $u_SubString(pText,pMatch)

- html_RemoveAllChildren(pNd)

- $v_IsEmpty(pThis) [非推奨]

- html_SetSelectValue(pId,pValue)

- addLoadEvent(pFunction)

- $f_Swap(pThis,pThat)

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

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

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

- $f_First_field(pNd)

- GetCookie (pName) [非推奨]

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

Oracle® Application Express

APIリファレンス

リリース4.2

B71112-01(原本部品番号:E35127-02)

2012年10月

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

B71112-01

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

原本著者: Drue Swadener

原本協力者: Marco Adelfio、Drue Baker、Carl Backstrom、Christina Cho、Steve Fogel、Michael Hichwa、Terri Jennings、Christopher Jones、Joel Kallman、Sharon Kennedy、Syme Kutz、Sergio Leunissen、Anne Romano、Kris Rice、Marc Sewtz、Scott Spadafore、Scott Spendolini、Jason Straub、Simon Watt

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

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

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

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

注意:
Oracle Application Express 4.2では、APEX_DEBUG_MESSAGEパッケージは、APEX_DEBUGにリネームされました。APEX_DEBUG_MESSAGEパッケージ名は、下位互換性のために引き続きサポートされます。ただし、Oracle Application Expressの旧バージョンでAPEX_DEBUGパッケージを実行する場合を除き、新規アプリケーションでは新しいAPEX_DEBUGパッケージを使用することをお薦めします。

トピック:

- トピック概要

- 対象読者

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

- 関連ドキュメント

- 表記規則

トピック概要

このマニュアルは、次の章で構成されています。

タイトル

説明

APEX_APPLICATION

APEX_APPLICATIONパッケージを使用すると、多数のグローバル変数を利用できます。

APEX_APPLICATION_INSTALL

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

APEX_AUTHENTICATION

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

APEX_COLLECTION

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

APEX_CSS

APEX_CSSパッケージには、CSSスタイルをHTTP出力に追加するためのユーティリティ・ファンクションが用意されています。通常、このパッケージはプラグイン開発に使用されます。

APEX_CUSTOM_AUTH

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

APEX_DEBUG

APEX_DEBUGパッケージには、デバッグ・メッセージ・ログを管理するためのユーティリティ・ファンクションが用意されています。

APEX_ESCAPE

APEX_ESCAPEパッケージには、データが後続の処理に適しているように、文字列内の特殊文字列をエスケープするための機能が用意されています。

APEX_ERROR

APEX_ERRORパッケージには、エラー処理ファンクションのためのインタフェース宣言と、いくつかのユーティリティ・ファンクションが用意されており、Application Expressアプリケーションでエラーを生成するためのプロシージャやファンクションが含まれています。

APEX_INSTANCE_ADMIN

APEX_INSTANCE_ADMINパッケージには、Oracle Application Expressのランタイム環境を管理するためのユーティリティが用意されています。APEX_INSTANCE_ADMINパッケージを使用すると、電子メール設定、ウォレット設定、レポート出力設定などの取得と設定を行い、スキームとワークスペースのマッピングを管理できます。

APEX_IR

APEX_IRパッケージは、対話モード・レポートに関連付けられたOracle Application Express環境でプログラミングする際に使用可能なユーティリティを提供します。

APEX_ITEM

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

APEX_JAVASCRIPT

APEX_JAVASCRIPTパッケージには、動的なJavaScriptコードをHTTP出力に追加するためのユーティリティ・ファンクションが用意されています。通常、このパッケージはプラグイン開発に使用されます。

APEX_LANG

APEX_LANG APIを使用してメッセージを翻訳できます。

APEX_LDAP

APEX_LDAPを使用すると、Lightweight Directory Access Protocol (LDAP)認証に関連する様々な操作を実行できます。

APEX_MAIL

APEX_MAILパッケージを使用すると、Oracle Application Expressアプリケーションから電子メールを送信できます。

APEX_PLSQL_JOB

APEX_PLSQL_JOBパッケージを使用すると、アプリケーションのバックグラウンドでPL/SQLコードを実行できます。操作が完了していない状態でもユーザーがアプリケーションで作業を継続できるため、長時間実行操作の管理に有効な方法です。

APEX_PLUGIN

APEX_PLUGINパッケージには、インタフェース宣言と、プラグインを処理するいくつかのユーティリティ・ファンクションが用意されています。

APEX_PLUGIN_UTIL

APEX_PLUGIN_UTILパッケージには、プラグインを記述する際の共通の問題を解決するユーティリティ・ファクションが用意されています。

APEX_UI_DEFAULT_UPDATE

APEX_UI_DEFAULT_UPDATEパッケージを使用すると、ユーザー・インタフェースのデフォルト値を設定して、スキーマ内の表に関連付けることができます。このパッケージは、更新する表を所有しているスキーマ内からコールする必要があります。

APEX_UTIL

APEX_UTILパッケージを使用すると、セッション・ステートの取得と設定、ファイルの取得、ユーザーの認可の確認、ユーザーへの別のステートの再設定、およびユーザーのプリファレンスの取得と設定を行うことができます。

APEX_WEB_SERVICE

APEX_WEB_SERVICE APIを使用すると、PL/SQLを使用できるアプリケーション内の任意の場所でWebサービスと対話できるため、Application Expressと他のシステムを統合できます。APIには、SOAPおよびRESTful形式のWebサービスをコールするためのプロシージャおよびファンクションが含まれます。

JavaScript API

これらのJavaScriptファンクションおよびオブジェクトを使用することで、クライアント側の機能(ページ要素の表示/非表示、XML HTTP Asynchronous JavaScriptおよびXML (AJAX)リクエストの作成など)を提供できます。

注意:
リリース2.2では、Oracle Application ExpressのAPIは、接頭辞APEX_によってリネームされました。APIの以前の接頭辞HTMLDB_も、下位互換性のためにサポートされます。ただし、Oracle Application Expressの旧バージョンでAPIを実行する場合を除き、新規アプリケーションでは新しいAPI名を使用することをお薦めします。

対象読者

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

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

関連項目:
Oracle Database Application Express 2日で開発者ガイド

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

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 Database Application Express 2日で開発者ガイド

- 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言語リファレンス

その他のアプリケーションの例については、Learning Libraryを参照してください。Oracle by Example(OBE)、デモ、チュートリアルなどの無料オンライン・トレーニング・コンテンツを検索します。次のURLでOracle Learning Libraryにアクセスしてください。

http://www.oracle.com/technetwork/tutorials/index.html

印刷されたマニュアルは次のURLのOracle Storeで入手できます。

http://shop.oracle.com/

すでにOTNのユーザー名およびパスワードを取得している場合は、次のOTN Webサイトのドキュメントのセクションに直接接続できます。

http://www.oracle.com/technology/documentation/

表記規則

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

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

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

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

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

規則

意味

太字

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

イタリック体

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

固定幅フォント

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

1 APEX_APPLICATION

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

表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

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

トピック:

- 配列の参照

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

- 配列の単一値への変換

- HELPプロシージャ

- STOP_APEX_ENGINEプロシージャ

配列の参照

通常、アイテムは、テキスト・フィールド、選択リスト、チェック・ボックスなどの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アプリケーションのインストール・プロセス中に、アプリケーション属性を変更するためのメソッドが多数用意されています。

トピック:

- パッケージの概要

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

- CLEAR_ALLプロシージャ

- GENERATE_APPLICATION_IDプロシージャ

- GENERATE_OFFSETプロシージャ

- GET_APPLICATION_ALIASファンクション

- GET_APPLICATION_IDファンクション

- GET_APPLICATION_NAMEファンクション

- GET_IMAGE_PREFIXファンクション

- GET_OFFSETファンクション

- GET_PROXYファンクション

- GET_SCHEMAファンクション

- GET_WORKSPACE_IDファンクション

- SET_APPLICATION_ALIASプロシージャ

- SET_APPLICATION_IDプロシージャ

- SET_APPLICATION_NAMEプロシージャ

- 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、解析スキーマ)を変更することはできません。

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

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

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

構文

APEX_APPLICATION_INSTALL.SET_IMAGE_PREFIX(
p_image_prefix  IN VARCHAR2);

パラメータ

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

表2-5 SET_IMAGE_PREFIXのパラメータ

パラメータ

説明

p_image_prefix

イメージ接頭辞。デフォルトは/i/です。

例

次の例は、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-6では、SET_OFFSETプロシージャで使用可能なパラメータについて説明します。

表2-6 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-7では、SET_PROXYプロシージャで使用可能なパラメータについて説明します。

表2-7 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-8では、SET_SCHEMAプロシージャで使用可能なパラメータについて説明します。

表2-8 SET_SCHEMAのパラメータ

パラメータ

説明

p_schema

スキーマ名。

例

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

関連項目:
「GET_SCHEMAファンクション」

SET_WORKSPACE_IDプロシージャ

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

構文

APEX_APPLICATION_INSTALL.SET_WORKSPACE_ID (
p_workspace_id  IN NUMBER);

パラメータ

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

表2-9 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 Function」を参照してください。

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 Procedure」の例を参照してください。

参照:
「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名。

例

この例では、ページ・アイテムP101_USERNAMEにユーザー名Cookie値を保存するためにGET_LOGIN_USERNAME_COOKIEが使用されます。

: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. result=trueの場合、認証後のプロシージャを実行します。

4. result=trueの場合、セッション表にユーザー名を保存します。

5. result=trueの場合、ディープ・リンク用のリダイレクトURLを設定します。

6. result=falseの場合、エラー・メッセージをnotification_msgパラメータに設定したリダイレクトURLを現行ページに設定します。

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_AUTHECNTICTATION.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名。

例

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

apex_authentication.send_login_username_cookie (
p_username => :P101_USERNAME );

4 APEX_COLLECTION

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

トピック:

- APEX_COLLECTION APIについて

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

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

トピック:

- コレクションのネーミング、作成およびアクセス

- コレクションのマージ、切捨ておよび削除

- コレクション・メンバーの追加、更新および削除

- コレクションの管理

コレクションのネーミング、作成およびアクセス

トピック:

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

- コレクションの作成

- パラメータp_generate_md5について

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

コレクションを作成する場合、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ビューには、次の定義が含まれます。

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

コレクション・メンバーの追加、更新および削除

トピック:

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

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

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

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

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

コレクションに追加したデータ要素(メンバー)には、一意の順序番号が割り当てられます。メンバーをコレクションに追加すると、最も新しいメンバーが一番大きいIDを持つように、順序番号が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_CCOLLECTIONビューの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');

パラメータ

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

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

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

パラメータ

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

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

表4-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');

パラメータ

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

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表4-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');

パラメータ

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

表4-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');

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

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

構文

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に関係なく、Flowのカレント・セッションのカレント・ユーザーに属しているすべてのコレクションを削除します。

構文

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表4-22 SORT_MEMBERSパラメータ

パラメータ

説明

p_collection_name

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

p_sort_on_column_number

コレクションのソートに使用する列番号。

例

この例では、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);

パラメータ

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

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

パラメータ

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

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

表4-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つのみです。p_seqがnullであると、アプリケーション・エラーが発生します。順序番号p_seqで指定したメンバーが存在しないと、アプリケーション・エラーが発生します。

構文

APEX_COLLECTION.UPDATE_MEMBERS (
p_collection_name IN VARCHAR2,
p_seq  IN wwv_flow_global.VC_ARR2 DEFAULT empty_vc_arr,
p_c001 IN wwv_flow_global.VC_ARR2 DEFAULT empty_vc_arr,
p_c002 IN wwv_flow_global.VC_ARR2 DEFAULT empty_vc_arr,
p_c003 IN wwv_flow_global.VC_ARR2 DEFAULT empty_vc_arr,
...
p_c050 IN wwv_flow_global.VC_ARR2 DEFAULT empty_vc_arr,
p_n001 IN wwv_flow_global.N_ARR DEFAULT empty_n_arr,
p_n002 IN wwv_flow_global.N_ARR DEFAULT empty_n_arr,
p_n003 IN wwv_flow_global.N_ARR DEFAULT empty_n_arr,
p_n004 IN wwv_flow_global.N_ARR DEFAULT empty_n_arr,
p_n005 IN wwv_flow_global.N_ARR DEFAULT empty_n_arr,
p_d001 IN wwv_flow_global.D_ARR DEFAULT empty_d_arr,
p_d002 IN wwv_flow_global.D_ARR DEFAULT empty_d_arr,
p_d003 IN wwv_flow_global.D_ARR DEFAULT empty_d_arr,
p_d004 IN wwv_flow_global.D_ARR DEFAULT empty_d_arr,
p_d005 IN wwv_flow_global.D_ARR DEFAULT empty_d_arr)

パラメータ

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

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

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

パラメータ

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

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

表4-26 UPDATE_MEMBER_ATTRIBUTEのシグネチャ1のパラメータ

パラメータ

説明

p_collection_name

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

p_seq

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

p_attr_number

更新するメンバー属性の属性番号。有効な値は1から50です。この範囲外の番号はすべて無視されます。

p_attr_value

更新するメンバー属性の属性値。

例

1つ目のメンバー属性をEngineeringに、2つ目のメンバー属性をSalesに更新して、Departmentsというコレクションの2番目のメンバーを更新します。

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

パラメータ

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

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

表4-27 UPDATE_MEMBER_ATTRIBUTEのシグネチャ2のパラメータ

パラメータ

説明

p_collection_name

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

p_seq

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

p_clob_number

更新するCLOBメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_clob_value

更新するCLOBメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の唯一の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);

パラメータ

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

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

表4-28 UPDATE_MEMBER_ATTRIBUTEのシグネチャ3のパラメータ

パラメータ

説明

p_collection_name

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

p_seq

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

p_blob_number

更新するBLOBメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_blob_value

更新するBLOBメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の唯一の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);

パラメータ

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

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

表4-29 UPDATE_MEMBER_ATTRIBUTEのシグネチャ4のパラメータ

パラメータ

説明

p_collection_name

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

p_seq

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

p_xmltype_number

更新するXMLTYPEメンバー属性の属性番号。有効な値は1です。この範囲外の番号はすべて無視されます。

p_xmltype_value

更新するXMLTYPEメンバー属性の属性値。

例

次の例では、Departmentsというコレクションのコレクション順序番号2の唯一の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);

パラメータ

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

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

表4-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_number_value  IN DATE);

パラメータ

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

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

表4-31 UPDATE_MEMBER_ATTRIBUTEのシグネチャ6のパラメータ

パラメータ

説明

p_collection_name

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

p_seq

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

p_attr_number

更新するDATEメンバー属性の属性番号。有効な値は1から5です。この範囲外の番号はすべて無視されます。

p_number_value

更新するDATEメンバー属性の属性値。

例

Departmentsというコレクションの2番目のコレクション・メンバーの1つ目の属性を更新して、値100に設定します。

BEGIN;
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name =. 'Departments',
p_seq => '2',
p_attr_number => '1',
p_number_value => 100 );
END;

関連項目:
「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ1」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ2」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ3」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ4」、「UPDATE_MEMBER_ATTRIBUTEプロシージャのシグネチャ5」

5 APEX_CSS

APEX_CSSパッケージには、CSSスタイルをHTTP出力に追加するためのユーティリティ・ファンクションが用意されています。通常、このパッケージはプラグイン開発に使用されます。

トピック:

- ADDプロシージャ

- ADD_FILEプロシージャ

ADDプロシージャ

このプロシージャは、HTML出力にインラインで含められるCSSスタイルのスニペットを追加します。このプロシージャは新しいCSSスタイルの宣言の追加に使用できます。

構文

APEX_CSS.ADD (
p_css          IN    VARCHAR2,
p_key          IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表5-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_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 C_APEX_VERSION,
p_skip_extension IN    BOOLEAN DEFAULT FALSE
p_media_query    IN    VARCHAR2 DEFAULT NULL,
p_ie_condition   IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表5-2 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,
p_version => null );

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表6-9 SET_USERのパラメータ

パラメータ

説明

p_user

登録するユーザーID。

例

次の例では、カレント・アプリケーション・ユーザーがNOBODYの場合、JOHN.DOEがアプリケーション・ユーザーとして登録されます。

IF V('APP_USER') = 'NOBODY' THEN
APEX_CUSTOM_AUTH.SET_USER('JOHN.DOE');
END IF;

7 APEX_DEBUG

APEX_DEBUGパッケージには、デバッグ・メッセージ・ログを管理するためのユーティリティ・ファンクションが用意されています。具体的には、このパッケージには、Application Expressアプリケーションに含まれるPL/SQLコードおよびデータベース・ストアド・プロシージャとファンクション内のPL/SQLコードのインスツルメントおよびデバッグに必要なAPIが提供されています。PL/SQLコードをインストルメントすると、より迅速にバグを追跡し、予期しない動作を特定することが容易になります。

パッケージには、様々なデバッグ・レベルでのデバッグを有効または無効にする手段、およびメッセージ・ログをクリーンアップするユーティリティ・プロシージャもあります。

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデバッグ・モードへのアクセスに関する説明を参照するか、またはAPEX_DEBUGビューを問い合せることによって、メッセージ・ログを表示できます。

詳細は、個々のAPIの説明を参照してください。

注意:
Oracle Application Express 4.2では、APEX_DEBUG_MESSAGEパッケージの名前がAPEX_DEBUGに変更されました。APEX_DEBUG_MESSAGEのパッケージ名は下位互換性のためにサポートされます。ただし、Oracle Application Expressの旧バージョンでAPIを実行する場合を除き、新規アプリケーションでは新しい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 (e.g. 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 );

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

説明

p_message

デバッグ・メッセージ。utl_lms.format_messageおよびCのsprintfのように、「%s」の出現は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 );

パラメータ

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

表7-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を使用するレガシー・アプリケーションのメッセージは、デバッグ・ログにコピーされます。

構文

APEX_DEBUG.LOG_DBMS_OUTPUT;

パラメータ

なし。

例

次の例に、DBMS_OUTPUTバッファのコンテンツをデバッグ・ログに記録する方法を示します。

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

パラメータ

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

表7-5 APEX_DEBUG.LOG_LONG_MESSAGEプロシージャのパラメータ

パラメータ

説明

p_message

長いログ・メッセージ(最大サイズは32767バイト)。

p_enabled

デバッグが有効かどうかに関係なく、メッセージを常にログに記録するにはTRUEを設定します。デバッグが有効な場合にのみメッセージをログに記録するにはFALSEを設定します

p_level

長いログ・メッセージのレベルを識別します。「定数」を参照してください。

例

次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、32767文字まで含むことができるレベル1のメッセージを表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、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 );

パラメータ

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

表7-6 APEX_DEBUG.LOG_MESSAGEプロシージャのパラメータ

パラメータ

説明

p_message

最大長が1000バイトのデバッグ・メッセージ。

p_enabled

ロギングが有効な場合(値をTRUEに設定するとロギングが有効化)にメッセージを記録します。

p_level

ログ・メッセージのレベルを指定します(1は最も高い重要度で、9は最も低い重要度です)。これは整数値です。

例

次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、変数値を表示するレベル1のメッセージを表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、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 );

パラメータ

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

表7-7 APEX_DEBUG.LOG_SESSION_STATEプロシージャのパラメータ

パラメータ

説明

p_page_id

現行のアプリケーションとワークスペースのコンテキスト内のページを指定します。

p_enabled

ロギングが有効になっている(値がTRUEに設定されている)場合に、メッセージが記録されます。

p_level

ログ・メッセージのレベルを指定します(1は最も高い重要度で、9は最も低い重要度です)。整数値である必要があります。

例

次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、レベル1のメッセージをアプリケーションの現在のページのすべてのセッション・ステートを含めて表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、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 );

パラメータ

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

表7-8 APEX_DEBUG.MESSAGEプロシージャのパラメータ

パラメータ

説明

p_message

デバッグ・メッセージ。utl_lms.format_messageおよびCのsprintfのように、「%s」の出現はp0によってp19に置換されます。'%%'の文字列は、特殊文字'%'を表します。「%<n>」の出現はp<n>によって置換されます。

p0からp19

'%s'プレースホルダに対する置換文字列。

p_max_length

p<n>値はこの長さに切り捨てられます。

p_level

メッセージのログ・レベルのデフォルトはc_log_level_infoです。「定数」を参照してください。

p_force

TRUEの場合、ページがデバッグ・モードでレンダリングされない場合またはp_levelが(URLまたは有効化プロシージャを使用して)構成済のデバッグ・メッセージより大きい場合もデバッグ・メッセージが生成されます。

例

次の例に、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);

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

8 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ファンクション

データ型および定数

このセクションでは、APEX_ERRORパッケージで使用するデータ型について説明します。

- 結果の型に使用される定数

- t_error

- t_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';

t_error

次の型はエラー処理ファンクションに渡され、また関連するエラー情報のすべてを含んでいます。

type t_error is record (
message           varchar2(32767),     /* Displayed error message */
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 Application Express 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 Application Express */
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 dbms_utility.format_error_backtrace or dbms_utility.format_call_stack */
component         wwv_flow.t_component /* Component which has been processed when the error occurred */
);

t_error_result

次の型は、エラー処理ファンクションの結果の型として使用されます。

type t_error_result is record (
message          varchar2(32767), /* Displayed error message */
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
-- Access Denied errors raised by application or page authorization should
-- still show up with the original error message
if    p_error.apex_error_code <> 'APEX.AUTHORIZATION.ACCESS_DENIED'              and p_error.apex_error_code not like 'APEX.SESSION_STATE.%' 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 is not exposed
-- 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 );

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表8-10 INT_ERROR_RESULTファンクションのパラメータ

パラメータ

説明

p_error

エラー処理ファンクションのp_errorパラメータ。

例

このファンクションの使用方法の例については、「エラー処理ファンクションの例」を参照してください。

9 APEX_ESCAPE

APEX_ESCAPEパッケージには、データが後続の処理に適しているように、文字列内の特殊文字列をエスケープするための機能が用意されています。

トピック:

- 定数

- HTMLファンクション

- HTML_ATTRIBUTEファンクション

- HTML_TRUNCファンクション

- HTML_WHITELISTファンクション

- JS_LITERALファンクション

- LDAP_DNファンクション

- LDAP_SEARCH_FILTERファンクション

- NOOPファンクション

- SET_HTML_ESCAPING_MODEプロシージャ

定数

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

SPACE# constant binary_integer := 32;
HASH# constant binary_integer := 35;
COMMA# constant binary_integer := 44;
HYPHEN# constant binary_integer := 45;
DOT# constant binary_integer := 46;
ZERO# constant binary_integer := 48;
NINE# constant binary_integer := 57;
UP_A# constant binary_integer := 65;
UP_Z# constant binary_integer := 90;
BACKSLASH# constant binary_integer := 92;
UNDERSCORE# constant binary_integer := 95;
LOW_A# constant binary_integer := 97;
LOW_Z# constant binary_integer := 122;

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のように動作します。それ以外の場合には、次のルールが適用されます。

次の表(表9-1)に、ファンクションが変換するASCII文字とエスケープされる値を示します。

表9-1 変換されたASCII文字のエスケープされる値

RAW ASCII文字

返されるエスケープ文字

&

&amp;

"

&quot;

<

&lt;

>

&gt;

'

&#x27;

/

&#x2F;

構文

APEX_EXSCAPE.HTML (
p_string IN VARCHAR2 )
return VARCHAR2;

パラメータ

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

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

パラメータ

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

表9-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変数に対して大きすぎる場合、およびそれの最初の部分のみを表示することが適している場合に、このファンクションを使用できます。

構文

APEX_ESCAPE.HTML_TRUNC (
p_string IN CLOB,
p_length IN NUMBER DEFAULT 4000 )
return VARCHAR2;

パラメータ

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

表9-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エスケープを実行します。入力テキストには単純なHTMＬマークアップが含まれているが、攻撃者によるクロスサイト・スクリプトでの悪意のあるタグの使用を確実に避けることを開発者が希望する場合に、このファンクションは有効です。

構文

APEX_ESCAPE.HTML_WHITELIST (
p_html IN VARCHAR2,
p_whitelist_tags IN VARCHAR2 DEFAULT c_html_whitelist_tags )
return VARCHAR2;

パラメータ

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

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

パラメータ

説明

p_html

フィルタされるテキスト文字列。

p_whitelist_tags

p_htmlにとどまるタグのカンマ区切りのリスト。

例

次の例に、ホワイトリスト・タグを維持し、不要なHTMLマークアップを文字列から削除するためのAPEX_ERRORの使用方法を示します。

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相当で置換します。結果は、JavaScriptコードに<script>タグ内またはインライン(「javascript:xxx」)で挿入できます。安全な文字には、aからz、AからZ、0から9、カンマ(,)、ピリオド(.)およびアンダースコア(_)があります。

構文

APEX_ESCAPE.JS_LITERAL (
p_string IN VARCHAR2,
p_quote  IN VARCHAR2 DEFAULT "" )
return VARCHAR2;

パラメータ

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

表9-6 JS_LITERALファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

p_quote

null以外の場合、この文字列は結果の左右に置かれます。引用符は、一重引用符または二重引用符である必要があります。

例

l_string変数内の特殊文字をエスケープするためにJS_LITERALを使用する方法を説明します。

declare
l_string varchar2(4000) := 'O''Brien';
begin
sys.htp.p('<script>'||
'alert('||apex_escape.js_literal(l_string)||');'||'</script>');
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;

パラメータ

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

表9-7 LDAP_DNファンクションのパラメータ

パラメータ

説明

p_string

エスケープされるテキスト文字列。

p_reserved_chars

p_stringで見つかった場合にバックスラッシュでエスケープされる文字のリスト。

p_escaped_non_ascii

TRUEの場合、p_stringのASCIIの127より大きい文字は、バックスラッシュでエスケープされます。これはRFCの4514および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;

パラメータ

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

表9-8 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;

パラメータ

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

表9-9 APEX_ESCAPE.NOOPファンクションのパラメータ

パラメータ

説明

p_string

入力テキスト文字列。

例

次の例に、明示的にテキストをエスケープしないようにする開発者の意図を示すためのNOOPの使用方法を示します。

begin
sys.htp.p(apex_escape.noop('Cats & Dogs'));
end;

SET_HTML_ESCAPING_MODEプロシージャ

SET_HTML_ESCAPING_MODEプロシージャは、wwv_flow_escape.htmlに対するHTMLエスケープ・モードを構成します。

構文

APEX_ESCAPE.SET_HTML_ESCAPING_MODE (
p_mode IN VARCHAR2);

パラメータ

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

表9-10 APEX_ESCAPE.SET_HTML_ESCAPING_MODEプロシージャのパラメータ

パラメータ

説明

p_mode

Bと等しい場合は、sys.htf.escape_scのように、基本エスケープを行います。Eと等しい場合は、拡張エスケープを行います。

例

例については、「HTMLファンクション」を参照してください。

参照:
「HTML_WHITELISTファンクション」、「HTMLファンクション」、「HTML_TRUNCファンクション」、「HTML_ATTRIBUTEファンクション」

10 APEX_INSTANCE_ADMIN

APEX_INSTANCE_ADMINパッケージには、Oracle Application Expressのランタイム環境を管理するためのユーティリティが用意されています。APEX_INSTANCE_ADMINパッケージを使用すると、電子メール設定、ウォレット設定、レポート出力設定などの取得と設定を行い、スキームとワークスペースのマッピングを管理できます。APEX_INSTANCE_ADMINは、SYS、SYSTEM、APEX_040200のデータベース・ユーザーに加え、ロールAPEX_ADMINISTRATOR_ROLEが付与されているすべてのデータベース・ユーザーが実行できます。

トピック:

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

- ADD_SCHEMAプロシージャ

- ADD_WORKSPACEプロシージャ

- GET_PARAMETERファンクション

- GET_SCHEMASファンクション

- REMOVE_APPLICATIONプロシージャ

- REMOVE_SAVED_REPORTSプロシージャ

- REMOVE_SCHEMAプロシージャ

- REMOVE_SUBSCRIPTIONプロシージャ

- REMOVE_WORKSPACEプロシージャ

- SET_PARAMETERプロシージャ

- TRUNCATE_LOGプロシージャ

使用可能なパラメータ値

表10-1に、APEX_INSTANCE_ADMINパッケージ内で設定可能なすべてのパラメータ(電子メール、ウォレット、レポート出力用のパラメータなど)の値を示します。

表10-1 使用可能なパラメータ

パラメータ名

説明

ACCOUNT_LIFETIME_DAYS

アカウントが期限切れになるまでの、エンド・ユーザー・アカウント・パスワードの最大有効日数。

ALLOW_DB_MONITOR

Yに設定すると、データベース監視が有効化されます。Nに設定すると、無効化されます。

ALLOW_PUBLIC_FILE_UPLOAD

Yに設定すると、ファイルのアップロードはユーザー認証がなくても許可されます。デフォルトのNに設定すると、許可されません。

ALLOW_REST

デフォルトのYに設定すると、開発者はレポート・リージョンをRESTfulサービスとして公開できます。Nに設定すると、許可されません。

APPLICATION_ACTIVITY_LOGGING

アプリケーション・アクティビティ・ログのインスタンス全体の設定を制御します([A]常に使用、[N]使用しない、[U]アプリケーションの設定を使用)。

AUTOEXTEND_TABLESPACES

デフォルトのYに設定すると、プロビジョニングされた表領域は最大サイズまで自動拡張されます。Nに設定すると、表領域は自動拡張されません。

BIGFILE_TABLESPACES_ENABLED

Yに設定すると、Oracle Application Expressを介してプロビジョニングされた表領域はビッグファイル表領域として作成されます。Nに設定すると、表領域は小さいファイルの表領域として作成されます。

DELETE_UPLOADED_FILES_AFTER_DAYS

アプリケーション・エクスポート・ファイル、Webシート・エクスポート・ファイル、スプレッドシート・データ・ロード・ファイルなどのアップロードされたファイルは、この数字の日数を過ぎると自動的に削除されます。デフォルトは14です。

DISABLE_ADMIN_LOGIN

Yに設定すると、管理サービスは無効化されます。デフォルトのNに設定すると、無効化されません。

DISABLE_WORKSPACE_LOGIN

Yに設定すると、ワークスペース・ログインは無効化されます。デフォルトのNに設定すると、ログインは無効化されません。

DISABLE_WS_PROV

Yに設定すると、ワークスペースの作成は、電子メール通知を使用して送信されたリクエストに対して無効化されます。デフォルトのNに設定すると、無効化されません。

ENABLE_TRANSACTIONAL_SQL

デフォルトのYに設定すると、トランザクションSQLコマンドがこのインスタンスに対して有効化されます。Nに設定すると、有効化されません。

EXPIRE_FIND_USER_ACCOUNTS

Yに設定すると、Application Expressアカウントの有効期限が有効化されます。Nに設定すると、有効化されません。

MAX_SESSION_IDLE_SEC

内部アプリケーションをアイドルにできる秒数。

MAX_SESSION_LENGTH_SEC

内部アプリケーションのセッションが存在できる秒数。

PASSWORD_ALPHA_CHARACTERS

パスワードの複雑性ルールに使用するアルファベット文字。アルファベット文字のデフォルトのリストは次のとおりです。

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

PASSWORD_PUNCTUATION_CHARACTERS

パスワードの複雑性ルールに使用する記号。記号のデフォルトのリストには、!"#$%&()``*+,-/:;<=>?_などがあります。

PLSQL_EDITING

デフォルトのYに設定すると、SQLワークショップ・オブジェクト・ブラウザが有効化され、ユーザーはPL/SQLを編集およびコンパイルすることができます。Nに設定すると、ユーザーは許可されません。

REQUIRE_HTTPS

Yに設定すると、SSL経由でインスタンスにアクセスする必要があります。デフォルトのNに設定すると、アクセスはSSLに制限されません。

REQUIRE_VERIFICATION_CODE

Yに設定すると、検証コードが表示され、このコードは、他のユーザーが新しいワークスペースをリクエストするときに必要になります。デフォルトのNに設定すると、検証コードは必要ありません。

REQ_NEW_SCHEMA

Yに設定すると、新しいワークスペース・リクエストに対する新しいスキーマのオプションが有効化されます。デフォルトのNに設定すると、オプションは無効化されます。

RESTFULL_SERVICES_ENABLED

デフォルトのYに設定すると、RESTfulサービスの開発は有効化されます。Nに設定すると、RESTfulサービスは有効化されません。

SERVICE_REQUESTS_ENABLED

デフォルトのYに設定すると、スキーマ、記憶域、終了に対するワークスペース・サービス・リクエストが有効化されます。Nに設定すると、これらのリクエストは無効化されます。

SERVICE_REQUEST_FLOW

デフォルトのプロビジョニング・モードを決定します。デフォルトはMANUALです。

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

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_OUTPUT_SIZE

スクリプト結果に割り当てられる最大領域。デフォルトは2000000です。

WORKSPACE_PROVISION_DEMO_OBJECTS

デフォルトのYに設定すると、デモンストレーション・アプリケーションおよびデーターベース・オブジェクトが新しいワークスペースに作成されます。Nに設定すると、これらは現在のワークスペースに作成されます。

WORKSPACE_WEBSHEET_OBJECTS

デフォルトのYに設定すると、Application Express Webシート・データーベース・オブジェクトが新しいワークスペースに作成されます。Nに設定すると、これらは現在のワークスペースに作成されます。

PASSWORD_HISTORY_DAYS

アカウントの期限が切れるまでに、開発者または管理者アカウントのパスワードを使用できる最大日数を定義します。デフォルト値は45日です。

PRINT_BIB_LICENSED

標準サポートまたは拡張サポートのいずれかを指定します。拡張サポートの場合は、Oracle BI Publisherの使用許諾が必要です。有効な値は、次のとおりです。

- STANDARD

- ADVANCED

PRINT_SVR_PROTOCOL

有効な値は、次のとおりです。

- http

- https

PRINT_SVR_HOST

プリント・サーバー変換エンジンのホスト・アドレス(localhostなど)を指定します。プリント・サーバーが別の場所にインストールされている場合は、対応するホスト・アドレスを入力します。

PRINT_SVR_PORT

プリント・サーバー・エンジンのポート(8888など)を定義します。値は、正の整数である必要があります。

PRINT_SVR_SCRIPT

プリント・サーバー・エンジンのスクリプトを定義します。次に例を示します。

/xmlpserver/convert

REQUIRE_HTTPS

Yに設定すると、Application Express開発アプリケーションおよび管理アプリケーション内の認証ページを、プロトコルがHTTPSである場合にのみ使用できます。Nに設定すると、プロトコルがHTTPまたはHTTPSである場合に、これらのアプリケーション・ページを使用できます。

関連項目:
Oracle Application Express管理ガイドの「ランタイム環境での電子メールの構成」、「ランタイム環境でのウォレットの構成」および「ランタイム環境でのレポート出力設定の構成」

ADD_SCHEMAプロシージャ

ADD_SCHEMAプロシージャは、ワークスペースとスキーマのマッピングにスキーマを追加します。

構文

APEX_INSTANCE_ADMIN.ADD_SCHEMA(
p_workspace    IN VARCHAR2,
p_schema       IN VARCHAR2);

パラメータ

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

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

パラメータ

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

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

GET_PARAMETERファンクション

GET_PARAMETERファンクションは、ランタイム環境の管理に使用されるパラメータの値を取得します。

構文

APEX_INSTANCE_ADMIN.GET_PARAMETER(
p_parameter     IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表10-4 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;

パラメータ

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

表10-5 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;

REMOVE_APPLICATIONプロシージャ

REMOVE_APPLICATIONプロシージャは、Application Expressインスタンスから、指定されたアプリケーションを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_APPLICATION (
p_application_id IN NUMBER);

パラメータ

表 10-6に、REMOVE_APPLICATIONプロシージャのパラメータを示します。

表10-6 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);

パラメータ

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

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

パラメータ

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

表10-8 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);

パラメータ

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

表10-9 REMOVE_SCHEMAのパラメータ

パラメータ

説明

p_workspace

スキーマ・マッピングを削除するワークスペースの名前。

p_schema

スキーマとワークスペースのマッピングから削除するスキーマ。

例

次の例に、REMOVE_SCHEMAプロシージャを使用して、ワークスペースとスキーマのマッピングMY_WORKSPACEからFrankというスキーマを削除する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.REMOVE_SCHEMA('MY_WORKSPACE','FRANK');
END;

REMOVE_SUBSCRIPTIONプロシージャ

REMOVE_SUBSCRIPTIONプロシージャは、特定の対話モード・レポートのサブスクリプションを削除します。

構文

APEX_INSTANCE_ADMIN.REMOVE_SUBSCRIPTION(
p_subscription_id     IN NUMBER);

パラメータ

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

表10-10 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' );

パラメータ

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

表10-11 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;

SET_PARAMETERプロシージャ

SET_PARAMETERプロシージャは、ランタイム環境の管理に使用されるパラメータを設定します。

構文

APEX_INSTANCE_ADMIN.SET_PARAMETER(
p_parameter     IN VARCHAR2,
p_value         IN VARCHAR2 DEFAULT 'N');

パラメータ

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

表10-12 SET_PARAMETERのパラメータ

パラメータ

説明

p_parameter

設定するインスタンス・パラメータ。

p_value

パラメータの値。

「使用可能なパラメータ値」を参照してください。

例

次の例に、SET_PARAMETERプロシージャを使用して、Oracle Application ExpressインスタンスのSMTP_HOST_ADDRESSパラメータを設定する方法を示します。

BEGIN
APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS','mail.mycompany.com');
END;

TRUNCATE_LOGプロシージャ

TRUNCATE_LOGプロシージャは、入力パラメータで指定されたログ・エントリを切り捨てます。

構文

APEX_INSTANCE_ADMIN.TRUNCATE_LOG(
p_log     IN VARCHAR2);

パラメータ

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

表10-13 TRUNCATE_LOGのパラメータ

パラメータ

説明

p_log

このパラメータには、次の値の1つが入ります。

ACTIVITY - ページ・アクセスを記録したエントリをすべて削除します。

USER_ACCESS - ユーザー・ログインを記録したエントリをすべて削除します。

MAIL - メール送信を記録したエントリをすべて削除します。

DEVELOPER - 開発者アクティビティを記録したエントリをすべて削除します。

CLICKS - 外部サイトに対して追跡されたクリックを記録したエントリすべてを削除します。

LOCK_PAGE - 開発者によるページのロックを記録したエントリをすべて削除します。

WORKSPACE_HIST - 日次ワークスペース・サマリーを記録したエントリをすべて削除します。

PURGE - ワークスペースの自動パージ・アクティビティを記録したエントリをすべて削除します。

FILE - ファイルの自動パージ・アクティビティを記録したエントリをすべて削除します。

SCRIPT - SQLワークショップで実行されたSQLスクリプトの結果を記録したエントリすべてを削除します。

SQL - SQLワークショップのSQLコマンドで実行されたコマンドの履歴を記録したエントリすべてを削除します。

例

次の例は、TRUNCATE_LOGプロシージャを使用して、Application Expressアプリケーション・ページに対するアクセスを記録したすべてのログ・エントリを削除する方法を示しています。

BEGIN
APEX_INSTANCE_ADMIN.TRUNCATE_LOG('ACTIVITY');
END;

11 APEX_IR

APEX_IRパッケージは、Oracle Application Express環境でプログラミングする際に使用可能な、対話モード・レポートに関したユーティリティを提供します。APEX_IRパッケージを使用して、対話モード・レポートのランタイム問合せの取得、フィルタの追加、レポート設定のリセットまたは消去、保存されたレポートの削除およびサブスクリプションの管理が可能です。

トピック:

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

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

- 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を使用して対話モード・レポートにフィルタを作成します。

構文

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

パラメータ

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

表11-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でレポートIDが880629800374638220、リージョンが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

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

構文

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

パラメータ

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

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

このプロシージャは、対話モード・レポートのサブスクリプションの言語を変更します。

構文

APEX_IR.CHANGE_SUBSCRIPTION_LANG(
p_subscription_id IN NUMBER,
p_language        IN VARCHAR2);

パラメータ

表11-3に、使用可能なパラメータを示します

表11-3 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を使用してレポート設定を消去します。

構文

APEX_IR.CLEAR_REPORT(
p_page_id   IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);

パラメータ

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

表11-4 CLEAR_REPORTプロシージャのシグネチャ1のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがnullの場合、最後に表示されたレポート設定を消去します。

例

次の例に、CLEAR_REPORTプロシージャを使用して、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが2505704029884282の対話モード・レポート設定を消去する方法を示します。

BEGIN
APEX_IR.CLEAR_REPORT(
p_page_id      => 1,
p_region_id    => 2505704029884282,
p_report_id    => 880629800374638220);
END;

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

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

構文

APEX_IR.CLEAR_REPORT(
p_page_id      IN NUMBER,
p_region_id    IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

表11-5に、CLEAR_REPORTプロシージャのシグネチャ2で使用可能なパラメータを示します。

表11-5 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);

パラメータ

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

表11-6 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);

パラメータ

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

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

パラメータ

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

表11-8 GET_LAST_VIEWED_REPORT_IDファンクションのパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポートのリージョンID。

例

次の例に、GET_LAST_VIEWED_REPORT_IDファンクションを使用して、カレント・アプリケーションのページ1で、リージョンが2505704029884282の最後に表示されたレポート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_REPOR(
p_page_id   IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);

パラメータ

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

表11-9 GET_REPORTファンクションのパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョンのID。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがnullの場合、最後に表示されたレポート問合せを取得します。

例

次の例に、GET_REPORTファンクションを使用して、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが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;
for i in 1..l_report.binds.count
loop
dbms_output.put_line(i||'. '||
l_report.binds(i).name||
'='||l_report.binds(i).value);
end loop;
END;

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

このプロシージャは、レポートIDを使用して、レポート設定を開発者が定義したデフォルト設定にリセットします。

構文

APEX_IR.RESET_REPORT(
p_page_id   IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);

パラメータ

表11-10に、RESET_REPORTプロシージャのシグネチャ1で使用可能なパラメータを示します。

表11-10 RESET_REPORTプロシージャのシグネチャ1のパラメータ

パラメータ

説明

p_page_id

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

p_region_id

対話モード・レポート・リージョンのID。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがnullの場合、最後に表示されたレポート設定をリセットします。

例

次の例に、RESET_REPORTプロシージャのシグネチャ1を使用して、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが2505704029884282の対話モード・レポート設定をリセットする方法を示します。

BEGIN
APEX_IR.RESET_REPORT(
p_page_id      => 1,
p_region_id    => 2505704029884282,
p_report_id    => 880629800374638220);
END;

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

このプロシージャは、レポート別名を使用してレポート設定をリセットします。

構文

APEX_IR.RESET_REPORT(
p_page_id      IN NUMBER,
p_region_id    IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

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

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表12-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個の入力値を含みます。APEX_ITEM.MD5_CHECKSUMでも、Oracle DatabaseのDBMS_OBFUSCATION_TOOLKITを使用して、MD5チェックサムが生成されます。

UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.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;

パラメータ

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

表12-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個の入力値を含みます。APEX_ITEM.MD5_HIDDENでも、Oracle DatabaseのDBMS_OBFUSCATION_TOOLKITを使用して、MD5チェックサムが生成されます。

UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.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;

パラメータ

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

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

パラメータ

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

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

同等のものにエスケープする必要がある特殊文字の置換文字。

- <に対する<

- >に対する>

- &に対する&

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

パラメータ

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

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

同等のものにエスケープする必要がある特殊文字の置換文字。

- <に対する<

- >に対する>

- &に対する&

値の範囲は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列目で指定されます。

パラメータ

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

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

同等のものにエスケープする必要がある特殊文字の置換文字。

- <に対する<

- >に対する>

- &に対する&

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

パラメータ

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

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

同等のものにエスケープする必要がある特殊文字の置換文字。

- <に対する<

- >に対する>

- &に対する&

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

パラメータ

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

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

パラメータ

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

表12-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パラメータ)。(ID f03_4が列4に生成される。)

- 各行に対して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;

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

13 APEX_JAVASCRIPT

APEX_JAVASCRIPTパッケージには、動的なJavaScriptコードをHTTP出力に追加するためのユーティリティ・ファンクションが用意されています。通常、このパッケージはプラグイン開発に使用されます。

トピック:

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

パラメータ

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

表13-1 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;

パラメータ

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

表13-2 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;

パラメータ

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

表13-3 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;

パラメータ

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

表13-4 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);

パラメータ

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

表13-5 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);

パラメータ

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

表13-6 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で指定したディレクトリからmy_library.1.2.min.js (アプリケーションがDEBUGモードで実行されていない場合)またはmy_library.1.2.js (アプリケーションがDEBUGモードで実行されている場合)という名前のJavaScriptライブラリ・ファイルが含まれます。アプリケーションがDEBUGモードで実行されていない場合は、p_check_to_add_minifiedがTRUEに設定されているため、.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);

パラメータ

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

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

パラメータ

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

表13-8 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;

パラメータ

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

表13-9 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;

パラメータ

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

表13-10 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;

パラメータ

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

表13-11 ADD_VALUEのシグネチャ4のパラメータ

パラメータ

説明

p_value

JavaScriptの日付オブジェクトとして戻される日付。

p_add_comma

p_add_commaがTRUEの場合、後続のカンマが追加されます。デフォルトはTRUEです。

例

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

ESCAPEファンクション

このファンクションはJavaScriptで使用されるテキストをエスケープします。このファンクションは次の置換を行います。

表13-12 置換する値の表

置換

置換後

<

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

パラメータ

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

表13-13 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);' );

14 APEX_LANG

APEX_LANG APIを使用してメッセージを翻訳できます。

トピック:

- LANGファンクション

- MESSAGEファンクション

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;

パラメータ

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

表14-1 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;

パラメータ

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

表14-2 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アプリケーション・ビルダー・ユーザーズ・ガイドの「アプリケーションへのプライマリ言語の指定」

15 APEX_LDAP

APEX_LDAPを使用すると、Lightweight Directory Access Protocol(LDAP)認証に関連する様々な操作を実行できます。

トピック:

- AUTHENTICATEファンクション

- GET_ALL_USER_ATTRIBUTESプロシージャ

- GET_USER_ATTRIBUTESプロシージャ

- IS_MEMBERファンクション

- MEMBER_OFファンクション

- MEMBER_OF2ファンクション

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;

パラメータ

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

表15-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 wwv_flow_global.vc_arr2,
p_attribute_values  OUT wwv_flow_global.vc_arr2);

パラメータ

表15-2に、GET_ALL_USER_ATTRIBUTESプロシージャのパラメータを示します。

表15-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       wwv_flow_global.vc_arr2;
L_ATTRIBUTE_VALUES wwv_flow_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  wwv_flow_global.vc_arr2,
p_attribute_values  OUT wwv_flow_global.vc_arr2);

パラメータ

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

表15-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 wwv_flow_global.vc_arr2;
L_ATTRIBUTE_VALUES wwv_flow_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;

パラメータ

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

表15-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 wwv_flow_global.vc_arr2;

パラメータ

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

表15-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       wwv_flow_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;

パラメータ

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

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

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

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

パラメータ

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

表16-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;
/

PUSH_QUEUEプロシージャ

Oracle Application Expressでは、APEX_MAIL_QUEUEという名前の表に未送信の電子メール・メッセージが格納されます。APEX_MAIL.PUSH_QUEUEプロシージャを呼び出して、このキューに格納されているメール・メッセージを指定のSMTPゲートウェイに手動で送信できます。

Oracle Application Expressによって、正常に送信されたメッセージのログが、サーバーのローカル時間でのタイムスタンプとともにHTMLDB_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);

パラメータ

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

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

パラメータ

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

表16-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;
/

17 APEX_PLSQL_JOB

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をバックグラウンドで実行するために必要な機能のみが公開されることに注意してください。

表17-1に、APEX_PLSQL_JOBパッケージで使用可能なファンクションを示します。

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

18 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_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

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

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

t_page_item

次の型は、すべてのアイテム・タイプのプラグイン・ファンクションに渡されます。現在のページ・アイテムに関する情報を含みます。

type t_page_item is record (
id                          number,
name                        varchar2(255),
label                       varchar2(4000),
plain_label                 varchar2(4000),
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) );

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

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

t_process_exec_result

次の型は、プロセス・タイプのプラグインの実行ファンクションの結果の型として使用されます。

type t_process_exec_result is record (
success_message varchar2(32767)
);

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

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 (
dummy boolean /* not used yet */
);

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;

パラメータ

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

表18-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"')||' />' );

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表19-5 DEBUG_REGIONのシグネチャ1のパラメータ

パラメータ

説明

p_plugin

プラグイン・ファンクションのp_pluginパラメータです。

p_region

プラグイン・ファンクションのp_regionパラメータです。

例

次の例に、プラグイン開発サイクル中に役に立つデバッグ情報を収集して、プラグインのレンダリング・ファンクションまたはAJAXコールバック・ファンクションに実際に渡された値を確認する方法を示します。

apex_plugin_util.debug_process (
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);

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表19-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_DATAファンクションのシグネチャ1

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。このファンクション・コールの前に、prepare_queryをコールする必要があります。

構文

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;

パラメータ

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

表19-9 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

可能な戻り行の最大数。

戻り値

表19-10では、GET_DATAファンクションのシグネチャ1の戻り値について説明します。

表19-10 GET_DATAファンクションのシグネチャ1の戻り値

戻り値

説明

t_column_value_list

列番号で索引付けされたwwv_flow_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問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。このファンクション・コールの前に、prepare_queryをコールする必要があります。

構文

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;

パラメータ

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

表19-11 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

可能な戻り行の最大数。

戻り値

表19-12では、GET_DATAファンクションのシグネチャ2の戻り値について説明します。

表19-12 GET_TABLEファンクションのシグネチャ2

パラメータ

説明

t_column_value_list

列番号で索引付けされたwwv_flow_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問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。

構文

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;

パラメータ

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

表19-13 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

可能な戻り行の最大数。

戻り値

表19-14では、GET_DATA2ファンクションの戻り値について説明します。

表19-14 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    wwv_flow_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問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。

構文

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;

パラメータ

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

表19-15 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

可能な戻り行の最大数。

戻り値

表19-16では、GET_DATA2ファンクションのシグネチャ2の戻り値について説明します。

表19-16 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    wwv_flow_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;

パラメータ

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

表19-17 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を設定すると、値が見つからない場合に、かわりに検索値が結果に追加されます。

戻り値

表19-18では、GET_DISPLAY_DATAファンクションのシグネチャ1の戻り値について説明します。

表19-18 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 wwv_flow_global.vc_arr2;

パラメータ

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

表19-19 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を設定すると、値が見つからなかい場合に、かわりに検索値が結果に追加されます。

戻り値

表19-20では、GET_DISPLAY_DATAファンクションのシグネチャ2の戻り値について説明します。

表19-20 GET_DISPLAY_DATAのシグネチャ2の戻り値

戻り値

説明

wwv_flow_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 wwv_flow_global.vc_arr2;
l_result_list wwv_flow_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、名前、必須、プレースホルダ、領域エラー属性、クラスなど)の標準属性の一部を返します。

構文

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

パラメータ

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

表19-21 GET_ELEMENT_ATTRIBUTESファンクションのパラメータ

パラメータ

説明

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を使用するテキスト型の入力タグが表示されています。

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;

パラメータ

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

表19-22 GET_PLSQL_EXPRESSION_RESULTのパラメータ

パラメータ

説明

p_plsql_expression_result

文字列を戻すPL/SQL式。

戻り値

表19-23では、GET_PLSQL_EXPRESSION_RESULTファンクションの戻り値について説明します。

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

パラメータ

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

表19-24 GET_PLSQL_FUNCTION_RESULTのパラメータ

パラメータ

説明

p_plsql_function

文字列型の結果を戻すPL/SQLファンクション・ブロック。

戻り値

表19-25では、GET_PLSQL_FUNCTION_RESULTファンクションの戻り値について説明します。

表19-25 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 wwv_flow_global.vc_arr2,
p_value IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表19-26 GET_POSITION_IN_LISTのパラメータ

パラメータ

説明

p_list

VARCHAR2型のエントリを含むwwv_flow_global.vc_arr2型の配列。

p_value

p_list配列に配置される値。

戻り値

表19-27では、GET_POISTION_IN_LISTファンクションの戻り値について説明します。

表19-27 GET_POSITION_IN_LISTの戻り値

戻り値

説明

NUMBER

配列p_listでのp_valueの位置を戻します。見つからない場合は、NULLが戻されます。

例

次の例では、提供されたリスト内で「New York」を検索し、l_positionに2を戻します。

declare
l_list     wwv_flow_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;

パラメータ

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

表19-28 GET_SEARCH_STRINGのパラメータ

パラメータ

説明

p_search_type

get_dataおよびget_data2で使用する場合の検索のタイプ。c_search_*定数のいずれかを使用します。

p_search_string

get_dataおよびget_data2での検索に使用される検索文字列。

戻り値

表19-29では、GET_SEARCH_STRINGファンクションの戻り値について説明します。

表19-29 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;

パラメータ

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

表19-30 IS_EQUALのパラメータ

パラメータ

説明

p_value1

比較する最初の値。

p_value2

比較する2つ目の値。

戻り値

表19-31では、IS_EQUALファンクションの戻り値について説明します。

表19-31 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;

パラメータ

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

表19-32 PAGE_ITEM_NAMES_TO_JQUERYのパラメータ

パラメータ

説明

p_page_item_names

ページ・アイテム名のカンマ区切りリスト。

戻り値

表19-31では、PAGE_ITEM_NAMES_TO_JQUERYファンクションからの戻り値について説明します。

表19-33 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');

パラメータ

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

表19-34 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);

パラメータ

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

表19-35 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);

パラメータ

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

表19-36 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);

パラメータ

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

表19-37 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);

パラメータ

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

表19-38 PRINT_OPTIONのパラメータ

パラメータ

説明

p_display_value

オプションで表示されるテキスト。

p_return_value

オプションが選択されると設定される値。

p_is_selected

選択した属性をこのオプションに対して設定する必要がある場合は、TRUEを設定します。

p_attributes

OPTIONタグに設定する必要がある追加のHTML属性。

p_escape

p_display_valueの特殊文字をエスケープする必要がある場合は、TRUEを設定します。

例

次の例は、アイテム・タイプ・プラグインでSELECTのリストを作成する場合に使用できます。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;

パラメータ

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

表19-39 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 );

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表20-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;
/

21 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ファンクション

- 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_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_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_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_PWプロシージャ

- SAVEKEY_NUMファンクション

- SAVEKEY_VC2ファンクション

- SET_ATTRIBUTEプロシージャ

- SET_AUTHENTICATION_RESULTプロシージャ

- SET_BUILD_OPTION_STATUSプロシージャ

- SET_CUSTOM_AUTH_STATUSプロシージャ

- SET_EDITIONプロシージャ

- SET_EMAILプロシージャ

- SET_FIRST_NAMEプロシージャ

- 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ファンクション

- SHOW_SCREEN_READER_MODE_TOGGLEプロシージャ

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

パラメータ

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

表21-1 CACHE_GET_DATE_OF_PAGE_CACHEのパラメータ

パラメータ

説明

p_application

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

p_page

ページ番号(ID)

例

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

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

CACHE_GET_DATE_OF_REGION_CACHEファンクション

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

構文

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

パラメータ

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

表21-2 CACHE_GET_DATE_OF_REGION_CACHEのパラメータ

パラメータ

説明

p_application

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

p_page

ページ番号(ID)

p_region_name

リージョン名

例

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

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

CACHE_PURGE_BY_APPLICATIONプロシージャ

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

構文

APEX_UTIL.CACHE_PURGE_BY_APPLICATION (
p_application  IN  NUMBER);

パラメータ

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

表21-3 CACHE_PURGE_BY_APPLICATIONのパラメータ

パラメータ

説明

p_application

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

例

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

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

CACHE_PURGE_BY_PAGEプロシージャ

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

構文

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

パラメータ

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

表21-4 CACHE_PURGE_BY_PAGEのパラメータ

パラメータ

説明

p_application

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

p_page

ページ番号(ID)

p_user_name

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

例

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

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

CACHE_PURGE_STALEプロシージャ

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

構文

APEX_UTIL.CACHE_PURGE_STALE (
p_application  IN    NUMBER);

パラメータ

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

表21-5 CACHE_PURGE_STALEのパラメータ

パラメータ

説明

p_application

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

例

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

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

CHANGE_CURRENT_USER_PWプロシージャ

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

構文

APEX_UTIL.CHANGE_CURRENT_USER_PW(
p_new_password IN VARCHAR2);

パラメータ

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

表21-6 CHANGE_CURRENT_USER_PWのパラメータ

パラメータ

説明

p_new_password

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

例

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

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

関連項目:
「RESET_PWプロシージャ」

CHANGE_PASSWORD_ON_FIRST_USEファンクション

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

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

構文

APEX_UTIL.CHANGE_PASSWORD_ON_FIRST_USE (
p_user_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

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

表21-7 CHANGE_PASSWORD_ON_FIRST_USEのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

関連項目:
「PASSWORD_FIRST_USE_OCCURREDファンクション」

CLEAR_APP_CACHEプロシージャ

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

構文

APEX_UTIL.CLEAR_APP_CACHE (
p_app_id    IN    VARCHAR2 DEFAULT NULL);

パラメータ

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

表21-8 CLEAR_APP_CACHEのパラメータ

パラメータ

説明

p_app_id

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

例

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

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

CLEAR_PAGE_CACHEプロシージャ

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

構文

APEX_UTIL.CLEAR_PAGE_CACHE (
p_page IN NUMBER DEFAULT NULL);

パラメータ

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

表21-9 CLEAR_PAGE_CACHEのパラメータ

パラメータ

説明

p_page

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

例

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

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

CLEAR_USER_CACHEプロシージャ

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

構文

APEX_UTIL.CLEAR_USER_CACHE;

パラメータ

なし。

例

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

BEGIN
APEX_UTIL.CLEAR_USER_CACHE;
END;

COUNT_CLICKプロシージャ

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

構文

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

パラメータ

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

表21-10 COUNT_CLICKのパラメータ

パラメータ

説明

p_url

リダイレクト先のURL

p_cat

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

p_id

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

p_user

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

p_workspace

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

例

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

DECLARE
l_url VARCHAR2(255);
l_cat VARCHAR2(30);
l_workspace_id VARCHAR2(30);
BEGIN
l_url := 'http://yahoo.com';
l_cat := 'yahoo';
l_workspace_id := TO_CHAR(APEX_UTIL.FIND_SECURITY_GROUP_ID('MY_WORKSPACE'));

HTP.P('<a href=APEX_UTIL.COUNT_CLICK?p_url=' || l_url || '&p_cat=' || l_cat || '&p_workspace=' || l_workspace_id || '>Click</a>');
END;

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

CREATE_USERプロシージャ

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

構文

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

パラメータ

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

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

パラメータ

説明

p_user_id

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

p_user_name

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

p_first_name

情報

p_last_name

情報

p_description

情報

p_email_address

電子メール・アドレス

p_web_password

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

p_web_password_format

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

p_group_ids

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

p_developer_privs

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

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

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

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

注意: 現在このパラメータの名前は一貫しておらず、CREATE_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

Application Builderに対するアクセスが可能かどうかを示す'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,
p_group_name               IN                   VARCHAR2,
p_security_group_id        IN                   NUMBER,
p_group_desc               IN                   VARCHAR2);

パラメータ

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

表21-12 CREATE_USER_GROUPのパラメータ

パラメータ

説明

p_id

グループの主キー

p_group_name

グループの名前

p_security_group_id

ワークスペースID

p_group_desc

説明テキスト

例

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

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

CURRENT_USER_IN_GROUPファンクション

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

構文

APEX_UTIL.CURRENT_USER_IN_GROUP(
p_group_name    IN VARCHAR2)
RETURN BOOLEAN;

APEX_UTIL.CURRENT_USER_IN_GROUP(
p_group_id    IN NUMBER)
RETURN BOOLEAN;

パラメータ

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

表21-13 CURRENT_USER_IN_GROUPのパラメータ

パラメータ

説明

p_group_name

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

p_group_id

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

例

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

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

CUSTOM_CALENDARプロシージャ

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

構文

APEX_UTIL.CUSTOM_CALENDAR(
p_date_type_field IN VARCHAR2);

パラメータ

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

表21-14 CUSTOM_CALENDARパラメータ

パラメータ

説明

p_date_type_field

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

例1

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

APEX_UTIL.CUSTOM_CALENDAR(
'P9_CALENDAR_TYPE');

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

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

構文

APEX_UTIL.DELETE_USER_GROUP(
p_group_id IN NUMBER);

パラメータ

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

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

パラメータ

説明

p_group_id

グループの主キー

例

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

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

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

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

構文

APEX_UTIL.DELETE_USER_GROUP(
p_group_name IN VARCHAR2);

パラメータ

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

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

パラメータ

説明

p_group_name

グループの名前

例

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

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

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

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

構文

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

パラメータ

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

表21-17 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_report_data

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

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

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

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

構文

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

パラメータ

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

表21-18 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_application_id

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

p_report_query_name

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

シグネチャ2の例

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

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

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

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

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

構文

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

パラメータ

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

表21-19 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_application_id

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

p_report_query_name

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

p_report_layout_name

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

シグネチャ3の例

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

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

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

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

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

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

構文

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

パラメータ

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

表21-20 DOWNLOAD_PRINT_DOCUMENTのパラメータ

パラメータ

説明

p_file_name

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

p_content_disposition

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

p_report_data

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

シグネチャ4の例

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

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

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

EDIT_USERプロシージャ

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

構文

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

パラメータ

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

表21-21 EDIT_USERのパラメータ

パラメータ

説明

p_user_id

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

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_web_password

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

p_new_password

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

p_email_address

情報

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

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

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

p_person_type

未使用

p_default_schema

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

p_group_ids

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

p_developer_roles

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

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

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

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

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

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

p_description

情報

p_account_expiry

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

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

p_account_locked

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

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

p_failed_access_attempts

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

p_change_password_on_first_use

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

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

p_first_password_use_occurred

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

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

例

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

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

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

関連項目:
「FETCH_USERプロシージャのシグネチャ3」

END_USER_ACCOUNT_DAYS_LEFTファンクション

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

構文

APEX_UTIL.END_USER_ACCOUNT_DAYS_LEFT (
p_user_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

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

表21-22 END_USER_ACCOUNT_DAYS_LEFTのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

関連項目:
「EXPIRE_END_USER_ACCOUNTプロシージャ」および「UNEXPIRE_END_USER_ACCOUNTプロシージャ」

EXPIRE_END_USER_ACCOUNTプロシージャ

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

構文

APEX_UTIL.EXPIRE_END_USER_ACCOUNT (
p_user_name IN VARCHAR2
);

パラメータ

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

表21-23 EXPIRE_END_USER_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

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

関連項目:
「UNEXPIRE_END_USER_ACCOUNTプロシージャ」

EXPIRE_WORKSPACE_ACCOUNTプロシージャ

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

構文

APEX_UTIL.EXPIRE_WORKSPACE_ACCOUNT (
p_user_name IN VARCHAR2
);

パラメータ

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

表21-24 EXPIRE_WORKSPACE_ACCOUNTのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

関連項目:
「UNEXPIRE_WORKSPACE_ACCOUNTプロシージャ」

EXPORT_USERSプロシージャ

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

構文

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

パラメータ

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

表21-25 EXPORT_USERSのパラメータ

パラメータ

説明

p_export_format

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

例

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

BEGIN
APEX_UTIL.EXPORT_USERS;
END;

FETCH_APP_ITEMファンクション

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

構文

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

パラメータ

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

表21-26 FETCH_APP_ITEMのパラメータ

パラメータ

説明

p_item

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

p_app

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

p_session

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

例

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

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

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

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

シグネチャ1の構文

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

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

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

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

パラメータ

説明

p_user_id

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

p_workspace

ワークスペースの名前

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_web_password

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

p_email_address

電子メール・アドレス。

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

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

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

p_person_type

未使用

p_default_schema

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

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

p_groups

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

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

p_developer_role

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

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

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

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

注意: 現在このパラメータの名前は一貫しておらず、CREATE_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のパラメータ

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

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

パラメータ

説明

p_user_id

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

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_email_address

電子メール・アドレス。

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

p_groups

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

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

p_developer_role

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

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

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

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

注意: 現在このパラメータの名前は一貫しておらず、CREATE_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のパラメータ

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

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

パラメータ

説明

p_user_id

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

p_workspace

ワークスペースの名前

p_user_name

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

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

p_first_name

情報

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

p_last_name

情報

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

p_web_password

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

p_email_address

電子メール・アドレス。

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

p_start_date

未使用

p_end_date

未使用

p_employee_id

未使用

p_allow_access_to_schemas

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

p_person_type

未使用

p_default_schema

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

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

p_groups

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

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

p_developer_role

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

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

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

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

注意: 現在このパラメータの名前は一貫しておらず、CREATE_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;

パラメータ

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

表21-30 FIND_SECURITY_GROUP_IDのパラメータ

パラメータ

説明

p_workspace

ワークスペースの名前

例

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

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

FIND_WORKSPACEファンクション

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

構文

APEX_UTIL.FIND_WORKSPACE(
p_security_group_id    IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

表21-31 FIND_WORKSPACEのパラメータ

パラメータ

説明

p_security_group_id

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

例

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

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

GET_ACCOUNT_LOCKED_STATUSファンクション

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

構文

APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS (
p_user_name IN VARCHAR2
) RETURN BOOLEAN;

パラメータ

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

表21-32 GET_ACCOUNT_LOCKED_STATUSのパラメータ

パラメータ

説明

p_user_name

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

例

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

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

関連項目:
「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;

パラメータ

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

表21-33 GET_ATTRIBUTEのパラメータ

パラメータ

説明

p_username

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

p_attribute_number

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

例

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

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

関連項目:
「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を説明するパラメータが必要です。この項目は後でAPEX_UTIL.GET_BLOB_FILE_SRCファンクションが参照します。

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

構文

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

パラメータ

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

表21-34 GET_BLOB_FILE_SRCのパラメータ

パラメータ

説明

p_item_name

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

p_v1

主キー列1の値。

p_v2

主キー列2の値。

p_content_disposition

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

例

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

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

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

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

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

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

GET_CURRENT_USER_IDファンクション

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

構文

APEX_UTIL.GET_CURRENT_USER_ID
RETURN NUMBER;

パラメータ

なし。

例

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

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

GET_DEFAULT_SCHEMAファンクション

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

構文

APEX_UTIL.GET_DEFAULT_SCHEMA
RETURN VARCHAR2;

パラメータ

なし。

例

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

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

GET_EDITIONファンクション

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

構文

APEX_UTIL.GET_EDITION
RETURN VARCHAR2;

パラメータ

なし。

例

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

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

GET_EMAILファンクション

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

構文

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

パラメータ

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

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

パラメータ

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

表21-36 GET_FEEDBACK_FOLLOW_UPパラメータ

パラメータ

説明

p_feedback_id

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

p_row

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

p_template

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

例

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

declare
l_feedback_count  number;
begin
select count(*)
into l_feedback_count
from apex_team_feedback_followup
where feedback_id = 123;

for i in 1..l_feedback_count loop
htp.p(apex_util.get_feedback_follow_up (
p_feedback_id => 123,
p_row         => i,
p_template    => '<br />#FOLLOW_UP# was created on #CREATED_ON# by #CREATED_BY#') );
end loop;
end;
/

GET_FILEプロシージャ

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

- プロシージャを起動するボタンと同じ「対象ボタン」属性を持つブランチ。

- プロシージャが起動されている場合に、ページ処理時に正常に実行される条件ロジックが定義されているブランチ。

- 無条件。

構文

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

パラメータ

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

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

パラメータ

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

表21-38 GET_FILE_IDのパラメータ

パラメータ

説明

p_name

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

例

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

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

GET_FIRST_NAMEファンクション

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

構文

APEX_UTIL.GET_FIRST_NAME
p_username IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表21-41 GET_GROUP_IDのパラメータ

パラメータ

説明

p_group_name

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

例

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

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

GET_GROUP_NAMEファンクション

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

構文

APEX_UTIL.GET_GROUP_NAME(
p_group_id IN NUMBER)
RETURN VARCHAR2;

パラメータ

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

表21-42 GET_GROUP_NAMEのパラメータ

パラメータ

説明

p_group_id

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

例

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

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

GET_HIGH_CONTRAST_MODE_TOGGLEファンクション

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

構文

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

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

パラメータ

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

表21-46 GET_PREFERENCEのパラメータ

パラメータ

説明

p_preference

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

p_value

プリファレンスの値

p_user

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

例

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

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

関連項目:
「SET_PREFERENCEプロシージャ」、「REMOVE_PREFERENCEプロシージャ」およびOracle Application Express管理ガイドの「ユーザー・プリファレンスの管理」

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

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

構文

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

パラメータ

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

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

パラメータ

説明

p_report_data

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

p_report_layout

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

p_report_layout_type

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

p_document_format

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

p_print_server

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

GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ2

このファンクションは、事前定義されたレポート問合せおよび事前定義されたレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_application_id      IN NUMBER,
p_report_query_name   IN VARCHAR2,
p_report_layout_name  IN VARCHAR2 default null,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default null)
RETURN BLOB;

パラメータ

表21-48では、GET_PRINT_DOCUMENTファンクションで使用可能なパラメータについて説明します。

表21-48 GET_PRINT_DOCUMENTシグネチャ2のパラメータ

パラメータ

説明

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_name

レポート・レイアウトの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。

GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ3

このファンクションは、事前定義されたレポート問合せ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_application_id      IN NUMBER,
p_report_query_name   IN VARCHAR2,
p_report_layout       IN CLOB,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default null)
RETURN BLOB;

パラメータ

表21-49では、GET_PRINT_DOCUMENTファンクションで使用可能なパラメータについて説明します。

表21-49 GET_PRINT_DOCUMENTシグネチャ3のパラメータ

パラメータ

説明

p_application_id

レポート問合せのアプリケーションIDを定義します

p_report_query_name

レポート問合せの名前(アプリケーションの共有コンポーネントの下に保存)

p_report_layout

XSL-FO形式またはRTF形式のレポート・レイアウトを定義します

p_report_layout_type

レポートのレイアウト・タイプを定義します("xsl-fo"または"rtf")

p_document_format

ドキュメントの形式を定義します("pdf"、"rtf"、"xls"、"htm"または"xml")

p_print_server

プリント・サーバーのURL。指定されていない場合、プリント・サーバーはプリファレンスから導出されます。

GET_PRINT_DOCUMENTの例は、「GET_PRINT_DOCUMENTファンクションのシグネチャ4」を参照してください。

GET_PRINT_DOCUMENTファンクションのシグネチャ4

このファンクションは、XMLベースのレポート・データ、およびRTFベースまたはXSL-FOベースのレポート・レイアウトを使用して、ドキュメントをBLOBとして戻します。

構文

APEX_UTIL.GET_PRINT_DOCUMENT (
p_report_data         IN CLOB,
p_report_layout       IN CLOB,
p_report_layout_type  IN VARCHAR2 default 'xsl-fo',
p_document_format     IN VARCHAR2 default 'pdf',
p_print_server        IN VARCHAR2 default NULL)
RETURN BLOB;

パラメータ

表21-50に、GET_PRINT_DOCUMENTファンクションのシグネチャ4で使用可能なパラメータを示します。

表21-50 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;

パラメータ

表21-51では、GET_SCREEN_READER_MODE_TOGGLEファンクションで使用可能なパラメータについて説明します。

表21-51 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;

パラメータ

表21-52では、GET_SESSION_STATEファンクションで使用可能なパラメータについて説明します。

表21-52 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_USER_IDファンクション

このファンクションは、ワークスペース内の指定したユーザーの数値のIDを戻します。

構文

APEX_UTIL.GET_USER_ID(
p_username   IN VARCHAR2)
RETURN NUMBER;

パラメータ

表21-53では、GET_USER_IDファンクションで使用可能なパラメータについて説明します。

表21-53 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;

パラメータ

表21-54では、GET_USER_ROLESファンクションで使用可能なパラメータについて説明します。

表21-54 GET_USER_ROLESのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名を指定します。

例

次の例に、GET_USER_ROLESファンクションを使用して、ユーザーFRANKのDEVELOPER_ROLEフィールドに格納されているコロンで区切られたロールのリストを戻す方法を示します。

DECLARE
VAL VARCHAR2(4000);
BEGIN
VAL := APEX_UTIL.GET_USER_ROLES(p_username=>'FRANK');
END;

GET_USERNAMEファンクション

このファンクションは、数値のIDで指定したユーザー・アカウントのユーザー名を戻します。

構文

APEX_UTIL.GET_USERNAME(
p_userid IN NUMBER)
RETURN VARCHAR2;

パラメータ

表21-55では、GET_USERNAMEファンクションで使用可能なパラメータについて説明します。

表21-55 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;

パラメータ

表21-56に、HOST_URLファンクションで使用可能なパラメータを示します。

表21-56 HOST_URLのパラメータ

パラメータ

説明

p_option

含めるURLの部分を指定します。

p_optionに使用可能な値は次のとおりです。

- NULL - ポート番号までのURLを戻します。次に例を示します。

http://myserver.com:7778

- SCRIPT - スクリプト名を含むURLを戻します。次に例を示します。

https://myserver.com:7778/pls/apex/

- IMGPRE - イメージ接頭辞を含むURLを戻します。次に例を示します。

https://myserver.com:7778/i/

例

次の例では、HOST_URLファンクションを使用して、スクリプト名を含むURLを現在のApplication Expressインスタンスに戻す方法を示しています。

declare
l_host_url      varchar2(4000);
l_url           varchar2(4000);
l_application   varchar2(30) := 'f?p=100:1';
l_email_body    varchar2(32000);
begin
l_host_url := apex_util.host_url('SCRIPT');
l_url := l_host_url||l_application;
l_email_body := 'The URL to the application is: '||l_url;
end;

HTML_PCT_GRAPH_MASKファンクション

このファンクションは、グラフの大きさを変更する場合に使用します。このファンクションは、書式マスクがGRAPHのクラシック・レポートおよび対話モード・レポートでも使用できます。これによって、インライン形式で<div>タグが生成されます。

構文

APEX_UTIL.HTML_PCT_GRAPH_MASK (
p_number         IN NUMBER    DEFAULT NULL,
p_size           IN NUMBER    DEFAULT 100,
p_background     IN VARCHAR2  DEFAULT NULL,
p_bar_background IN VARCHAR2  DEFAULT NULL,
p_format         IN VARCHAR2  DEFAULT NULL)
RETURN VARCHAR2;

パラメータ

表21-57では、HTML_PCT_GRAPH_MASKファンクションで使用可能なパラメータについて説明します。

表21-57 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は、chart_widthの半分である50になるように自動的に調整されます(オプション)。

例

次にSQLの例を示します。

select apex_util.html_pct_graph_mask(33) from dual

次にレポートの数値列の書式マスクの例を示します。

PCT_GRAPH:777777:111111:200

INCREMENT_CALENDARプロシージャ

このプロシージャを使用して、カレンダでの次のセットの日付に移動します。カレンダ・ビューに応じて、このプロシージャは、翌月、翌週または翌日に移動します。カスタム・カレンダの場合は、開始日から終了日までの総日数分、移動します。

構文

APEX_UTIL.INCREMENT_CALENDAR;

パラメータ

なし。

例

この例では、「カレンダ」ページで「NEXT」というボタンを作成し、「作成」ボタンをクリックすると起動するプロセスを作成した場合、次のコードによってカレンダ内を移動します。

APEX_UTIL.INCREMENT_CALENDAR

IR_CLEARプロシージャ

このプロシージャは、レポート設定を消去します。

構文

APEX_UTIL.IR_CLEAR(
p_page_id IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

表21-58では、IR_CLEARプロシージャで使用可能なパラメータについて説明します。

表21-58 IR_CLEARパラメータ

パラメータ

説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートを消去するには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートを消去するには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'を消去するには、p_report_aliasを'1234'にする必要があります。

例

次の例では、IR_CLEARプロシージャを使用して、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポート設定を消去する方法を示します。

BEGIN
APEX_UTIL.IR_CLEAR(
p_page_id      => 1,
p_report_alias => '8101021'
);
END;

IR_DELETE_REPORTプロシージャ

このプロシージャは、保存した対話モード・レポートを削除します。プライマリ・デフォルト・レポート以外のすべての保存済レポートを削除します。

構文

APEX_UTIL.IR_DELETE_REPORT(
p_report_id IN NUMBER);

パラメータ

表21-59では、IR_DELETE_REPORTプロシージャで使用可能なパラメータについて説明します。

表21-59 IR_DELETE_REPORTパラメータ

パラメータ

説明

p_report_id

Application Expressのカレント・アプリケーションで削除するレポートID。

例

次の例は、IR_DELETE_REPORTプロシージャを使用して、カレント・アプリケーションにあるIDが'880629800374638220'の保存済の対話モード・レポートを削除する方法を示しています。

BEGIN
APEX_UTIL.IR_DELETE_REPORT(
p_report_id => '880629800374638220');
END;

IR_DELETE_SUBSCRIPTIONプロシージャ

このプロシージャは、対話型サブスクリプションを削除します。

構文

APEX_UTIL.IR_DELETE_SUBSCRIPTION(
p_subscription_id IN NUMBER);

パラメータ

表21-59では、IR_DELETE_SUBSCRIPTIONプロシージャで使用可能なパラメータについて説明します。

表21-60 IR_DELETE_SUBSCRIPTIONパラメータ

パラメータ

説明

p_subscription_id

現行のワークスペース内の削除するサブスクリプションID。

例

次の例は、IR_DELETE_SUBSCRIPTIONプロシージャを使用して、現行のワークスペースにあるIDが'880629800374638220'のサブスクリプションを削除する方法を示しています。

BEGIN
APEX_UTIL.IR_DELETE_SUBSCRIPTION(
p_subscription_id => '880629800374638220');
END;

IR_FILTERプロシージャ

このプロシージャは、対話モード・レポートにフィルタを作成します。

構文

APEX_UTIL.IR_FILTER(
p_page_id       IN NUMBER,
p_report_column IN VARCHAR2,
p_operator_abbr IN VARCHAR2 DEFAULT NULL,
p_filter_value  IN VARCHAR2,
p_report_alias  IN VARCHAR2 DEFAULT NULL);

パラメータ

表21-61では、IR_FILTERプロシージャで使用可能なパラメータについて説明します。

表21-61 IR_FILTERパラメータ

パラメータ

説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_column

フィルタ処理されるレポートSQL列名または列の別名。

p_operator_abbr

フィルタ・タイプ。有効な値は次のとおりです。

- EQ = 等しい

- NEQ = 等しくない

- LT = 未満

- LTE = 以下

- GT = より大きい

- GTE = 以上

- LIKE = SQLのLike演算子

- N= NULL

- NN = NULLではない

- C = 含む

- NC = 含まない

- IN = SQL In演算子

- NIN = SQL Not In演算子

p_filter_value

フィルタ値。この値は'N'および'NN'には使用されません。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートにフィルタを作成するには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートにフィルタを作成するには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'にフィルタを作成するには、p_report_aliasを'1234'にする必要があります。

例

次の例では、IR_FILTERプロシージャを使用して、DEPTNOが30で、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポートをフィルタ処理する方法を示します。

BEGIN
APEX_UTIL.IR_FILTER (
p_page_id        => 1,
p_report_column  => 'DEPTNO',
p_operator_abbr  => 'EQ',
p_filter_value   => '30'
p_report_alias   => '8101021'
);
END;

IR_RESETプロシージャ

このプロシージャは、レポート設定をデフォルトに戻します。レポートをリセットすると、カスタマイズした設定はすべて削除されます。

構文

APEX_UTIL.IR_RESET(
p_page_id IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);

パラメータ

表21-62では、IR_RESETプロシージャで使用可能なパラメータについて説明します。

表21-62 IR_RESETパラメータ

パラメータ

説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名を指定します。プライマリ・レポートをリセットするには、p_report_aliasを'PRIMARY'にするか、NULLのままにする必要があります。保存したレポートをリセットするには、p_report_aliasを保存したレポートの名前にする必要があります。たとえば、レポート'1234'をリセットするには、p_report_aliasを'1234'にする必要があります。

例

次の例では、IR_RESETプロシージャを使用して、カレント・アプリケーションのページ1に別名'8101021'を持つ対話モード・レポート設定をリセットする方法を示します。

BEGIN
APEX_UTIL.IR_RESET(
p_page_id      => 1,
p_report_alias => '8101021'
);
END;

IS_HIGH_CONTRAST_SESSIONファンクション

このファンクションは、セッションがハイ・コントラスト・モードの場合はブール値のtrueを戻し、ハイ・コントラスト・モードでない場合はブール値のfalseを戻します。

構文

APEX_UTIL.IS_HIGH_CONTRAST_SESSION
RETURN BOOLEAN;

パラメータ

なし。

例

この例では、現在のセッションがハイ・コントラスト・モードで実行されている場合、特定のハイ・コントラストCSSファイル「my_app_hc.css」がページのHTML出力に追加されます。

BEGIN
IF apex_util.is_high_contrast_session THEN
apex_css.add_file (
p_name => 'my_app_hc');
END IF;
END;

IS_HIGH_CONTRAST_SESSION_YNファンクション

このファンクションは、セッションがハイ・コントラスト・モードの場合はYを戻し、ハイ・コントラスト・モードでない場合はNを戻します。

構文

APEX_UTIL.IS_HIGH_CONTRAST_SESSION_YN
RETURN VARCHAR2;

パラメータ

なし。

例

この例では、現在のセッションがハイ・コントラスト・モードで実行されている場合、特定のハイ・コントラストCSSファイルmy_app_hc.cssがページのHTML出力に追加されます。

BEGIN
IF apex_util.is_high_contrast_session_yn = 'Y' THEN
apex_css.add_file (
p_name => 'my_app_hc');
END IF;
END;

IS_LOGIN_PASSWORD_VALIDファンクション

このファンクションは、現在のワークスペース内の指定したユーザー・アカウントのパスワードの検証に基づいてブール結果を戻します。パスワードが一致した場合はtrueを、パスワードが一致しない場合はfalseを戻します。

構文

APEX_UTIL.IS_LOGIN_PASSWORD_VALID(
p_username IN VARCHAR2,
p_password IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表21-63では、IS_LOGIN_PASSWORD_VALIDファンクションで使用可能なパラメータについて説明します。

表21-63 IS_LOGIN_PASSWORD_VALIDのパラメータ

パラメータ

説明

p_username

アカウント内のユーザー名

p_password

アカウントに格納されているパスワードと比較されるパスワード

例

次の例に、IS_LOGIN_PASSWORD_VALIDファンクションを使用して、ユーザーFRANKのパスワードがtigerかどうかを確認する方法を示します。これがFRANKの有効なパスワードの場合はTRUE、そうでない場合はFALSEが戻されます。

DECLARE
VAL BOOLEAN;
BEGIN
VAL := APEX_UTIL.IS_LOGIN_PASSWORD_VALID (
p_username=>'FRANK',
p_password=>'tiger');
END;

IS_SCREEN_READER_SESSIONファンクション

このファンクションは、セッションがスクリーン・リーダー・モードも場合はブール値のtrueを戻し、スクリーン・リーダー・モードでない場合はブール値のfalseを戻します。

構文

APEX_UTIL.IS_SCREEN_READER_SESSION
RETURN BOOLEAN;

パラメータ

なし

例

BEGIN
IF apex_util.is_screen_reader_session then
htp.p('Screen Reader Mode');
END IF;
END;

IS_SCREEN_READER_SESSION_YNファンクション

このファンクションは、セッションがスクリーン・リーダー・モードも場合は'Y'を戻し、スクリーン・リーダー・モードでない場合は'N'を戻します。

構文

APEX_UTIL.IS_SCREEN_READER_SESSION_YN
RETURN VARCHAR2;

パラメータ

なし

例

BEGIN
IF apex_util.is_screen_reader_session_yn = 'Y' then
htp.p('Screen Reader Mode');
END IF;
END;

IS_USERNAME_UNIQUEファンクション

このファンクションは、指定したユーザー・アカウントがワークスペース内で一意であるかどうかに基づいてブール結果を戻します。

構文

APEX_UTIL.IS_USERNAME_UNIQUE(
p_username IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表21-64では、IS_USERNAME_UNIQUEファンクションで使用可能なパラメータについて説明します。

表21-64 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);

パラメータ

表21-65では、LOCK_ACCOUNTプロシージャで使用可能なパラメータについて説明します。

表21-65 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ファンクション

アカウント作成後にアカウント・パスワードが変更された場合は、TRUEを戻します。Oracle Application Express管理者が、アカウント保持者に新しいパスワードを電子メールで送信してパスワードのリセット操作を実行するか、あるいはユーザーがパスワードのリセット操作を開始します。このファンクションは、前述のイベントのどちらかが実行されてから、アカウントのパスワードが変更されていない場合は、FALSEを戻します。

このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.PASSWORD_FIRST_USE_OCCURRED (
p_user_name IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表21-66では、PASSWORD_FIRST_USE_OCCURREDプロシージャで使用可能なパラメータについて説明します。

表21-66 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;

パラメータ

表21-67では、PREPARE_URLファンクションで使用可能なパラメータについて説明します。

表21-67 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ファンクション

セキュリティ・スキーム名を指定すると、このファンクションによってカレント・ユーザーがセキュリティ・チェックを通過するかどうかが判断されます。

構文

APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION (
p_security_scheme    IN    VARCHAR2)
RETURN BOOLEAN;

パラメータ

表21-68では、PUBLIC_CHECK_AUTHORIZATIONファンクションで使用可能なパラメータについて説明します。

表21-68 PUBLIC_CHECK_AUTHORIZATIONのパラメータ

パラメータ

説明

p_security_name

ユーザーがセキュリティ・チェックを通過するかどうかを判断するセキュリティ・スキームの名前

例

次の例に、PUBLIC_CHECK_AUTHORIZATIONファンクションを使用して、my_auth_scheme認証スキームに定義されているチェックをカレント・ユーザーが通過するかどうかを確認する方法を示します。

DECLARE
l_check_security  BOOLEAN;
BEGIN
l_check_security := APEX_UTIL.PUBLIC_CHECK_AUTHORIZATION('my_auth_scheme');
END;

PURGE_REGIONS_BY_APPプロシージャ

アプリケーションのすべてのキャッシュされたリージョンを削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_APP (
p_application IN NUMBER);

パラメータ

表21-69では、PURGE_REGIONS_BY_APPで使用可能なパラメータについて説明します。

表21-69 PURGE_REGIONS_BY_APPのパラメータ

パラメータ

説明

p_application

アプリケーションの識別番号(ID)

例

次の例に、APEX_UTIL.PURGE_REGIONS_BY_APPを使用して、アプリケーション番号123に対してキャッシュされたすべてのリージョンを削除する方法を示します。

BEGIN
APEX_UTILITIES.PURGE_REGIONS_BY_APP(p_application=>123);
END;

PURGE_REGIONS_BY_NAMEプロシージャ

アプリケーションID、ページ番号およびリージョン名で識別されるリージョンに対してキャッシュされたすべての値を削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_NAME (
p_application IN NUMBER,
p_page        IN NUMBER,
p_region_name IN VARCHAR2);

パラメータ

表21-70では、PURGE_REGIONS_BY_NAMEで使用可能なパラメータについて説明します。

表21-70 PURGE_REGIONS_BY_NAMEのパラメータ

パラメータ

説明

p_application

アプリケーションの識別番号(ID)

p_page

削除されるリージョンを含んだページ番号

p_region_name

削除されるリージョンの名前。

例

次の例に、PURGE_REGIONS_BY_NAMEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンmy_cached_regionに対してキャッシュされたすべての値を削除する方法を示します。

BEGIN
APEX_UTIL.PURGE_REGIONS_BY_NAME(
p_application => :APP_ID,
p_page => 1,
p_region_name => 'my_cached_region');
END;

PURGE_REGIONS_BY_PAGEプロシージャ

アプリケーションおよびページによってキャッシュされたリージョンすべてを削除します。

構文

APEX_UTIL.PURGE_REGIONS_BY_PAGE (
p_application IN NUMBER,
p_page     IN NUMBER);

パラメータ

表21-71では、PURGE_REGIONS_BY_PAGEで使用可能なパラメータについて説明します。

表21-71 PURGE_REGIONS_BY_PAGEのパラメータ

パラメータ

説明

p_application

アプリケーションの識別番号(ID)

p_page

リージョンを含んだページの識別番号

例

次の例に、PURGE_REGIONS_BY_PAGEプロシージャを使用して、カレント・アプリケーションのページ1のリージョンに対してキャッシュされたすべての値を削除する方法を示します。

BEGIN
APEX_UTIL.PURGE_REGIONS_BY_PAGE(
p_application => :APP_ID,
p_page => 1);
END;

REDIRECT_URLプロシージャ

このプロシージャはowa_util.redirect_urlをコールして、ブラウザに新しいURLにリダイレクトするよう伝えます。これは、その後、自動的にapex_application.stop_apex_engineをコールして、Application Expressアプリケーションが処理を続けないよう中断します。

構文

APEX_UTIL.REDIRECT_URL (
p_url              in varchar2,
p_reset_htp_buffer in boolean default true );

パラメータ

表21-72に、REDIRECT_URLプロシージャで使用可能なパラメータを示します。

表21-72 REDIRECT_URLのパラメータ

パラメータ

説明

p_url

ブラウザがリクエストするURL。

p_reset_htp_buffer

ブラウザが新しいURLへのリダイレクトを理解し、HTPバッファにすでに書き込まれたデータによって混乱しないようにするため、TRUEに設定してHTPバッファをリセットします。アプリケーションに、応答時に使用する独自のクッキーがある場合は、FALSEに設定します。

例

次の例では、ブラウザがhttp://www.oracle.comにリダイレクトして、それ以降の処理をすぐに停止します。

apex_util.redirect_url (
p_url => 'http://www.oracle.com/' );

REMOVE_PREFERENCEプロシージャ

このプロシージャは、指定したユーザーのプリファレンスを削除します。

構文

APEX_UTIL.REMOVE_PREFERENCE(
p_preference    IN    VARCHAR2 DEFAULT NULL,
p_user          IN    VARCHAR2 DEFAULT V('USER'));

パラメータ

表21-73では、REMOVE_PREFERENCEプロシージャで使用可能なパラメータについて説明します。

表21-73 REMOVE_PREFERENCEのパラメータ

パラメータ

説明

p_preference

削除するプリファレンスの名前

p_user

プリファレンス定義の対象ユーザー

例

次の例に、REMOVE_PREFERENCEプロシージャを使用して、現在認証されているユーザーのプリファレンスdefault_viewを削除する方法を示します。

BEGIN
APEX_UTIL.REMOVE_PREFERENCE(
p_preference => 'default_view',
p_user       => :APP_USER);
END;

関連項目:
「GET_PREFERENCEファンクション」、「SET_PREFERENCEプロシージャ」およびOracle Application Express管理ガイドの「セッション・ステートおよびユーザー・プレファレンスの管理」

REMOVE_SORT_PREFERENCESプロシージャ

このプロシージャは、ユーザーの列ヘッダーのソート・プリファレンスの値を削除します。

構文

APEX_UTIL.REMOVE_SORT_PREFERENCES (
p_user  IN   VARCHAR2 DEFAULT V('USER'));

パラメータ

表21-74では、REMOVE_SORT_PREFERENCESファンクションで使用可能なパラメータについて説明します。

表21-74 REMOVE_SORT_PREFERENCESのパラメータ

パラメータ

説明

p_user

ソート・プリファレンスを削除するユーザーを指定します。

例

次の例に、REMOVE_SORT_PREFERENCESプロシージャを使用して、現在認証されているユーザーの列ヘッダーのソート・プリファレンスを削除する方法を示します。

BEGIN
APEX_UTIL.REMOVE_SORT_PREFERENCES(:APP_USER);
END;

REMOVE_USERプロシージャ

このプロシージャは、主キーまたはユーザー名で指定したユーザー・アカウントを削除します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.REMOVE_USER(
p_user_id   IN NUMBER,
p_user_name IN VARCHAR2);

パラメータ

表21-75では、REMOVE_USERプロシージャで使用可能なパラメータについて説明します。

表21-75 REMOVE_USERのパラメータ

パラメータ

説明

p_user_id

ユーザー・アカウント・レコードの数値の主キー

p_user_name

ユーザー・アカウントのユーザー名

例

次の例に、REMOVE_USERプロシージャを使用してユーザー・アカウントを削除する方法を示します。まず(p_user_idパラメータを使用して)主キーに基づいて、次に(p_user_nameパラメータを使用して)ユーザー名に基づいて削除します。

BEGIN
APEX_UTIL.REMOVE_USER(p_user_id=> 99997);
END;

BEGIN
APEX_UTIL.REMOVE_USER(p_user_name => 'FRANK');
END;

RESET_AUTHORIZATIONSプロシージャ

Oracle Application Expressは、パフォーマンスを向上させるために、認可スキームの評価後、その結果をキャッシュします。このプロシージャを使用すると、キャッシュを元に戻して、次にページ表示または受入れ処理中に認可スキームが適用された際に各認可スキームの再検証を要求できます。このプロシージャは、ユーザーがアプリケーション内で自らの信頼性(認可プロファイル)を変更できるようにする場合に使用できます。

構文

APEX_UTIL.RESET_AUTHORIZATIONS;

パラメータ

なし。

例

次の例に、RESET_AUTHORIZATIONSプロシージャを使用して認証スキームのキャッシュをクリアする方法を示します。

BEGIN
APEX_UTIL.RESET_AUTHORIZATIONS;
END;

RESET_PWプロシージャ

このプロシージャは、指定したユーザーのパスワードを再設定し、そのパスワードをメッセージとして現行のワークスペース内の指定したアカウントのアドレスに電子メールを送信します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.RESET_PW(
p_user IN VARCHAR2,
p_msg  IN VARCHAR2);

パラメータ

表21-76では、RESET_PWプロシージャで使用可能なパラメータについて説明します。

表21-76 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;

パラメータ

表21-77では、SAVEKEY_NUMプロシージャで使用可能なパラメータについて説明します。

表21-77 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;

パラメータ

表21-78では、SAVEKEY_VC2ファンクションで使用可能なパラメータについて説明します。

表21-78 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);

パラメータ

表21-79では、SET_ATTRIBUTEプロシージャで使用可能なパラメータについて説明します。

表21-79 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);

パラメータ

表21-24では、SET_AUTHENTICATION_RESULTプロシージャで使用可能なパラメータについて説明します。

表21-80 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);

パラメータ

表21-81に、SET_BUILD_OPTION_STATUSプロシージャで使用可能なパラメータを示します。

表21-81 SET_BUILD_OPTION_STATUSのパラメータ

パラメータ

説明

p_application_id

共有コンポーネントの下にビルド・オプションを所有するアプリケーションのID。

p_id

アプリケーションのビルド・オプションのID。

p_build_status

ビルド・オプションの新しいステータス。可能な値は、INCLUDEおよびEXCLUDE(どちらも大文字)です。

例

次の例に、SET_BUILD_OPTION_STATUSプロシージャを使用して、ビルド・オプションの現在のステータスを変更する方法を示します。

BEGIN
APEX_UTIL.SET_BUILD_OPTION_STATUS(
P_APPLICATION_ID => 101,
P_ID => 245935500311121039, P_BUILD_STATUS=>'INCLUDE');

END;

SET_CUSTOM_AUTH_STATUSプロシージャ

このプロシージャは、アプリケーションのカスタム認証ファンクション(資格証明の検証ファンクション)からコールできます。このプロシージャに渡されたステータスは、「ログイン・アクセス・ログ」にログ出力されます。

関連項目:
Oracle Application Express管理ガイドの「ワークスペース内のアクティビティの監視」

構文

APEX_UTIL.SET_CUSTOM_AUTH_STATUS(
p_status  IN VARCHAR2);

パラメータ

表21-82では、SET_CUSTOM_AUTH_STATUSプロシージャで使用可能なパラメータについて説明します。

表21-82 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);

パラメータ

表21-82では、SET_EDITIONプロシージャで使用可能なパラメータについて説明します。

表21-83 SET_EDITIONパラメータ

パラメータ

説明

p_edition

エディション名。

例

次の例は、SET_EDITIONプロシージャの使用方法を示しています。現在のページ・ビューのデータベース・セッションのエディション名を設定します。

BEGIN
APEX_UTIL.SET_EDITION( P_EDITION => 'Edition1' );
END;

注意:
エディション・ベースの再定義のサポートは、バージョン11.2.0.1以上のデータベースでのみ使用可能です。

SET_EMAILプロシージャ

このプロシージャは、新しい電子メール・アドレスを使用してユーザー・アカウントを更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_EMAIL(
p_userid IN NUMBER,
p_email  IN VARCHAR2);

パラメータ

表21-84では、SET_EMAILプロシージャで使用可能なパラメータについて説明します。

表21-84 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);

パラメータ

表21-85では、SET_FIRST_NAMEプロシージャで使用可能なパラメータについて説明します。

表21-85 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_LAST_NAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいLAST_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_LAST_NAME(
p_userid      IN NUMBER,
p_last_name   IN VARCHAR2);

パラメータ

表21-86では、SET_LAST_NAMEプロシージャで使用可能なパラメータについて説明します。

表21-86 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);

パラメータ

表21-87では、SET_PREFERENCEプロシージャで使用可能なパラメータについて説明します。

表21-87 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);

パラメータ

表21-88では、SET_SECURITY_GROUP_IDプロシージャで使用可能なパラメータについて説明します。

表21-88 SET_SECURITY_GROUP_IDパラメータ

パラメータ

説明

p_security_group_id

これは、作業中のワークスペースのセキュリティ・グループIDです。

例

この例では、過去1日にタスクを割り当てた各ユーザーにアラートを送信します。

create or replace procedure new_tasks
is
l_workspace_id      number;
l_subject           varchar2(2000);
l_body              clob;
l_body_html         clob;
begin
l_workspace_id := apex_util.find_security_group_id (p_workspace => 'PROJECTS');
apex_util.set_security_group_id (p_security_group_id => l_workspace_id);

l_body := ' ';
l_subject := 'You have new tasks';
for c1 in (select distinct(p.email_address) email_address, p.user_id
from teamsp_user_profile p, teamsp_tasks t
where p.user_id = t.assigned_to_user_id
and t.created_on > sysdate - 1
and p.email_address is not null ) loop
l_body_html := '<p />The following tasks have been added.';
for c2 in (select task_name, due_date
from teamsp_tasks
where assigned_to_user_id = c1.user_id
and created_on > sysdate - 1 ) loop
l_body_html := l_body_html || '<p />Task: '||c2.task_name||', due '||c2.due_date;
end loop;
apex_mail.send (
p_to        => c1.email_address,
p_from      => c1.email_address,
p_body      => l_body,
p_body_html => l_body_html,
p_subj      => l_subject );
end loop;
end;

SET_SESSION_HIGH_CONTRAST_OFFプロシージャ

このプロシージャは、現在のセッションのハイ・コントラスト・モードをオフにします。

構文

APEX_UTIL.SET_SESSION_HIGH_CONTRAST_OFF;

パラメータ

なし。

例

この例では、現在のセッションのハイ・コントラスト・モードはオフです。

BEGIN
apex_util.set_session_high_contrast_off;
END;

SET_SESSION_HIGH_CONTRAST_ONプロシージャ

このプロシージャは、現在のセッションのハイ・コントラスト・モードをオンにします。

構文

APEX_UTIL.SET_SESSION_HIGH_CONTRAST_ON;

パラメータ

なし。

例

この例では、現在のセッションがハイ・コントラスト・モードになります。

BEGIN
apex_util.set_session_high_contrast_on;
END;

SET_SESSION_LANGプロシージャ

このプロシージャは、Application Expressのカレント・セッションで、現在のユーザーに使用する言語を設定します。言語は有効なIANA言語名である必要があります。

構文

APEX_UTIL.SET_SESSION_LANG(
p_lang IN VARCHAR2);

パラメータ

表21-89では、SET_SESSION_LANGプロシージャで使用可能なパラメータについて説明します。

表21-89 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プロシージャ

このプロシージャは、カレント・セッションに対するカレント・アプリケーションの「最大セッションの長さ」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてセッションの存続期間を動的に短縮また延長できます。

注意:
このプロシージャを機能させるには、アプリケーションの「最大セッションの長さ」属性がアプリケーション定義で0 (ゼロ)以外の値に設定されている必要があります。開発者がこの属性を設定しなかった場合、このプロシージャは機能しません。

構文

APEX_UTIL.SET_SESSION_LIFETIME_SECONDS (
p_seconds  IN    NUMEBER,
p_scope    IN    VARCHAR2 DEFAULT 'SESSION');

パラメータ

表21-90では、SET_SESSION_LIFETIME_SECONDSプロシージャで使用可能なパラメータについて説明します。

表21-90 SET_SESSION_LIFETIME_SECONDSのパラメータ

パラメータ

説明

p_seconds

このアプリケーションで使用されるセッションが存在可能な秒数を示す正の整数。

p_scope

'SESSION'にデフォルト設定されます。また、'APPLICATION'に設定される場合もあります。'SESSION'の場合は、このセッションを使用しているすべてのアプリケーションが影響を受けます。''APPLICATION'の場合は、カレント・セッションを使用しているカレント・アプリケーションのみが影響を受けます。

例1

次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を7200秒(2時間)に設定する方法を示します。開発者がアプリケーションの「最大セッションの長さ」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータでデフォルト値の'SESSION'を使用できるようにすると、次の例は、カレント・セッションを使用しているすべてのアプリケーションに実際に適用されます。複数のApplication Expressアプリケーションで共通の認証スキームが使用され、それらのアプリケーションが共通のセッションでスイートとして動作するように設計されている場合は、このユースケースが最も一般的なユースケースとなります。

BEGIN
APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 7200);
END;

例2

次の例に、SET_SESSION_LIFETIME_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッションの長さ」属性を3600秒(1時間)に設定する方法を示します。開発者がアプリケーションの「最大セッションの長さ」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータのデフォルト値を上書きして'APPLICATION'に設定すると、次の例は、他のアプリケーションで同じセッションが使用されている場合でも、カレント・セッションを使用しているカレント・アプリケーションにのみ実際に適用されます。

BEGIN
APEX_UTIL.SET_SESSION_LIFETIME_SECONDS(p_seconds => 3600,
p_scope => 'APPLICATION');
END;

SET_SESSION_MAX_IDLE_SECONDSプロシージャ

カレント・セッションに対するカレント・アプリケーションの「最大セッション・アイドル時間」の値を設定して、対応するアプリケーション属性を上書きします。これによって、開発者は、ユーザーの認証後に決定された条件に基づいてページ・リクエスト間で許容される最大アイドル時間を動的に短縮または延長できます。

注意:
このプロシージャを機能させるには、アプリケーションの「最大セッション・アイドル時間」属性がアプリケーション定義で0 (ゼロ)以外の値に設定されている必要があります。開発者がこの属性を設定しなかった場合、このプロシージャは機能しません。

構文

APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS (
p_seconds  IN    NUMEBER,
p_scope    IN    VARCHAR2 DEFAULT 'SESSION');

パラメータ

表21-91では、SET_SESSION_MAX_IDLE_SECONDSプロシージャで使用可能なパラメータについて説明します。

表21-91 SET_SESSION_MAX_IDLE_SECONDSのパラメータ

パラメータ

説明

p_seconds

ページ・リクエスト間で許容される秒数を示す正の整数。

p_scope

'SESSION'にデフォルト設定されます。また、'APPLICATION'に設定される場合もあります。'SESSION'の場合は、このセッションを使用しているすべてのアプリケーションにこのアイドル時間が適用されます。'APPLICATION'の場合は、カレント・セッションを使用しているカレント・アプリケーションにのみこのアイドル時間が適用されます。

例1

次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を1200秒(20分)に設定する方法を示します。開発者がアプリケーションの「最大セッション・アイドル時間」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータでデフォルト値の'SESSION'を使用できるようにすると、次の例は、カレント・セッションを使用しているすべてのアプリケーションに実際に適用されます。複数のApplication Expressアプリケーションで共通の認証スキームが使用され、それらのアプリケーションが共通のセッションでスイートとして動作するように設計されている場合は、このユースケースが最も一般的なユースケースとなります。

BEGIN
APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 1200);
END;

例2

次の例に、SET_SESSION_MAX_IDLE_SECONDSプロシージャを使用して、カレント・アプリケーションの「最大セッション・アイドル時間」属性を600秒(10分)に設定する方法を示します。開発者がアプリケーションの「最大セッション・アイドル時間」属性をアプリケーション定義で0 (ゼロ)以外の値に設定しなかった場合、このAPIコールは機能しません。p_scope入力パラメータのデフォルト値を上書きして'APPLICATION'に設定すると、次の例は、他のアプリケーションで同じセッションが使用されている場合でも、カレント・セッションを使用しているカレント・アプリケーションにのみ実際に適用されます。

BEGIN
APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS(p_seconds => 600,
p_scope => 'APPLICATION');
END;

SET_SESSION_SCREEN_READER_OFFプロシージャ

このプロシージャは、現在のセッションのスクリーン・リーダー・モードをオフにします。

構文

APEX_UTIL.SET_SESSION_SCREEN_READER_OFF;

パラメータ

なし

例

この例では、カレント・セッションが標準モードになります。

BEGIN
IF apex_util.set_session_screen_reader_off;
END;

SET_SESSION_SCREEN_READER_ONプロシージャ

このプロシージャは、カレント・セッションをスクリーン・リーダー・モードにします。

構文

APEX_UTIL.SET_SESSION_SCREEN_READER_ON;

パラメータ

なし

例

この例では、カレント・セッションがスクリーン・リーダー・モードになります。

BEGIN
IF apex_util.set_session_screen_reader_on;
END;

SET_SESSION_STATEプロシージャ

このプロシージャは、現在のOracle Application Expressセッションのセッション・ステートを設定します。

構文

APEX_UTIL.SET_SESSION_STATE (
p_name     IN    VARCHAR2 DEFAULT NULL,
p_value    IN    VARCHAR2 DEFAULT NULL);

パラメータ

表21-92では、SET_SESSION_STATEプロシージャで使用可能なパラメータについて説明します。

表21-92 SET_SESSION_STATEのパラメータ

パラメータ

説明

p_name

セッション・ステートを設定する、アプリケーション・レベルまたはページ・レベルのアイテムの名前

p_value

設定するセッション・ステートの値

例

次の例に、SET_SESSION_STATEプロシージャを使用して、アイテムmy_itemの値をカレント・セッションの'myvalue'に設定する方法を示します。

BEGIN
APEX_UTIL.SET_SESSION_STATE('my_item','myvalue');
END;

関連項目:
「GET_SESSION_STATEファンクション」、「GET_NUMERIC_SESSION_STATEファンクション」およびOracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイドの「セッション・ステートの管理の理解」

SET_SESSION_TERRITORYプロシージャ

このプロシージャは、Application Expressのカレント・セッションで、現在のユーザーに使用する地域を設定します。地域名は有効なOracle地域である必要があります。

構文

APEX_UTIL.SET_SESSION_TERRITORY(
p_territory IN VARCHAR2);

パラメータ

表21-93では、SET_SESSION_TERRITORYプロシージャで使用可能なパラメータについて説明します。

表21-93 SET_SESSION_TERRITORYのパラメータ

パラメータ

説明

p_territory

有効なOracle地域名。AMERICA、UNITED KINGDOM、ISRAEL、AUSTRIA、UNITED ARAB EMIRATESなどがあります。

例

この例は、SET_SESSION_TERRITORYプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーの地域を設定します。

BEGIN
APEX_UTIL.SET_SESSION_TERRITORY( P_TERRITORY => 'UNITED KINGDOM');
END;

SET_SESSION_TIME_ZONEプロシージャ

このプロシージャは、Application Expressのカレント・セッションにおける現在のユーザーに使用するタイムゾーンを設定します。

構文

APEX_UTIL.SET_SESSION_TIME_ZONE(
p_time_zone IN VARCHAR2);

パラメータ

表21-94では、SET_SESSION_TIME_ZONEプロシージャで使用可能なパラメータについて説明します。

表21-94 SET_SESSION_TIME_ZONEパラメータ

パラメータ

説明

p_timezone

時間と分で構成されるタイムゾーン値。+09:00、04:00、-05:00などがあります。

例

この例は、SET_SESSION_TIME_ZONEプロシージャの使用方法を示しています。Application Expressセッション中の現在のユーザーのタイムゾーンを設定します。

BEGIN
APEX_UTIL.SET_SESSION_TIME_ZONE( P_TIME_ZONE => '-05:00');
END;

SET_USERNAMEプロシージャ

このプロシージャは、ユーザー・アカウントを新しいUSER_NAME値に更新します。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.SET_USERNAME(
p_userid   IN NUMBER,
p_username IN VARCHAR2);

パラメータ

表21-95では、SET_USERNAMEプロシージャで使用可能なパラメータについて説明します。

表21-95 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);

パラメータ

表21-96に、SHOW_HIGH_CONTRAST_MODE_TOGGLEプロシージャで使用可能なパラメータを示します。

表21-96 SHOW_HIGH_CONTRAST_MODE_TOGGLEのパラメータ

パラメータ

説明

p_on_message

標準モードの場合に、ハイ・コントラスト・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオンに設定」テキストが表示されます。

p_off_message

ハイ・コントラスト・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「ハイ・コントラスト・モードをオフに設定」テキストが表示されます。

例

標準モードで実行中の場合、このプロシージャは「ハイ・コントラスト・モードをオンに設定」というリンクを表示し、このリンクをクリックすると、現在のページがリフレッシュされ、ハイ・コントラスト・モードがオンになります。ハイ・コントラスト・モードで実行中の場合、リンク「ハイ・コントラスト・モードをオフに設定」が表示され、リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
htp.p(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)

パラメータ

表21-97では、SHOW_SCREEN_READER_MODE_TOGGLEファンクションで使用可能なパラメータについて説明します。

表21-97 SHOW_SCREEN_READER_MODE_TOGGLEパラメータ

パラメータ

説明

p_on_message

標準モードの場合に、スクリーン・リーダー・モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオンに設定」テキストが表示されます。

p_off_message

スクリーン・リーダー・モードの場合に、標準モードに切り替えるリンクに使用するオプションのテキスト。このパラメータが渡されないと、デフォルトの「スクリーン・リーダー・モードをオフに設定」テキストが表示されます。

例

標準モードで実行中の場合、このプロシージャは「スクリーン・リーダー・モードをオンに設定」というリンクを表示し、このリンクをクリックすると、現在のページがリフレッシュされ、スクリーン・リーダー・モードがオンになります。スクリーン・リーダー・モードで実行中の場合、リンク'Set Screen Reader Mode Off'が表示されます。リンクをクリックすると、現在のページがリフレッシュされ、標準モードに戻ります。

BEGIN
htp.p(apex_util.show_screen_reader_mode_toggle);
END;

STRING_TO_TABLEファンクション

文字列を指定すると、このファンクションによって型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列が戻されます。この配列はVARCHAR2(32767)表です。

構文

APEX_UTIL.STRING_TO_TABLE (
p_string       IN VARCHAR2,
p_separator    IN VARCHAR2 DEFAULT ':')
RETURN APEX_APPLICATION_GLOBAL.VC_ARR2;

パラメータ

表21-98では、STRING_TO_TABLEファンクションで使用可能なパラメータについて説明します。

表21-98 STRING_TO_TABLEのパラメータ

パラメータ

説明

p_string

型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表に変換される文字列

p_separator

文字列のセパレータ。(デフォルトはコロン)

例

次の例に、STRING_TO_TABLEファンクションを使用する方法を示します。このファンクションは、p_stringパラメータの文字列'One:Two:Three'を渡され、型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL配列を戻します。この配列は3つの要素を含み、位置1の要素には値'One'、位置2の要素には値'Two'、位置3の要素には値'Three'が含まれています。次に、このファンクションは、HTP.Pファンクション・コールを使用してこのPL/SQL配列を出力します。

DECLARE
l_vc_arr2    APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE('One:Two:Three');
FOR z IN 1..l_vc_arr2.count LOOP
htp.p(l_vc_arr2(z));
END LOOP;
END;

関連項目:
「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);

パラメータ

表21-99では、STRONG_PASSWORD_CHECKプロシージャで使用可能なパラメータについて説明します。

表21-99 STRONG_PASSWORD_CHECKのパラメータ

パラメータ

説明

p_username

現行のワークスペース内のアカウントを識別するユーザー名

p_password

パスワードの強度ルールを基準にチェックするパスワード

p_old_password

アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます)

p_workspace_name

現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます)

p_use_strong_rules

このAPIをコールする場合はFALSEを渡します

p_min_length_err

パスワードが、最小の長さの要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_new_differs_by_err

パスワードが「新しいパスワードは古いパスワードと異なること」という要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_alpha_err

パスワードが、アルファベットを1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_numeric_err

パスワードが、数字を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_punctuation_err

パスワードが、句読記号を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_upper_err

パスワードが、大文字を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_one_lower_err

パスワードが、小文字を1文字以上含むことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_like_username_err

パスワードが、ユーザー名を含まないことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_like_workspace_name_err

パスワードが、ワークスペース名を含まないことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_like_words_err

パスワードが、指定された単純な単語を含まないことという要件を満たすかどうかに基づいて、TrueまたはFalseの結果が戻ります

p_not_reusable_err

パスワードが、パスワード履歴ルールに基づいて再利用できるかどうかに基づいて、TrueまたはFalseの結果が戻ります。

例

次の例に、STRONG_PASSWORD_CHECKプロシージャを使用する方法を示します。このプロシージャは、ユーザーSOMEBODYの新しいパスワードfooが、Oracle Application Expressのサイト管理者によって定義されたすべてのパスワードの強度要件を満たしていることをチェックします。いずれかのチェックが失敗した場合(関連するOUTパラメータがTRUEを戻した場合)、この例では、関連メッセージが出力されます。たとえば、Oracle Application Expressのサイト管理者がパスワードには1つ以上の数字が必要であると定義した場合にパスワードfooがチェックされると、p_one_numeric_err OUTパラメータによってTRUEが戻され、「Password must contain at least one numeric character」というメッセージが出力されます。

DECLARE
l_username                    varchar2(30);
l_password                    varchar2(30);
l_old_password                varchar2(30);
l_workspace_name              varchar2(30);
l_min_length_err              boolean;
l_new_differs_by_err          boolean;
l_one_alpha_err               boolean;
l_one_numeric_err             boolean;
l_one_punctuation_err         boolean;
l_one_upper_err               boolean;
l_one_lower_err               boolean;
l_not_like_username_err       boolean;
l_not_like_workspace_name_err boolean;
l_not_like_words_err          boolean;
l_not_reusable_err            boolean;
l_password_history_days       pls_integer;
BEGIN
l_username := 'SOMEBODY';
l_password := 'foo';
l_old_password := 'foo';
l_workspace_name := 'XYX_WS';
l_password_history_days :=
apex_instance_admin.get_parameter ('PASSWORD_HISTORY_DAYS');

APEX_UTIL.STRONG_PASSWORD_CHECK(
p_username                    => l_username,
p_password                    => l_password,
p_old_password                => l_old_password,
p_workspace_name              => l_workspace_name,
p_use_strong_rules            => false,
p_min_length_err              => l_min_length_err,
p_new_differs_by_err          => l_new_differs_by_err,
p_one_alpha_err               => l_one_alpha_err,
p_one_numeric_err             => l_one_numeric_err,
p_one_punctuation_err         => l_one_punctuation_err,
p_one_upper_err               => l_one_upper_err,
p_one_lower_err               => l_one_lower_err,
p_not_like_username_err       => l_not_like_username_err,
p_not_like_workspace_name_err => l_not_like_workspace_name_err,
p_not_like_words_err          => l_not_like_words_err,
p_not_reusable_err            => l_not_reusable_err);

IF l_min_length_err THEN
htp.p('Password is too short');
END IF;

IF l_new_differs_by_err THEN
htp.p('Password is too similar to the old password');
END IF;

IF l_one_alpha_err THEN
htp.p('Password must contain at least one alphabetic character');
END IF;

IF l_one_numeric_err THEN
htp.p('Password  must contain at least one numeric character');
END IF;

IF l_one_punctuation_err THEN
htp.p('Password  must contain at least one punctuation character');
END IF;

IF l_one_upper_err THEN
htp.p('Password must contain at least one upper-case character');
END IF;

IF l_one_lower_err THEN
htp.p('Password must contain at least one lower-case character');
END IF;

IF l_not_like_username_err THEN
htp.p('Password may not contain the username');
END IF;

IF l_not_like_workspace_name_err THEN
htp.p('Password may not contain the workspace name');
END IF;

IF l_not_like_words_err THEN
htp.p('Password contains one or more prohibited common words');
END IF;

IF l_not_reusable_err THEN
htp.p('Password cannot be used because it has been used for the account within the last '||l_password_history_days||' days.');
END IF;
END;

関連項目:
Oracle Application Express管理ガイドの「パスワード・ポリシーについて」

STRONG_PASSWORD_VALIDATIONファンクション

このファンクションは、提示されたパスワードがOracle Application Expressサイト管理者によって定義されたパスワード強度要件を満たすかどうかに基づいて、結果を書式化されたHTMLとしてVARCHAR2で戻します。

構文

FUNCTION STRONG_PASSWORD_VALIDATION(
p_username                    IN  VARCHAR2,
p_password                    IN  VARCHAR2,
P_OLD_PASSWORD                IN  VARCHAR2 DEFAULT NULL,
P_WORKSPACE_NAME              IN  VARCHAR2)
RETURN VARCHAR2;

パラメータ

表21-100では、STRONG_PASSWORD_VALIDATIONファンクションで使用可能なパラメータについて説明します。

表21-100 STRONG_PASSWORD_VALIDATIONのパラメータ

パラメータ

説明

p_username

現行のワークスペース内のアカウントを識別するユーザー名

p_password

パスワードの強度ルールを基準にチェックするパスワード

p_old_password

アカウントの現行のパスワード(「新しいパスワードは古いパスワードと異なること」というルールを適用する目的のみに使用されます)

p_workspace_name

現行のワークスペース名(「パスワードにはワークスペース名を含まないこと」というルールを適用する目的のみに使用されます)

例

次の例に、STRONG_PASSWORD_VALIDATIONプロシージャを使用する方法を示します。このプロシージャは、ユーザーSOMEBODYの新しいパスワードfooが、Oracle Application Expressのサイト管理者によって定義されたすべてのパスワードの強度要件を満たしていることをチェックします。いずれかのチェックが失敗した場合、この例では、新しいパスワードが要件を満たすことに失敗した詳細を示す書式設定されたHTMLが出力されます。

DECLARE
l_username                    varchar2(30);
l_password                    varchar2(30);
l_old_password                varchar2(30);
l_workspace_name              varchar2(30);
BEGIN
l_username := 'SOMEBODY';
l_password := 'foo';
l_old_password := 'foo';
l_workspace_name := 'XYX_WS';

HTP.P(APEX_UTIL.STRONG_PASSWORD_VALIDATION(
p_username                    => l_username,
p_password                    => l_password,
p_old_password                => l_old_password,
p_workspace_name              => l_workspace_name));
END;

SUBMIT_FEEDBACKプロシージャ

このプロシージャを使用すると、フィードバックというタイプのページを作成して生成できるページを使わなくても、フィードバックを送信するプロシージャを記述できます。

構文

APEX_UTIL.SUBMIT_FEEDBACK (
p_comment          IN VARCHAR2 DEFAULT NULL,
p_type             IN NUMBER   DEFAULT '1',
p_application_id   IN VARCHAR2 DEFAULT NULL,
p_page_id          IN VARCHAR2 DEFAULT NULL,
p_email            IN VARCHAR2 DEFAULT NULL,
p_screen_width     IN VARCHAR2 DEFAULT NULL,
p_screen_height    IN VARCHAR2 DEFAULT NULL,
p_attribute_01     IN VARCHAR2 DEFAULT NULL,
p_attribute_02     IN VARCHAR2 DEFAULT NULL,
p_attribute_03     IN VARCHAR2 DEFAULT NULL,
p_attribute_04     IN VARCHAR2 DEFAULT NULL,
p_attribute_05     IN VARCHAR2 DEFAULT NULL,
p_attribute_06     IN VARCHAR2 DEFAULT NULL,
p_attribute_07     IN VARCHAR2 DEFAULT NULL,
p_attribute_08     IN VARCHAR2 DEFAULT NULL,
p_label_01         IN VARCHAR2 DEFAULT NULL,
p_label_02         IN VARCHAR2 DEFAULT NULLl,
p_label_03         IN VARCHAR2 DEFAULT NULL,
p_label_04         IN VARCHAR2 DEFAULT NULL,
p_label_05         IN VARCHAR2 DEFAULT NULL,
p_label_06         IN VARCHAR2 DEFAULT NULL,
p_label_07         IN VARCHAR2 DEFAULT NULL,
p_label_08         IN VARCHAR2 DEFAULT NULL);

パラメータ

表21-101では、SUBMIT_FEEDBACKプロシージャで使用可能なパラメータについて説明します。

表21-101 SUBMIT_FEEDBACKパラメータ

パラメータ

説明

p_comment

送信するコメント。

p_type

フィードバックのタイプ(1は一般的なコメント、2は拡張リクエスト、3は不具合)

p_application_id

フィードバックに関連するアプリケーションのID

p_page_id

フィードバックに関連するページのID

p_email

フィードバックを提供するユーザーの電子メール

p_screen_width

フィードバックを提供したときの画面の幅

p_screen_height

フィードバックを提供したときの画面の高さ

p_attribute_01

フィードバックを収集するためのカスタム属性

p_attribute_02

フィードバックを収集するためのカスタム属性

p_attribute_03

フィードバックを収集するためのカスタム属性

p_attribute_04

フィードバックを収集するためのカスタム属性

p_attribute_05

フィードバックを収集するためのカスタム属性

p_attribute_06

フィードバックを収集するためのカスタム属性

p_attribute_07

フィードバックを収集するためのカスタム属性

p_attribute_08

フィードバックを収集するためのカスタム属性

p_label_01

対応するカスタム属性のラベル

p_label_02

対応するカスタム属性のラベル

p_label_03

対応するカスタム属性のラベル

p_label_04

対応するカスタム属性のラベル

p_label_05

対応するカスタム属性のラベル

p_label_06

対応するカスタム属性のラベル

p_label_07

対応するカスタム属性のラベル

p_label_08

対応するカスタム属性のラベル

例

次の例では、アプリケーション283のページ22に関する不具合を送信します。

begin
apex_util.submit_feedback (
p_comment        => 'This page does not render properly for me',
p_type           => 3,
p_application_id => 283,
p_page_id        => 22,
p_email          => 'user@xyz.corp',
p_attribute_01   => 'Charting',
p_label_01       => 'Component' );
end;
/

SUBMIT_FEEDBACK_FOLLOWUPプロシージャ

このプロシージャを使用すると、フィードバックにフォロー・アップを送信できます。

構文

APEX_UTIL.SUBMIT_FEEDBACK_FOLLOWUP (
p_feedback_id      IN NUMBER,
p_follow_up        IN VARCHAR2 DEFAULT NULL,
p_email            IN VARCHAR2 DEFAULT NULL);

パラメータ

表21-102では、SUBMIT_FEEDBACK_FOLLOWUPプロシージャで使用可能なパラメータについて説明します。

表21-102 SUBMIT_FEEDBACK_FOLLOWUPパラメータ

パラメータ

説明

p_feedback_followup

フォロー・アップするフィードバックのID

p_follow_up

フォロー・アップのテキスト

p_email

フォロー・アップを提供するユーザーの電子メール

例

次の例では、以前に登録したフィードバックにフォロー・アップを送信します。

begin
apex_util.submit_feedback_followup (
p_feedback_id    => 12345,
p_follow_up      => 'I tried this on another instance and it does not work there either',
p_email          => 'user@xyz.corp' );
end;
/

TABLE_TO_STRINGファンクション

型がAPEX_APPLICATION_GLOBAL.VC_ARR2のPL/SQL表を指定すると、このファンクションによって、指定したセパレータかデフォルトのセパレータ(コロン(:))で区切られた文字列が戻されます。

構文

APEX_UTIL.TABLE_TO_STRING (
p_table       IN     APEX_APPLICATION_GLOBAL.VC_ARR2,
p_string      IN     VARCHAR2 DEFAULT ':')
RETURN VARCHAR2;

パラメータ

表21-103では、TABLE_TO_STRINGファンクションで使用可能なパラメータについて説明します。

表21-103 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);

パラメータ

表21-104では、UNEXPIRE_END_USER_ACCOUNTプロシージャで使用可能なパラメータについて説明します。

表21-104 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);

パラメータ

表21-105では、UNEXPIRE_WORKSPACE_ACCOUNTプロシージャで使用可能なパラメータについて説明します。

表21-105 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);

パラメータ

表21-106では、UNLOCK_ACCOUNTプロシージャで使用可能なパラメータについて説明します。

表21-106 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;

パラメータ

表21-107では、URL_ENCODEファンクションで使用可能なパラメータについて説明します。

表21-107 URL_ENCODEのパラメータ

パラメータ

説明

p_url

エンコードする文字列

例

次の例に、URL_ENCODEファンクションを使用する方法を示します。

DECLARE
l_url  VARCHAR2(255);
BEGIN
l_url := APEX_UTIL.URL_ENCODE('http://www.myurl.com?id=1&cat=foo');
END;

この例では、次のURLを使用しています。

http://www.myurl.com?id=1&cat=foo

これは、次のように戻されます。

http%3A%2F%2Fwww%2Emyurl%2Ecom%3Fid%3D1%26cat%3Dfoo

WORKSPACE_ACCOUNT_DAYS_LEFTファンクション

開発者またはワークスペース管理者アカウント・パスワードの期限が切れるまでの残りの日数を戻します。このファンクションは、すべての認証済ユーザーによってページ・リクエストのコンテキストで実行される場合があります。

構文

APEX_UTIL.WORKSPACE_ACCOUNT_DAYS_LEFT (
p_user_name IN VARCHAR2)
RETURN NUMBER;

パラメータ

表21-108では、WORKSPACE_ACCOUNT_DAYS_LEFTプロシージャで使用可能なパラメータについて説明します。

表21-108 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プロシージャ」

22 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について

- BLOB2CLOBBASE64ファンクション

- CLOBBASE642BLOBファンクション

- MAKE_REQUESTプロシージャ

- MAKE_REQUESTファンクション

- MAKE_REST_REQUESTファンクション

- 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サービスの起動

- RESTful形式のWebサービスの起動

- CookiesおよびHTTPヘッダーの取得

- CookiesおよびHTTPヘッダーの設定

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;

パラメータ

表22-1に、BLOB2CLOBBASE64ファンクションで使用可能なパラメータを示します。

表22-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;

パラメータ

表22-2では、CLOBBASE642BLOBファンクションで使用可能なパラメータについて説明します。

表22-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_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 );

パラメータ

表22-3では、MAKE_REQUESTプロシージャで使用可能なパラメータについて説明します。

表22-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_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_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;

パラメータ

表22-4では、MAKE_REQUESTファンクションで使用可能なパラメータについて説明します。

表22-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_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_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 WWV_FLOW_GLOBAL.VC_ARR2 default empty_vc_arr,
p_parm_value        IN WWV_FLOW_GLOBAL.VC_ARR2 default empty_vc_arr,
p_wallet_path       IN VARCHAR2 default null,
p_wallet_pwd        IN VARCHAR2 default null )
RETURN CLOB;

パラメータ

表22-5では、MAKE_REST_REQUESTファンクションで使用可能なパラメータについて説明します。

表22-5 MAKE_REST_REQUESTファンクションのパラメータ

パラメータ

説明

p_url

WebサービスのURLエンドポイント。

p_http_method

使用するHTTPメソッド(PUT、POST、GET、HEADまたはDELETE)。

p_username

このサービスに基本認証が必要な場合はユーザー名。

p_password

このサービスに基本認証が必要な場合はパスワード。

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

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;

パラメータ

表22-6では、PARSE_RESPONSEファンクションで使用可能なパラメータについて説明します。

表22-6 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;

パラメータ

表22-7では、PARSE_RESPONSE_CLOBファンクションで使用可能なパラメータについて説明します。

表22-7 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;

パラメータ

表22-8に、PARSE_XMLファンクションで使用可能なパラメータを示します。

表22-8 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;

パラメータ

表22-9では、PARSE_XML_CLOBファンクションで使用可能なパラメータについて説明します。

表22-9 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;

23 JavaScript API

このセクションでは、Oracle Application Expressに付属する、すべてのページで使用可能なJavaScriptのファンクションおよびオブジェクトについて説明します。これらのファンクションおよびオブジェクトを使用することで、クライアント側の機能(ページ要素の表示/非表示、XML HTTP Asynchronous JavaScriptおよびXML (AJAX)リクエストの作成など)を提供できます。

注意:
レガシーJavaScript。作業は、ページをレンダリングする際にApplication ExpressによってロードされるJavaScript全体のサイズを減らす試みから始まりました。各ページで提供されないJavaScriptファンクションは、/images/libraries/apex/legacy.jsにあるレガシーJavaScriptファイルに徐々に移動されます。
アプリケーションの開発時に、開発者には、レガシーJavaScriptファンクションを含むか含まないかの選択肢があります。これは、アプリケーションの「共有コンポーネント」の「ユーザー・インタフェース属性」ページにある「レガシーJavaScriptを含める」プロパティを使用することで実現します。

既存のアプリケーションは、下位互換性のために、このオプションを有効にして移行されます。このレガシー・ファイルを含まない場合は、レガシー・ファイルにリストされているファンクションを確認して、アプリケーションと関連付けられているJavaScriptファイルからそれらのファイルに対する参照を検索します。それらのファンクションに対する参照がないことを確認したら、レガシー・ファイルを含める機能をオフにして、やや小さいライブラリを利用できます。

新しいアプリケーションの開発時には、レガシー・ファイルは、「デスクトップ」ユーザー・インタフェース・タイプを使用するすべてのアプリケーションに含まれます。「jQuery Mobileスマートフォン」ユーザー・インタフェース・タイプを使用する新しいアプリケーションには、このファイルは含まれません。

新規および既存の両方のアプリケーション開発では、このレガシーJavaScriptに対する依存性を減らすために、legacy.jsに含まれるファンクションを使用しないことをお薦めします。

トピック:

- apex.event.trigger(pSelector,pEvent,pData)

- apex.widget.initPageItem(pName,pOptions)

- $x(pNd)

- $v(pNd)

- $v2(pNd)

- $s(pNd, pValue, pDisplayValue, pSuppressChangeEvent)

- $u_Carray(pNd)

- $u_Narray(pNd)

- $nvl(pTest, pDefault)

- apex.submit(pOptions)

- apex.submit(pRequest)

- apex.confirm(pMessage, pRequest)

- apex.item(pThis).isEmpty()

- apex.navigation.popup.close(pThat,pValue)

- apex.storage.getCookie(pName)

- apex.storage.setCookie(pName,pValue)

- apex.confirm(pMessage, pOptions)

- $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)

- $v_PopupReturn(pValue, pThat) [非推奨]

- $x_ToggleWithImage(pThis,pNd)

- $x_SwitchImageSrc(pNd, pSearch, pReplace)

- $x_CheckImageSrc(pNd, pSearch)

- $u_SubString(pText,pMatch)

- html_RemoveAllChildren(pNd)

- $v_IsEmpty(pThis) [非推奨]

- html_SetSelectValue(pId,pValue)

- addLoadEvent(pFunction)

- $f_Swap(pThis,pThat)

- submitEnter(pNd,e) [非推奨]

- $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)

- setReturn(p_R,p_D) [非推奨]

- $f_First_field(pNd)

- GetCookie (pName) [非推奨]

- SetCookie (pName,pValue) [非推奨]

apex.event.trigger(pSelector,pEvent,pData)

jQueryセレクタ、jQueryオブジェクトまたはDOMノードを指定すると、指定したpEventがトリガーされます。pEventは、「クリック」や「変更」のようなブラウザ・イベントですが、「スライド変更」のようなカスタム・イベントでもあります。このファクションは、動的アクション・フレームワークによって処理されるイベントをトリガーする場合にのみ使用する必要があります。そうしないと、アプリケーションにインストールされたプラグインによって登録されたカスタム・イベントや動的アクションですでに公開されているイベントが危険にさらされる可能性があります。

戻り値

Boolean

パラメータ

pSelector (jQuery selector | jQuery object | DOM Node)
pEvent (String)
pData (Object)

apex.widget.initPageItem(pName,pOptions)

ページ・アイテム名を指定すると、異なるオプションをApplication ExpressのJavaScriptフレームワークを持つページ・アイテムに登録できます。これは、プラグイン・アイテムとApplication ExpressのJavaScriptファンクションに関連する組込みページ・アイテムをシームレスに統合するために必要です。

パラメータ

pName (string)
pOptions (Object)

$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_Carray(pNd)

指定されたDOMノード、文字列IDまたは配列(pNd)に対して、このファンクションは配列を戻します。1つまたは複数のDOMノードに対応可能なDOMベースの機能を作成する場合に使用されます。

戻り値

pNd (DOM Node | string ID | Array)

パラメータ

Array

$u_Narray(pNd)

DOMノード、文字列IDまたは配列(pNd)を指定すると、このファンクションは、pNdが配列でも、要素が1つしかなく、その要素の値が戻される場合には単一値を戻し、それ以外の場合は配列が戻されます。1つまたは複数のDOMノードに対応可能なDOMベースの機能を作成する場合に使用されます。

戻り値

Array (DOM Node | string ID | Array)

パラメータ

Array or first value

$nvl(pTest, pDefault)

pTestが空またはfalseの場合はpDefaultを戻し、それ以外の場合はpTestを戻します。

戻り値

(string | Array)

パラメータ

pTest  (String | Array)
pDefault (String | Array)

apex.submit(pOptions)

このファンクションは、pOptionsで指定したオプションを使用してページを送信します。

パラメータ

pOptions (Object)
where Object can contain the following options:

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).

例

この例では、REQUESTの値が'DELETE'のページを送信します。2つのページ・アイテム値P1_DEPTNOが10、P1_EMPNOが5433に設定されています。送信中は、待機アイコンがユーザーへのインジケータとして表示されます。

apex.submit({  request:"DELETE",  set:{"P1_DEPTNO":10, "P1_EMPNO":5433},  showWait:true});

apex.submit(pRequest)

このファクションは、ページを送信して、Application Express Requestの値pRequestを設定します。

パラメータ

pRequest (String)

例

REQUESTの値が'DELETE'の現在のページを送信します。

apex.submit({
request:"DELETE",
set:{"P1_DEPTNO":10, "P1_EMPNO":5433});

apex.confirm(pMessage, pRequest)

メッセージ(pMessage)を表示する確認画面を表示し、ユーザーの選択に基づいて、ページを送信してリクエスト値(pRequest)を設定するか、またはページの送信をキャンセルします。

パラメータ

pMessage (string)
pRequest (string)

例

この例では、確認ダイアログ・ボックスに「Delete Department」というテキストが表示されます。ユーザーが削除を選択すると、REQUESTの値が'DELETE'の現在のページが送信されます。

apex.confirm('Delete Department', 'DELETE');

apex.item(pThis).isEmpty()

フォーム要素が空かどうかでtrueまたはfalseを戻しますが、空白、タブ、フォーム・フィードなどの空白文字は、空とみなされます。アイテムに指定されたnull値も考慮されます。

戻り値

[true | false]

パラメータ

pThis (DOM Node | String)

apex.navigation.popup.close(pThat,pValue)

親ウィンドウ(pThat)内のアイテムの値を(pValue)に設定してから、ポップアップ・ウィンドウを閉じます。

戻り値

Not applicable.

パラメータ

pValue (string)
pThat (DOM node | string ID)

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.confirm(pMessage, pOptions)

メッセージ(pMessage)を表示する確認画面を表示し、ユーザーの選択に基づいて、pOptionsによって指定したリクエスト値を設定するページを送信するか、またはページの送信をキャンセルします。

パラメータ

pMessage (string)
pOptions (object)
Object can contain the following options:
request - The request value to be set (Defaults to null)
set - Object containing name / value pairs of items to be set on the page prior to submission (Defaults to null)

例1

この例では、「Save Department?」というテキストの確認メッセージが表示されます。ユーザーが保存を選択すると、REQUEST値が'SAVE'のページが送信されます。2つのページ・アイテム値P1_DEPTNOが10、P1_EMPNOが5433に設定されています。

apex.confirm("Save Department?", {
request:"SAVE",
set:{"P1_DEPTNO":10, "P1_EMPNO":5433}

});

例2

この例では、現在のページを送信し、REQUEST値をSAVEに設定します。

apex.submit('SAVE');

$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ノード(pNd)を削除します。

戻り値

(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ツリーの上位の方にカスケードします。

戻り値

(DOM Node | false)

パラメータ

pNd  (DOM Node | string ID)
String (pToTag)
String (pToClass )

$x_ItemRow(pNd,pFunc)

DOMノードまたはDOMノードの配列を指定すると、このファンクションは、そのDOMノードまたはDOMノードの配列を含む行全体を表示するか、非表示にするか、または切り替えます。これは、ページ・アイテムを使用する場合に最も役立ちます。

戻り値

Not applicable.

パラメータ

pNd (DOM Node | string ID | Dom node Array)
pFunc ['TOGGLE','SHOW','HIDE'] (String )

$x_HideItemRow(pNd)

ページ・アイテム名を指定すると、このファンクションは、そのアイテムを保持している行全体を非表示にします。ほとんどの場合、これはアイテムおよびそのラベルです。

戻り値

Not applicable.

パラメータ

pNd (DOM Node | string ID | DON node Array)

$x_ShowItemRow(pNd)

ページ・アイテム名を指定すると、このファンクションは、そのアイテムを保持している行全体を表示します。ほとんどの場合、これはアイテムおよびそのラベルです。

戻り値

Not applicable.

パラメータ

pNd (DOM node | string ID | DOM note Array)

$x_ToggleItemRow(pNd)

ページ・アイテム名(pNd)を指定すると、このファンクションは、そのアイテムを保持している行全体を切り替えます。ほとんどの場合、これはアイテムおよびそのラベルです。

戻り値

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を戻します。検出されない場合は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)

$v_PopupReturn(pValue, pThat) [非推奨]

親ウィンドウ(pThat)内のアイテムの値を(pValue)に設定してから、ポップアップ・ウィンドウを閉じます。

注意:
この関数は非推奨です。かわりに、次を使用します。
apex.navigation.popup.close(pThat,pValue)

既存のアプリケーションでは、「レガシーJavaScript」ファイル(legacy.js)を含むアプリケーションによって、古い関数はまだ使用できます。このファイルの包含を制御する方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデータベース・アプリケーションに関する説明を参照してください。

戻り値

Not applicable.

パラメータ

pValue (string)
pThat (DOM node | string ID)

$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を戻します。検出されない場合は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)

$v_IsEmpty(pThis) [非推奨]

フォーム要素が空かどうかでtrueまたはfalseを戻します(空白、タブ、フォーム・フィードなどの空白文字は、空とみなされます)。アイテムで指定された任意のNULL値も考慮されます。

注意:
この関数は非推奨です。かわりに、次を使用します。
apex.item(pThis).isEmpty()

既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「データベース・アプリケーションについて」を参照してください。

戻り値

[true | false]

パラメータ

pThis (DOM Node | String)

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)

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)

$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)

setReturn(p_R,p_D) [非推奨]

ポップアップからのアイテムの移入に使用できるように、DOMアイテムをグローバル変数returnInput(p_R)およびreturnDisplay(p_D)に設定します。

注意:
このファンクションは非推奨となっており、非常に限定された値のため、代替となるものはありません。
既存のアプリケーションでは、レガシーJavaScriptファイル(legacy.js)が含まれるため、古い機能を引き続き使用できます。このファイルを含めるかどうかの制御方法の詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「データベース・アプリケーションについて」を参照してください。

戻り値

Not applicable.

パラメータ

p_R
p_D

$f_First_field(pNd)

ユーザーのフォーカスをフォーム・アイテム(pNd)に移動します。pNdが検出されなかった場合は、ユーザー編集が可能なフィールドで、最初に検出されたフィールドにフォーカスが移動します。

戻り値

true (if successful)

パラメータ

pNd

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)

Copyright © 2003, 2012, Oracle and/or its affiliates. All rights reserved.