oracle存储过程时间
㈠ oracle存储过程:目的保存当前时间7天以前的数据,其他时间段的数据自动删除。
我觉得你这个不是7天执行一次, 应该是每天执行,然后每次执行删除当前日期7天前的数据,假如你这个表有一个数据日期的字段。
create or procere deletehisdata
is
v_date date;
bengin
v_date := to_date(sysdate,'yyyymmdd');
delete from tablename a where v_date - to_date(a.sjrq,'yyyymmdd')>7;
commit;
end
㈡ oracle定时执行存储过程的时间区间问题
目测, 你的存储过程, 需要在 下面这些时刻运行:
1:00
3:00
5:00
7:00
16:00
18:00
20:00
22:00
CREATE OR REPLACE PROCEDURE other_proc
AS
vHour VARCHAR(2);
BEGIN
vHour := TO_CHAR(SYSDATE, 'HH24');
IF vHour = '01' OR vHour = '03' OR vHour = '05' OR vHour = '07'
OR vHour = '16' OR vHour = '18' OR vHour = '20' OR vHour = '22' THEN
-- 调用你那个存储过程.
-- 由于没有代码, 暂时写 NULL;
NULL;
END IF;
END;
/
variable jobno number;
begin
dbms_job.submit(:jobno, 'other_proc;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')');
commit;
end;
/
㈢ oracle 存储过程 输出一个日期 如果周六 print1 否则 print0
create or replace PROCEDURE p_week
(v_date in varchar2)
as
v_int varchar2(1);
begin
select to_char(to_date(v_date,'yyyy-mm-dd'),'d') into v_int from al;
if v_int=7
then
dbms_output.put_line(1);
else
dbms_output.put_line(0);
end if;
end;
输入日期格式必须是2013-05-09 这样格式的
㈣ oracle中如何得到执行存储过程的开始和结束时间
需要在存储过程中定义的时候把开始执行时间和结束时间打印出来。
举例如下:
创建存储过程:
sql">createorreplaceprocerep_test
as
v_begintimevarchar2(20);
v_endtimevarchar2(20);
v_strvarchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
select'badkano'intov_strfromal;
v_endtime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
dbms_output.put_line('开始时间为:'||v_begintime);
dbms_output.put_line('结束时间为:'||v_endtime);
end;
end;
执行存储过程:
begin
p_test;
end;
执行结果:
说明:由于样例存储过程过于简单,但在进行过多数据处理的时候,看到的结果会比较明显。
㈤ 各位高手请问oracle 存储过程里时间为"23-JUN-11"如何转换为标准日期格式"YYYY-MM-DD" 谢谢了
跟你的系统时间格式也有关系,不知道你要在哪里改这个格式,如果这个是日期格式的话,可以这样改成字符串格式:to_char(日期字段, 'yyyy-mm-dd'),如果需要输出日期格式就再加一层:to_date(to_char(日期字段, 'yyyy-mm-dd'), 'yyyy-mm-dd')
㈥ oracle存储过程超时时间设置
在sqlnet.ora中设置参数如需要设置客户端空闲10分钟即被中断,则在sqlnet.ora的末尾添加SQLNET.EXPIRE_TIME=10注:sqlnet.ora文件的路径在$ORACLE_HOME/network/admin下。
㈦ oracle中怎么用存储过程将的存储过程的执行时间返回出去。
可以在日志表中加一个运行时间字段,可以在程序运行之前设定一定变量值为sysdate,程序运行结尾出一个变量2 sysdate , 两个变量相减就可以得到过程运行时间.
begin
v_date1:= sysdate;
...
v_date2:=sysdate;
v_run_num=v_date2-v_dat1;
insert into 日志表(run_num_time) values(v_run_num);
commit;