我有两个选择查询,我想 打开两个游标?
v_str1:='SELECT ROWID FROM ' || p_tblname|| 'WHERE '|| p_cname||'='''||
p_cvalue || '''';
v_str2:='SELECT COUNT ( * )
INTO v_cnt
FROM ' ||
p_tblname||
'WHERE '|| p_cname||' = '''||p_cvalue||'''';
.....
OPEN ref_cur_name FOR v_str1
LOOP
IF v_cnt = 1
THEN
EXIT;
ELSE
EXECUTE IMMEDIATE 'DELETE FROM '|| p_tblname||
'WHERE ROWID = REC.ROWID';
END IF;
v_cnt := v_cnt - 1;
END LOOP;
第一个查询是一个select语句,其他只是将计数放入 IF v_cnt = 1
THEN
EXIT;
ELSE
EXECUTE IMMEDIATE 'DELETE FROM '|| p_tblname||
'WHERE ROWID = REC.ROWID';
END IF;
v_cnt := v_cnt - 1;
。现在我需要执行这两个查询。现在有没有办法同时使用这两个查询?
v_cnt
语句后也存在语法错误,即在LOOP。
答案 0 :(得分:0)
使用立即执行
EXECUTE IMMEDIATE 'SELECT COUNT ( * )
INTO v_cnt
FROM ' ||
p_tblname||
'WHERE '|| p_cname||' = '''||p_cvalue||'''';