今日数据库服务器时间不知道为何跳到2002年,导致数据表中某个字段大量出错,软件无法正常使用。由于数据量太大,不可能一条一条的去更新,需要批量更新数据,且时间只更新该字段的一部分。要求只更新时间,其他不变,以下是更新语句,仅供大家参考:
1.由于整条字段较长,且又不完全更新,所以首先要做的就是把该字段拼凑完整,用到的函数substr和||连接符号。
select (substr(zybh,1,9)||sdrq||'5'||substr(zybh,19,4)),a.* from ksshyxxb a where zybh like '_________20020106%'
2.将拼凑完整的字段放到update语句中进行更新。
update ksshyxxb set zybh=substr(zybh,1,9)||sdrq||'6'||substr(zybh,19,4) where zybh like '_________20020106%'
注:Oracle中_这个代表一个字符,所以在like后面会接上一长串的下划线。
阅读(1781) | 评论(0) | 转发(0) |