我从Oracle数据库中获取时间戳有问题。
该表如下创建:
create table csi(start_time timestamp);
然后,我选择了如下值:
import java.sql.*;
public class hel
{
public static void main(String args[])
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:mohit","system","rock");
PreparedStatement ps=con.prepareStatement("select * from csi");
ResultSet rs=ps.executeQuery();
while(rs.next())
{
//System.out.println(rs.getString(4));
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
但它引发以下异常:
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLPrepare(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(Unknown Source)
at hel.main(hel.java:10)
这是怎么引起的,我该如何解决?
最佳答案
这是跟踪的前几行的简单翻译(从下至上阅读注释):
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException // I have to create and throw the SQL exception!
at sun.jdbc.odbc.JdbcOdbc.standardError // Uuuh, something failed?
at sun.jdbc.odbc.JdbcOdbc.SQLPrepare // Let's start preparing it.
at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement // Ah, a prepared statement is been requested.
看起来JDBC ODBC桥驱动程序似乎不了解如何为Oracle 10g数据库创建准备好的语句。
只是不要使用该糟糕的驱动程序。您不是第一个遇到特定于数据库的问题的人。请使用真实的Oracle JDBC driver。
关于java - 在Java.sql.SQLException中获取时间戳记结果:常规错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7676753/