oracle查出表a的数据,并遍历赋值插入到另一个表b中,b表在insert前验证是否已经存在,不存在则新增,存在则不做处理。
DECLARE n_count NUMBER;
n_temp NUMBER;
n_did NUMBER;
v_sqltext VARCHAR2 (200);
TYPE refcur IS REF CURSOR;
cur_dpinfo refcur;
BEGIN
v_sqltext := ' SELECT distinct did FROM t_prise'; -- 拼接sql语句,查出所有不同的did
OPEN cur_dpinfo FOR v_sqltext;
FETCH cur_dpinfo INTO n_did;
WHILE (cur_dpinfo%FOUND)
LOOP
BEGIN
SELECT COUNT (1)
INTO n_count
FROM t_param a
WHERE a.paramname = 'testparam1' and did = n_did; -- 检索指定did的数据存不存在
IF n_count = 0 -- 不存在则新增指定的did的参数
THEN
insert into t_param(id,paramname,paramvalue,did)
values((select max(id+1) id from t_param),'testparam1','1',n_did);
END IF;
END;
FETCH cur_dpinfo INTO n_did;
END LOOP;
CLOSE cur_dpinfo;
END;
/