簡體   English   中英

獲取時間戳結果為java.sql.SQLException:一般錯誤

[英]Getting Timestamp results in java.sql.SQLException: General error

從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數據庫創建預准備語句。

只是不要使用那個糟糕的司機。 你不是第一個遇到DB特定問題的人。 請改用真正的 Oracle JDBC驅動程序

請發布確切的錯誤。 另外,為什么要嘗試從包含時間戳的內容中檢索字符串? 查看ResultSet對象的getTimestamp方法以滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM