更新存储表采集时间为当前系统时间
create or replace procedure P_Update is
v_sql varchar2(1000);
begin
declare
--类型定义
cursor c_job
is
--获取当前用户下所有存储表
select u.TABLE_NAME from user_tables u where u.TABLE_NAME like 'Z_%';
--定义一个游标变量
c_row c_job%rowtype;
begin
open c_job;
loop
--提取一行数据到c_row
fetch c_job into c_row;
--判读是否提取到值,没取到值就退出
--取到值c_job%notfound 是false
--取不到值c_job%notfound 是true
exit when c_job%notfound;
--拼接updateSQL
v_sql := 'update '|| c_row.TABLE_NAME ||' t set t.gathertime = to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'')';
execute immediate (v_sql);
end loop;
--关闭游标
close c_job;
commit;
end;
exception
--捕获异常,并回滚操作
when others then
rollback;
end P_Update;
执行存储过程
exec P_Update;
--------------------------------漂亮的分隔线--------------------------------- 增加存储表采集时间日期(配合Oracle定时器使用) |