关于Java调用SQLServer存储过程的一点疑虑
Java程序调用SQLServer的存储过程,从日志可以看到,存储过程执行的过程中遇到了异常,但是通过存储过程执行的日志看,它还是完整的执行完了,并没有因为中间抛出的异常而中断。
再次在数据库连接工具中手动调用存储过程,打印中间要执行的SQL时才找到中间异常的SQL,而且存储过程也在执行异常SQL的点上中断了。
2013-08-15 01:00:00,015 INFO - <======================采集程序启动: 1> [com.lhlm.service.CollectService]2013-08-15 01:08:09,609 ERROR - <采集程序异常中断:CallableStatementCallback; SQL [{call pro_up2tmp(?)}]; 不允许从数据类型 datetime 到 int 的隐式转换。请使用 CONVERT 函数来运行此查询。; nested exception is java.sql.SQLException: 不允许从数据类型 datetime 到 int 的隐式转换。请使用 CONVERT 函数来运行此查询。> [com.lhlm.service.CollectService]org.springframework.dao.DataIntegrityViolationException: CallableStatementCallback; SQL [{call pro_up2tmp(?)}]; 不允许从数据类型 datetime 到 int 的隐式转换。请使用 CONVERT 函数来运行此查询。; nested exception is java.sql.SQLException: 不允许从数据类型 datetime 到 int 的隐式转换。请使用 CONVERT 函数来运行此查询。 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)