欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 拼接字符串的有关问题

更新时间: 2014-01-05 02:14:24 责任编辑: Author_N1

 

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
我不知道是我拼的有问题,还是根本就不支持这么拼,请解答,谢谢各位

--参考方法--
这样拼的话,执行语句的有问题吧,如果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
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:24
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7391/
本文WWW.DOC100.NET DOC100.NET版权所有。