Получение метки времени приводит к java.sql.SQLException: общая ошибка - PullRequest
0 голосов
/ 06 октября 2011

У меня проблема с получением метки времени из базы данных 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)

Как это вызвано и как я могу это решить?

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Вот простой перевод первых нескольких строк трассировки (читайте комментарии снизу вверх):

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 .

0 голосов
/ 06 октября 2011

Пожалуйста, оставьте точную ошибку.Кроме того, почему вы пытаетесь получить строку из чего-то, что содержит метку времени?Найдите метод getTimestamp объекта ResultSet для ваших нужд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...