我现在有个需求
一张表当中含有多个字段,并且有规律
例如: 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
我不知道是我拼的有问题,还是根本就不支持这么拼,请解答,谢谢各位
oraclesql
一张表当中含有多个字段,并且有规律
例如: 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
我不知道是我拼的有问题,还是根本就不支持这么拼,请解答,谢谢各位
oraclesql
解决方案 »
- oracle plsql中job定时
- derby数据库不能更新数据ERROR: java.sql.BatchUpdateException: 以只读方式打开容器。
- 下的句子,怎么提示有非法字符呢?
- ODBC连接oracle的问题
- oracle 9i 数据链接 sql server 报ora-28545 错误,是否跟NTFS有关
- 求一个SQL语句
- Oracle 9i AS Portal里怎么创建一个圆饼图呢?在线等待~!!!
- 如何设置ORACLE字段命名的长度限制
- oracle 11g数据库中sqlplus一打开就没了,求大师解答
- oracle存储过程同步表数据,求帮助
- oracle报错:没有无法解析指定的连接标识符
- 求助,sql语句使用函数导致查询时间很长
不行,还是missing equal sign 这个错误
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;
/
days = day||num或days= concat('day',#num#)
update table set days= 5 where id=1