oracle存储过程停止
‘壹’ 跳出oracle存储过程的方法
exit跳出循环,你是说要continue的那,这个似乎没有,可以用if else 来解决。 beginfor i in 1..10 loop if i3 then dbms_output.put_line(i); if i=5 then exit; end if ; end if;end loop;end;
‘贰’ Oracle 创建存储过程,要求查询起始时间到终止时间内一张表的数据
create or replace procere pr_Query_ByDate(
p_starttime in varchar2, --'yyyy.mm.dd hh24:mi:ss'
p_endtime in varchar2
)
is
v_sql_str varchar2(4000);
begin
v_sql_str:='create table Query_ByDate as select sum(allmoney) from orders
where ordertime>=to_date('''||p_starttime||''',''yyyy.mm.dd hh24:mi:ss'')
and ordertime<=to_date('''||p_endtime||''',''yyyy.mm.dd hh24:mi:ss'')
';
execute immediate v_sql_str;
commit;
end pr_Query_ByDate;
/
begin
pr_Query_ByDate('2012.05.23 00:00:00','2012.05.23 23:59:59');
end;
/
-- select * from Query_ByDate;
你看得懂的话!
‘叁’ oralce 怎么退出存储过程
CREATE OR REPLACE Procere proc_test Authid current_user is
a int;
b int;
c varchar(10);
begin
a := 1;
b := 2;
IF a<b then
c := '02';
dbms_output.put_line(c);
RETURN;
END IF;
dbms_output.put_line('3333333333');
End proc_test;
我用这段执行了下,输出的是c的值'02',‘3333333333’这个没有输出,说明return是正常退出的。
你再检查下你的程序,我估计你是没有进到If里面去
‘肆’ oracle存储过程一直处于正在执行状态。
查询锁的SQL是什么类型。是其他程序正在运行没有提交导致还是死锁。
如果是死锁结束进程即可。如果是其他程序的锁,等待提交即可。
‘伍’ oracle 如何终止存储过程的运行!
select * from v$access a where object like '存储过程名%' --存储过程名为大写字母
select * from v$session where sid=74 --74为上一个查询得到的SID值,可能是多个,这里找到他们对应的serial#值
alter system kill session '74,118' --参数为'sid,serial#',用于停止这个回话,同时也终止了存储过程
‘陆’ oracle中 kill 正在执行的存储过程
存储过程卡死了,一般是好几个人同时编译导致的,同时往一个表插数据等操作就会锁死此表。
select a.SID,a.SERIAL#,a.USERNAME
from sys.v_$session a,sys.dba_objects b,v$locked_object c
where b.object_id = c.OBJECT_ID
and a.SID = c.SESSION_ID
and b.object_name = '表名';
用上面 的语句找到存储过程中主要用插入表的sid 和SERIAL#
然后用下面的语句杀掉。
alter system kill session 'sid ,SERIAL#';
如果杀不掉的话,等所有人释放,或者从启服务。
‘柒’ 手动停止正在运行的ORACLE存储过程作业
taskctl停止自定义作业类型需要配置停止插件,把楼上的整合进插件应该就可以实现的了。
‘捌’ Oracle存储过程一直处于执行状态
无效状态有两种可能,一种是你的存储过程编辑没有成功,创建了,但里面有语法错误。 还有一种是存储过程使用的表有结构上的改变,需要重新编译一下。 你重新编译一下,如果不成功,就是有语法问题,你需要修改存储过程。
‘玖’ Oracle存储过程长时间不跳出过程
对就是在数据库里,你可以用pl/sql连接oracle,看到里面有个PROCEDURE,可以在这里找到你写的存储过程了