Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не подключается к базе Oracle 
V
    Опции темы
worsvch
Дата 9.11.2013, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Написал програмку.
Результат:

jdbc:oracle:thin:@xx.xx.xx.xx:1521:test
Исключение: oracle.jdbc.driver.OracleDriver
Не могу подключиться к БД

При этом подключение проходит, если 
делать так:
sqlplus system/system@test

Подскажите, пожалуйста, где поменять, чтобы подключиться?

Код

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

// import java.sql.*;
// import oracle.jdbc.driver.*;

public class OraLogger {
    final private static String server = "xx.xx.xx.xx";
    final private static String sid = "test";
    final private static String user = "system";
    final private static String passw = "system";
    final private static String port = "1521";
    final private static String driverName ="oracle.jdbc.driver.OracleDriver";
    private static String url;
    private static Connection connection;
    private static boolean isConnected = false;
    String startMsg = "Выберите данные, которые Вы хотите получить: ";

    private static boolean connect() {
        try {
            url = "jdbc:oracle:thin:@"+server+":"+port+":"+sid;
            System.out.println(url);
            Class.forName("oracle.jdbc.driver.OracleDriver");
            connection = DriverManager.getConnection(url,user,passw);
            if (connection.equals(null))
                isConnected = false;
            else 
                isConnected = true;
        }
        catch (ClassNotFoundException e) {
            System.out.println("Исключение: " + e.getMessage());
            isConnected = false;
        }
        catch (SQLException e) {
            System.out.println("Исключение: " + e.getMessage());
            isConnected = false;
        }
        
        return isConnected;
    }
    
    public static void main(String[] args) {
        if (connect())    System.out.println("Успешное подключение к БД");     
        else System.out.println("Не могу подключиться к БД");
    }

}

PM MAIL   Вверх
Pawl
Дата 9.11.2013, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Хмм, с виду, вроде, правильно... Может, приведете подробный стек ошибки?

Это сообщение отредактировал(а) Pawl - 9.11.2013, 22:14


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
LSD
Дата 11.11.2013, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(worsvch @  9.11.2013,  16:08 Найти цитируемый пост)
sqlplus system/system@test

Ну тогда уже неплохо было бы и tnsnames.ora показать.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
worsvch
Дата 12.11.2013, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Цитата(Pawl @ 9.11.2013,  22:08)
Хмм, с виду, вроде, правильно... Может, приведете подробный стек ошибки?

Джаву изучаю недавно, не подскажете как это сделать?

Добавлено @ 11:45
Цитата(LSD @ 11.11.2013,  15:15)
Цитата(worsvch @  9.11.2013,  16:08 Найти цитируемый пост)
sqlplus system/system@test

Ну тогда уже неплохо было бы и tnsnames.ora показать.

test =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )



Это сообщение отредактировал(а) worsvch - 12.11.2013, 11:53
PM MAIL   Вверх
LSD
Дата 12.11.2013, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код

} catch (Exception e) {
    e.printStackTrace();
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
worsvch
Дата 12.11.2013, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Цитата(LSD @ 12.11.2013,  13:00)
Код

} catch (Exception e) {
    e.printStackTrace();
}

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:141)
        at OraLogger.connect(OraLogger.java:32)
        at OraLogger.main(OraLogger.java:48)

Понял что класс не найден, хотя на машине cтоит oracle 10g, а как же тогда быть, где его взять?
PM MAIL   Вверх
Pawl
Дата 12.11.2013, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Попробуйте глянуть эту ссылку. Там была похожая проблема, решилась при помощи добавления нужных библиотек и установки ClassPath.
Вот еще ссылка на ту же тему, где предлагается похожее решение, правда, на английском.


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
worsvch
Дата 13.11.2013, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Цитата(Pawl @ 12.11.2013,  18:04)
Попробуйте глянуть эту ссылку. Там была похожая проблема, решилась при помощи добавления нужных библиотек и установки ClassPath.
Вот еще ссылка на ту же тему, где предлагается похожее решение, правда, на английском.

Добавил classpath, но теперь другая проблема:
Exception in thread "main" java.lang.NoClassDefFoundError: OraLogger
Caused by: java.lang.ClassNotFoundException: OraLogger
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: OraLogger.  Program will exit.
Хотя ведь в java-файле есть такой класс
PM MAIL   Вверх
worsvch
Дата 13.11.2013, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



С этой проблемой разобрался, теперь успешно подключается к экземпляру, но только к локальному,
Подключаюсь к удаленному, такая ошибка:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

хотя через sqlplus подключаюсь без проблем с этим пользователем/паролем@сидом

Добавлено через 5 минут и 39 секунд
Цитата(worsvch @ 13.11.2013,  17:21)
С этой проблемой разобрался, теперь успешно подключается к экземпляру, но только к локальному,
Подключаюсь к удаленному, такая ошибка:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

хотя через sqlplus подключаюсь без проблем с этим пользователем/паролем@сидом

Вообщем, спасибо и с этой проблемой я тоже разобрался. Подключение к ораклу удалось
Всем, кто помог, спасибо

Это сообщение отредактировал(а) worsvch - 13.11.2013, 17:21
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0883 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.