1、错误描述
body = (null)
clientId = "DB719904-1E0C-35DC-725D-86ABCF2B6EEC"
correlationId = "CC0B5A63-071F-6A5F-8971-7D1C17762BCC"
destination = "youCon"
extendedData = (null)
faultCode = "Server.Processing"
faultDetail = (null)
faultString = "org.springframework.dao.DataIntegrityViolationException : PreparedStatementCallback; SQL [insert into table(*,*,*,*,start_time,end_time,*,*) values(?,?,?,?,to_date(?,'yyyy-MM-dd'),to_date(?,'yyyy-MM-dd'),?,?)]; ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
; nested exception is java.sql.SQLException: ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
"
headers = (Object)#1
messageId = "DB71AC14-7D0E-9826-838B-A1C123FE42F1"
rootCause = (Object)#2
cause = (Object)#3
cause = (null)
errorCode = 1841
localizedMessage = "ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
"
message = "ORA-01841: (完整) 年份值必须介于 -4713 ��� +9999 之间, 且不为 0
"
nextException = (null)
SQLState = "22008"
localizedMessage = "PreparedStatementCallback; SQL [insert into table(*,*,*,*,start_time,end_time,*,*) values(?,?,?,?,to_date(?,'yyyy-MM-dd'),to_date(?,'yyyy-MM-dd'),?,?)]; ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
; nested exception is java.sql.SQLException: ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
"
message = "PreparedStatementCallback; SQL [insert into table(*,*,*,*,start_time,end_time,*,*) values(?,?,?,?,to_date(?,'yyyy-MM-dd'),to_date(?,'yyyy-MM-dd'),?,?)]; ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
; nested exception is java.sql.SQLException: ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0
"
mostSpecificCause = (Object)#3
rootCause = (Object)#3
timestamp = 1419438203085
timeToLive = 0
2、错误原因
3、解决办法
本文记录了一次在使用 Oracle 数据库时遇到的关于年份输入异常的问题,具体表现为尝试将日期字段插入数据库表时触发了 ORA-01841 错误,指出年份值必须介于-4713和+9999之间。通过对 SQL 语句和异常堆栈的分析,发现导致该问题的原因在于 to_date 函数中使用的日期字符串包含了一个超出范围的年份值。
3442

被折叠的 条评论
为什么被折叠?



