目前我有 kehhao,zhangh,zhhuye,shij 等四列的信息
我需要将zhhuye 列的信息,更新到day01,day02......day32 这些列里,
但是每天我只更新一列 比如今天是5号,就更新day05的列。
然后按照每月每天进行更新,就是每天向day01,day02......day32 这些列里更新一列zhhuye的信息。
请问存储过程应该如何写?
5 个解决方案
#1
-- 使用动态 SQL
declare
v_sql varchar2(100);
begin
v_sql := 'update t set day' || to_char(sysdate,'dd') || ' = hehhao where ....';
execute immediate v_sql;
end;
-- 如果你用程序实现,也是直接拼接。
#2
好像不对呢,没有更新day01 后面的列呢??我要将zhhuye这一列的信息更新到后面
#3
--可以采用动态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;
/
#4
不是每次只更新一列吗?
即1号更新day01列,2号更新day02列。。。。。
那1楼的就没问题!
#5
可以了,感谢三位老师。
#1
-- 使用动态 SQL
declare
v_sql varchar2(100);
begin
v_sql := 'update t set day' || to_char(sysdate,'dd') || ' = hehhao where ....';
execute immediate v_sql;
end;
-- 如果你用程序实现,也是直接拼接。
#2
好像不对呢,没有更新day01 后面的列呢??我要将zhhuye这一列的信息更新到后面
#3
--可以采用动态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;
/
#4
不是每次只更新一列吗?
即1号更新day01列,2号更新day02列。。。。。
那1楼的就没问题!
#5
可以了,感谢三位老师。