(完整)年份值必须介于 -4713 和+9999之间,且不为0

今天在查询一个报表的时候 ,报以下错误

(完整)年份值必须介于 -4713 和+9999之间,且不为0

oracle标准对于时间支持的有效范围是 -4713/1/1 至 9999/12/31,若时间格式超出此范围,则会报错。 

经查 

是由于代码中写了

nvl(fnd_conc_date.string_to_date(parameter),
nvl(validity_period,
SYSDATE) + 1)

而 validity_period 有人填写了最大值为9999/12/31,

正确的写法应该是

nvl(fnd_conc_date.string_to_date(parameter),
nvl(validity_period,
SYSDATE+1) )

原文地址:https://www.cnblogs.com/huanghongbo/p/5394481.html