操作
1. 数据库表结构调整
首先,对目标表 REAGENT_CHARGING_AUTH 进行表结构扩展,添加一个新的字段 INSERT_FLAG,用于标识数据插入时的特定标记或状态。
1
|
ALTER TABLE REAGENT_CHARGING_AUTH add INSERT_FLAG varchar2(200);
|
2. 增加数据加载页面及处理
- 增加数据导入页面

记录下下面对应的页码

在数据验证页(页面:7)上,我们新增了一个项目 P7_GUID。当用户提交表单后,系统会自动计算并填充该值,生成一个批次标识符,具体实现方式为 TO_NUMBER(SYS_GUID(), ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’)。这一举措使得每一笔数据都能够被唯一标识,便于后续的数据跟踪和分析。
接下来,我们将详细阐述如何处理从文件上传以及复制粘贴两种不同来源的数据,同时设置相应的服务端条件。
新增加标识符的处理, 注意需要添加从文件和从复制两个处理,并且设置服务端条件

从文件的处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
DECLARE
v_uid varchar2(1000) := :P7_GUID;
l_seq number;
l_count number;
BEGIN
l_seq := APEX_COLLECTION.ADD_MEMBER(
p_collection_name => 'LOAD_COL_HEAD',
p_c002 => 'INSERT_FLAG',
p_c004 => 'N',
p_c005 => '标识');
FOR i IN (SELECT *
FROM apex_collections
WHERE collection_name = 'LOAD_CONTENT')
LOOP
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE(
p_collection_name => 'LOAD_CONTENT',
p_seq => i.seq_id,
p_attr_number => l_seq,
p_attr_value => v_uid);
END LOOP;
END;
|
从文件的服务端条件
从复制的处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
DECLARE
v_uid varchar2(1000) := :P7_GUID;
l_seq number;
BEGIN
l_seq := APEX_COLLECTION.ADD_MEMBER(
p_collection_name => 'PARSE_COL_HEAD',
p_c002 => 'INSERT_FLAG',
p_c004 => 'N',
p_c005 => '标识');
FOR i IN (SELECT *
FROM apex_collections
WHERE collection_name = 'LOAD_CONTENT')
LOOP
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE(
p_collection_name => 'LOAD_CONTENT',
p_seq => i.seq_id,
p_attr_number => l_seq,
p_attr_value => v_uid);
END LOOP;
END;
|
从复制的服务端条件

最后,在数据成功上传后,系统将记录下此次操作的标识符,以便于未来的审计和查询工作。
1
2
3
4
5
6
|
DECLARE
l_count number;
v_uid varchar2(1000) := :P7_GUID;
BEGIN
INSERT INTO REAGENT_CONF_ENV (ENV_TYPE, ENV_VALUE) VALUES ('ins-csv', v_uid);
END;
|

验证结果
