使用Oracle Application Express 4.2.5.00.08,我们遇到以下重复出现的问题:
>我们开发了一个开发DB.
>我们将整个应用程序从开发DB导出到sql * Plus脚本文件.
>我们将整个脚本文件导入(通过sql * Plus或APEX管理前端,无关紧要)到另一个(测试/产品)数据库.
>所有页面插件的五个(每次相同)使得他们的显示点在导入的应用程序中搞砸了.
declare s varchar2(32767) := null; l_clob clob; l_length number := 1; begin s:=s||'Revision Comments'; wwv_flow_api.create_page_plug ( p_id=> 36035377787100554 + wwv_flow_api.g_id_offset,p_flow_id=> wwv_flow.g_flow_id,p_page_id=> 68,p_plug_name=> 'Toolbar3',p_region_name=>'',p_parent_plug_id=>36001157224505179 + wwv_flow_api.g_id_offset,p_escape_on_http_output=>'Y',p_plug_template=> 35698556626931435+ wwv_flow_api.g_id_offset,p_plug_display_sequence=> 105,p_plug_new_grid => false,p_plug_new_grid_row => true,p_plug_new_grid_column => true,p_plug_display_column=> null,p_plug_display_point=> 'REGION_POSITION_02',p_plug_item_display_point=> 'ABOVE',p_plug_source=> s,p_plug_source_type=> 'STATIC_TEXT',p_translate_title=> 'Y',p_plug_query_row_template=> 39496105155901584+ wwv_flow_api.g_id_offset,p_plug_query_headings_type=> 'QUERY_COLUMNS',p_plug_query_num_rows => 15,p_plug_query_num_rows_type => 'NEXT_PREVIoUS_LINKS',p_plug_query_row_count_max => 500,p_plug_query_show_nulls_as => ' - ',p_plug_display_condition_type => 'sql_EXPRESSION',p_plug_display_when_condition => ':P68_ID_BUS_DQI_DATA IS NOT NULL',p_pagination_display_position=>'BOTTOM_RIGHT',p_plug_customized=>'0',p_plug_caching=> 'NOT_CACHED',p_plug_comment=> ''); end; /
当我们从测试/生产中再次导出整个应用程序(从脚本文件导入之后)并进行逐行比较时,页面插件的创建代码片段看起来像……
declare s varchar2(32767) := null; l_clob clob; l_length number := 1; begin s:=s||'Revision Comments'; wwv_flow_api.create_page_plug ( p_id=> 36035377787100554 + wwv_flow_api.g_id_offset,p_plug_display_point=> 'BODY_3',p_plug_comment=> ''); end; /
…唯一的区别在于……
p_plug_display_point=> 'BODY_3',
……行.
当然,这可以通过APEX前端手动修复五个页面插件中的每一个,但是当6个环境到位并且每个应该每月更新几次时,这是不可想象的.所有数据库开发都有自动部署工具,只有这个APEX前端必须手工处理.
手动,前端驱动修复之前与之后的apex_040200.wwv_flow_page_plugs数据的比较显示,只有apex_040200.wwv_flow_page_plugs.plug_display_point从’BODY_3’更新回’REGION_POSITION_02′.但我们没有权限直接更新APEX表.
我尝试搜索某种update_page_plug()API程序,但没有找到任何.
所以,我很感兴趣
>直接从APEX API查找update_page_plug()过程,
>或直接在应用程序中修复此问题,以便问题不再发生(因为我认为原始应用程序的开发人员做得不对,只是不知道可能是什么).
那么有什么建议吗?