需要存储过程按照表列每天向表里更新一条数据

一小科技 2017-09-25 09:41:06
如图所示;
目前我有 kehhao,zhangh,zhhuye,shij 等四列的信息
我需要将zhhuye 列的信息,更新到day01,day02......day32 这些列里,
但是每天我只更新一列 比如今天是5号,就更新day05的列。
然后按照每月每天进行更新,就是每天向day01,day02......day32 这些列里更新一列zhhuye的信息。

请问存储过程应该如何写?

...全文
741 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2017-09-25
  • 打赏
  • 举报
回复

--可以采用动态SQL,你的表名为: CDR
--1.不带条件更新
declare
v_sql varchar2(200);
begin
v_sql := 'update cdr set day' || to_char(sysdate,'dd') || ' = zhhuye';
execute immediate v_sql;
commit;
end;
/
--2.带条件更新
declare
v_sql varchar2(200);
begin
v_sql := 'update cdr set day' || to_char(sysdate,'dd') || ' = zhhuye where ....';
execute immediate v_sql;
commit;
end;
/
一小科技 2017-09-25
  • 打赏
  • 举报
回复
好像不对呢,没有更新day01 后面的列呢??我要将zhhuye这一列的信息更新到后面
卖水果的net 2017-09-25
  • 打赏
  • 举报
回复

-- 使用动态 SQL 

declare 
    v_sql varchar2(100);
begin
    v_sql := 'update t set day' || to_char(sysdate,'dd') || ' = hehhao where ....';
    execute immediate v_sql;
end;

-- 如果你用程序实现,也是直接拼接。
一小科技 2017-09-25
  • 打赏
  • 举报
回复
可以了,感谢三位老师。
jdsnhan 2017-09-25
  • 打赏
  • 举报
回复
引用 2 楼 weixin_39128424 的回复:
好像不对呢,没有更新day01 后面的列呢??我要将zhhuye这一列的信息更新到后面
不是每次只更新一列吗? 即1号更新day01列,2号更新day02列。。。。。 那1楼的就没问题!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧