v_sql := 'SELECT MAX(aad215) FROM ad20, ad22 WHERE ad22.aad032 IN (' || v_old_aad032list ||
') AND ad20.oae200 = ad22.oae200';
EXECUTE IMMEDIATE v_sql
INTO ad20data.aad215;
v_sql := 'SELECT * FROM ad21 WHERE ad21.oae200 IN (SELECT distinct oae200 FROM ad22 WHERE ad22.aad032 IN (' ||
v_old_aad032list || '))';
OPEN c1 FOR v_sql;
LOOP
FETCH c1
INTO ad21data;
EXIT WHEN c1%NOTFOUND;
ad21data.oae200 := n_oae200;
SELECT seq_a_rowid.NEXTVAL INTO ad21data.oae001 FROM dual;
INSERT INTO ad21 VALUES ad21data;
END LOOP;
CLOSE c1;
本文介绍了一种使用PL/SQL进行批量数据处理的方法。通过构造动态SQL语句,实现从多个表中筛选并更新数据的功能。具体操作包括:根据指定条件选择最大值、打开游标获取符合特定条件的记录、更新记录中的外键引用并插入新记录。

被折叠的 条评论
为什么被折叠?



