【发布时间】:2018-11-29 17:02:18
【问题描述】:
我想用不同的随机月份和日期更新表格中的所有生日。
下面的 sql 工作正常
update PERSON set bithday = TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_CHAR(DATE '1940-01-01','J') ,TO_CHAR(DATE '1940-12-31','J'))),'J') ;
但年份仍停留在 1940 年。 为了保持最初的生日年份,我像这样修改了 sql
update PERSON set bithday = TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_CHAR(DATE ''||extract(year from bithday)||'-01-01','J') ,TO_CHAR(DATE ''||extract(year from bithday)||'-12-31','J'))),'J');
但这给了我一个错误
01841. 00000 - "(full) year must be between -4713 and +9999, and not be 0"
*Cause: Illegal year entered
有什么想法吗?
【问题讨论】:
-
为什么需要一个存储过程来进行如此简单的更新?