将旧日期更新为新日期时,
SQL错误:ORA-00932:数据类型不一致:预期的DATE得到了CHAR00932。00000-“数据类型不一致:预期的%s得到了%s”
UPDATE test
SET date1 =
CASE date1
WHEN '22-OCT-19' THEN '23-OCT-19'
WHEN '21-OCT-19' THEN '22-OCT-19'
WHEN '20-OCT-19' THEN '21-OCT-19'
WHEN '17-OCT-19' THEN '18-OCT-19'
WHEN '06-OCT-19' THEN '07-OCT-19'
WHEN '05-OCT-19' THEN '06-OCT-19'
WHEN '04-OCT-19' THEN '05-OCT-19'
WHEN '03-OCT-19' THEN '04-OCT-19'
WHEN '02-OCT-19' THEN '03-OCT-19'
WHEN '29-SEP-19' THEN '30-SEP-19'
WHEN '27-SEP-19' THEN '28-SEP-19'
END;
如错误消息所暗示,您混合使用日期和varchars。
您当前的查询会将CASE中未包括的所有其他日期更新为NULL。您最好将WHERE条件与日期文字一起使用,然后简单地添加1天:
UPDATE test
SET date1 = date1 + 1
WHERE DATE1 IN
( DATE '2019-10-22'
,DATE '2019-10-21'
,DATE '2019-10-20'
, etc.
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句