更新所有指定表时间字段及增加一天存储过程

 

更新存储表采集时间为当前系统时间

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定时器使用)
create or replace procedure P_AddDate 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 = t.gathertime+1 ';
                 --执行update语句
                 execute immediate (v_sql);
           end loop;
         --关闭游标
        close c_job;
        commit;
  end;
exception
  --捕获异常并回滚操作
  when others then
    rollback;
end P_AddDate;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zuozewei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值