declare
maxrecords constant int:=5000;
i int :=1;
s varchar2 :='a';
Begin
for i in 1..maxrecords loop
s:=s||','||to_char(i);
delete from emp where empno in '('||s||')';
end loop;
dbms_output.put_line(' 成功录入删除! ');
commit;
end;
s字符串拼接不对啊。
应该怎么做才对啊。
------解决方案--------------------------------------------------------
delete from emp where empno in (s);
delete from emp where empno = s;
或者你可以尝试一下直接用下面的语句,看是否可行.
delete from emp where empno between 's1' and 's50';
------解决方案--------------------------------------------------------
当然是用execute immediate了
另外commit应该在put_line前