如何在Oracle APEX中程序化获取交互式网格默认report_id?
获取交互式网格默认Report ID的程序化方法
当apex_application_page_ir_rpt视图中找不到对应数据时,是因为该视图仅存储用户自定义的交互式网格报告,系统默认的主报告(Primary Report)不会出现在这里。以下是两种可靠的程序化获取方式:
方法一:使用APEX内置API函数
APEX提供了专门的函数APEX_IR.GET_DEFAULT_REPORT_ID,可以直接获取指定交互式网格的默认报告ID,这是官方推荐的方式。
示例代码:
DECLARE l_default_report_id NUMBER; BEGIN l_default_report_id := APEX_IR.GET_DEFAULT_REPORT_ID( p_application_id => :APP_ID, -- 替换为你的应用ID p_page_id => :APP_PAGE_ID, -- 替换为你的页面ID p_region_id => 123 -- 替换为交互式网格的区域ID ); DBMS_OUTPUT.PUT_LINE('默认Report ID: ' || l_default_report_id); END; /
参数说明:
p_application_id:目标应用的IDp_page_id:包含交互式网格的页面IDp_region_id:交互式网格所在区域的ID(可从APEX页面设计器的区域属性中获取)
方法二:查询底层视图
如果无法使用API,可直接查询APEX的底层视图WWV_FLOW_IR_REPORTS,该视图包含所有交互式网格报告(包括默认报告)。
示例SQL查询:
SELECT report_id FROM WWV_FLOW_IR_REPORTS WHERE flow_id = :APP_ID -- 应用ID AND page_id = :APP_PAGE_ID -- 页面ID AND region_id = 123 -- 交互式网格区域ID AND is_primary = 'Y'; -- 筛选默认主报告
说明:is_primary = 'Y'用于定位默认的主报告,该记录即为系统创建的默认报告。
内容的提问来源于stack exchange,提问作者Coding Duchess
相关产品推荐
相关产品推荐

