场景
在将 APEX 从版本 19.2 升级至 24.2 后,发现新版本提供了直接导入 Excel 文件的功能。为充分利用这一新特性,我们计划调整现有的上传流程以支持此功能。
操作
- 数据库表结构调整 首先,对目标表 REAGENT_CHARGING_AUTH 进行表结构扩展,添加一个新的字段 INSERT_FLAG,用于标识数据插入时的特定标记或状态。
|
|
- 应用程序全局配置项创建
接下来,在应用层面(
应用程序 104 >>>共享组件 >>> 应用程序项),通过共享组件部分新增一个全局配置项 GLOBAL_INSERT_FLAG。此设置旨在存储每次数据批量加载操作中使用的唯一标识符。

-
数据加载定义更新
- 配置文件调整:进入“数据加载定义”模块针对 REAGENT_CHARGING_AUTH 表进行相应配置,确保新增的 INSERT_FLAG 字段能够正确映射到上传的数据源中。
应用程序 104 >>>共享组件 >>> 数据加载定义 >>> REAGENT_CHARGING_AUTH

- 默认值设定:对于 INSERT_FLAG 字段,其默认值应基于会话状态中的全局变量 GLOBAL_INSERT_FLAG 动态生成,可通过调用 apex_util.get_session_state(‘GLOBAL_INSERT_FLAG’) 方法实现。
利用
apex_util.get_session_state('GLOBAL_INSERT_FLAG')获取之前设定的全局变量

- 配置文件调整:进入“数据加载定义”模块针对 REAGENT_CHARGING_AUTH 表进行相应配置,确保新增的 INSERT_FLAG 字段能够正确映射到上传的数据源中。
-
文件上传页面配置优化
重新计算逻辑添加:于文件上传界面内,引入重新计算机制,确保每次上传过程中均能自动生成新的记录标识符,并将其与当前会话关联起来。例如,可以使用 to_number(sys_guid(),‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’) 函数来产生独一无二的数字序列。
- 重计算该标识符 例如:
to_number(sys_guid(),'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')

- 环境变量记录:每当执行完一次有效的数据导入后,需将此次操作对应的 INSERT_FLAG 值保存至 REAGENT_CONF_ENV 表中,作为后续查询或审计依据。
1INSERT INTO REAGENT_CONF_ENV( env_type,env_value) VALUES ('ins',:GLOBAL_INSERT_FLAG );
- 重计算该标识符 例如:
-
批量导入结果验证
最后,通过以下 SQL 查询语句检查并确认所有带有特定 INSERT_FLAG 标签的数据条目是否已成功写入数据库:
|
|
以上步骤确保了在利用 APEX 新增的 Excel 导入功能时,不仅能够高效地完成数据迁移任务,同时还能保持良好的数据管理和追踪能力。