首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oracle 拼接字符串的有关问题

2013-10-17 
Oracle 拼接字符串的问题 在线等我现在有个需求一张表当中含有多个字段,并且有规律例如: table中有day1,da

Oracle 拼接字符串的问题 在线等
我现在有个需求
一张表当中含有多个字段,并且有规律
例如: table中有day1,day2,day3,day4,day5 ... day 31 字段
我现在要对这个表的数据进行修改 在dto中建立day1 ... day31 太过麻烦
所以我只定义了一个属性num 代表day后面的数字,想要在sql中动态拼接
我是这么拼的:
update table set concat('day',#num#) = 5 where id=1
但是出现错误 提示指向concat函数,提示missing equal sign
我不知道是我拼的有问题,还是根本就不支持这么拼,请解答,谢谢各位
oracle sql
[解决办法]
这样拼的话,执行语句的有问题吧,如果num=1,执行语句是 update table set 'day1' = 5 where id=1 。可以用这个替换一下执行语句 execute immediate ' update table set day'
[解决办法]
num
[解决办法]
' = 5 where id=1' ;
[解决办法]
begin
execute immediate 'update table set day'
[解决办法]
num
[解决办法]
' = 5 where id=1' ;
end;
/
即可

规范些的话:
declare
  v_sql  varchar2(200);
begin
  v_sql := 'update table_name set day'
[解决办法]
num
[解决办法]
' = 5 where id=1'
  execute immediate v_sql;
  --commit;
end;
/


[解决办法]
声明一个varchar2变量days 
days = day
[解决办法]
num或days= concat('day',#num#) 
update table set  days= 5 where id=1

热点排行