使用Resultset.getDate()
从数据库中提取日期时,我收到以下异常:
java.lang.NumberFormatException: For input string: "Name of Month".
我可以确认在尝试从Oracle date数据类型的列中获取数据时会抛出异常。
我不能在这里粘贴实际代码,因为它很长。但示例代码如下所示
pstmnt = connection.prepareStatement(selectQuery);
rs = pstmnt.executeQuery();
while (rs.next()) {
rs.getDate(column.getColName());
}
请帮帮忙?
根据Sanjay的要求,请找到下面的堆栈跟踪
java.lang.NumberFormatException: For input string: "MAY"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.parseInt(Integer.java:531)
at java.sql.Date.valueOf(Date.java:200)
at oracle.jdbc.driver.OracleStatement.getDateValue(OracleStatement.java:4610)
at oracle.jdbc.driver.OracleResultSetImpl.getDate(OracleResultSetImpl.java:625)
at oracle.jdbc.driver.OracleResultSet.getDate(OracleResultSet.java:1601)
at quotecopy.DbConnection.getTableRows(DbConnection.java:126)
at quotecopy.QuoteCopier.main(QuoteCopier.java:66)
java.lang.NumberFormatException: For input string: "MAY"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.parseInt(Integer.java:531)
at java.sql.Date.valueOf(Date.java:200)
at oracle.jdbc.driver.OracleStatement.getDateValue(OracleStatement.java:4610)
at oracle.jdbc.driver.OracleResultSetImpl.getDate(OracleResultSetImpl.java:625)
at oracle.jdbc.driver.OracleResultSet.getDate(OracleResultSet.java:1601)
at quotecopy.DbConnection.getTableRows(DbConnection.java:127)
at quotecopy.QuoteCopier.main(QuoteCopier.java:66)
答案 0 :(得分:4)
您是否可以查看自己的查询,我相信您在“日期”列中使用的是to_char
,导致getDate
无法将其识别为有效Date
答案 1 :(得分:2)
答案 2 :(得分:0)
rs.getString()或rs.getDate()根据您的数据库表列名进行检索。您能否验证包含日期的列是否被命名为“月份名称”?
答案 3 :(得分:0)
您可能想要查看的一些内容:
getObject()
而不是getDate()
时会发生什么?你能告诉我们输出吗?答案 4 :(得分:0)
根据提供的信息,值得检查代码库中的以下方案:
getTimeStamp
)来读取列中的数据。