oracle存储过程删除数据
㈠ 求一个oracle的批量删除的存储过程
sql">declarecursorc1isselect*fromtable_A;
li_linenonumber(8);
begin
li_lineno:=1;
fortinc1loop
deletefromtable_Awherexbie00='1';
ifmod(li_lineno,1000)=0then
commit;
endif;
li_lineno:=li_lineno+1;
endloop;
end;
/
㈡ oracle 通过存储过程 删除一张表的n天前的数据。
delete from a_b_c_123 where "日期"=(
select “日期" from a_b_c_123
where "日期=N天")
以上语句能看懂吧?最后一句可以换变量,然后整个写作存储过程
㈢ Oracle存储过程中如何获得DELETE语句执行后删除的记录数
存储过程中可以通过在delete语句执行的前后分别select count(*) from tablename 查询出当前表的记录条数,然后相互相减就可以得到delete语句删除的条数。
createorreplaceprocerep_procereas
numinteger;
beforenuminteger;
afternuminteger;
begin
selectcount(*)intobeforenumfromtb1;
EXECUTEIMMEDIATE'deletefromtb1where.';
selectcount(*)intoafternumfromtb1;
num:=beforenum-afternum;
end;
㈣ oracle删除多张表数据, 存储过程
报什么错,能把错误贴一下吗
另外注意delete语句和select还是有区别的,delete时只能删除满足条件的行,所以在delete后面不用指定列字段,即
delete D2_HC t where fkpkid in (d2_cpkid) and hctype='2';
㈤ Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功
删除不存在的数据并不会促发Oracle的异常
对于delete from dept where deptno=p_deptno;
判断是否有数据被删除可以用sql%rowcount,sql%notfound 来判断
if sql%rowcount = 0 then
dbms_output.put_line('部门删除失败...');
end if;
或者
if sql%notfound then
dbms_output.put_line('部门删除失败...');
end if;
㈥ ORACLE创建一个存储过程(删除指定数据)
sql_dl='delete from report_data t where t.address in ('广东省')'
这行双重单引号,你不觉得有问题吗?需要转义一下。
还有个问题,你的这条sql明明可以不用in的,是还有别的省份没写进来吗?如果没有别的省份,建议使用=而不要用in,因为in与=的性能差距可是很大的,数据量越大,性能差距越明显。