You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Apex交互式网格执行PLSQL后刷新状态列可行性咨询

需求可行性及实现方案

这个需求完全可行,以下是具体实现步骤:

1. 存储PL/SQL包的执行结果

  • 在PL/SQL包执行过程中,要把每条记录的执行状态(成功/失败)和原IG记录的唯一标识(比如主键ID)绑定,可将结果存入Apex集合或临时表。集合需包含原记录唯一ID和对应的Status值。
  • 示例PL/SQL逻辑片段:
-- 假设COL_IG_DATA是存储传入IG记录的集合,COL_EXEC_RESULT用于存储执行结果
DECLARE
    CURSOR c_ig_records IS
        SELECT col1, col2, id FROM apex_collections WHERE collection_name = 'COL_IG_DATA';
BEGIN
    -- 先清空旧结果,避免干扰
    apex_collection.delete_collection(p_collection_name => 'COL_EXEC_RESULT');
    
    FOR rec IN c_ig_records LOOP
        BEGIN
            -- 调用业务包逻辑
            your_business_package.process_record(rec.col1, rec.col2);
            -- 执行成功,写入结果集合
            apex_collection.add_member(
                p_collection_name => 'COL_EXEC_RESULT',
                p_c001 => rec.id, -- 绑定原记录唯一ID
                p_c002 => '成功'
            );
        EXCEPTION
            WHEN OTHERS THEN
                -- 执行失败,写入结果集合
                apex_collection.add_member(
                    p_collection_name => 'COL_EXEC_RESULT',
                    p_c001 => rec.id,
                    p_c002 => '失败'
                );
        END;
    END LOOP;
END;

2. 配置Interactive Grid的数据源

  • 调整IG的SQL查询,关联执行结果集合动态获取Status值。示例查询:
SELECT 
    t.id,
    t.col1,
    t.col2,
    -- 关联结果集合,无结果则显示空
    NVL((SELECT c002 FROM apex_collections WHERE collection_name = 'COL_EXEC_RESULT' AND c001 = t.id), '') AS status
FROM your_source_table t
-- 若IG基于集合,替换为对应的集合查询语句

3. 实现IG的刷新与状态更新

  • 若用页面按钮触发:先配置执行PL/SQL包的服务器端流程,再添加刷新Interactive Grid区域的动作,执行完包后自动刷新IG,新状态会同步显示。
  • 若需前端灵活控制,可使用Apex JavaScript API:
// 调用服务器端PL/SQL流程后刷新IG
apex.server.process(
    'PROCESS_IG_RECORDS', // 对应页面PL/SQL流程的静态ID
    {},
    {
        success: function() {
            // 获取IG组件并刷新数据
            const igWidget = apex.region('YOUR_IG_REGION_STATIC_ID').widget();
            igWidget.interactiveGrid('getViews','grid').model.fetch();
        }
    }
);

注意事项

  • 要保证原IG记录有唯一标识(主键),否则无法准确关联执行结果。
  • 每次执行前清空结果集合,避免旧数据残留影响状态显示。

内容的提问来源于stack exchange,提问作者user3436905

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:17:15