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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с коннектом к Oracle через Java, NLS_LANG и т.д. 
V
    Опции темы
agR
Дата 10.4.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



hi

Установил Oracle XE. Тестовой прогой, чтобы проверить все ли настроено норм, пытаюсь законнектиться к базе и натыкаюсь на:

ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified 

Пробовал в реестре менять значение NLS_LANG - не помогло. 

Потом посмотрел настройки базы:

NLS_CALENDAR                        GREGORIAN
NLS_CHARACTERSET                AL32UTF8
NLS_COMP                               BINARY
NLS_CURRENCY                         р.
NLS_DATE_FORMAT                    DD.MM.RR
NLS_DATE_LANGUAGE             RUSSIAN
NLS_DUAL_CURRENCY             р.
NLS_ISO_CURRENCY               RUSSIA
NLS_LANGUAGE                          RUSSIAN
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NUMERIC_CHARACTERS           ,
NLS_SORT                               RUSSIAN
NLS_TERRITORY                           RUSSIA
NLS_TIME_FORMAT                         HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT            DD.MM.RR HH24:MI:SSXFF
NLS_TIMESTAMP_TZ_FORMAT          DD.MM.RR HH24:MI:SSXFF TZR
NLS_TIME_TZ_FORMAT              HH24:MI:SSXFF TZR

Стоит ли вообще менять значение NLS_LANG? Сейчас ее значение: 

RUSSIAN_RUSSIA.CL8MSWIN1251

Смотрел решение в инете.... нашел, но как-то не одно не подошло... может плохо искал.... сейчас пойду еще копаться... 

Это сообщение отредактировал(а) agR - 10.4.2007, 21:10
PM MAIL ICQ   Вверх
Llucas
Дата 11.4.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


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

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



таблицы посоздавал? пользоватея завел? что за тестовая прога? код выкладывай...
PM MAIL WWW   Вверх
agR
Дата 11.4.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Та прога обычная... из книженции.... 
Код

package TheFirst;

import java.sql.*;
import java.io.*;
import java.util.*;

public class TestDB {
    public static void main(String[] args) {
        try {
            runTest();
        }
        catch (SQLException ex) {
            while(ex!=null) {
                ex.printStackTrace();
                ex=ex.getNextException();
            }
        }
        catch(IOException ex) {
            ex.printStackTrace();
        }
    }
    
    public static void runTest() throws SQLException, IOException {
        Connection conn = getConnection();
        try {
            Statement stat = conn.createStatement();
            stat.execute(
                    "CREATE TABLE Greetings (Message CHAR(20))");
            stat.execute(
                    "INSERT INTO Greetings VALUES('Hello, World!')");
            ResultSet result = stat.executeQuery("SELECT * FROM Greetings");
            result.next();
            System.out.println(result.getString(1));
            stat.execute("DROP TABLE Greetings");
        }
        finally {
            conn.close();
        }
    }
    public static Connection getConnection() throws SQLException,IOException {
        Properties props = new Properties();
        FileInputStream in = new FileInputStream(TestDB.class.getResource("database.properties").getPath());
        props.load(in);
        in.close();
        
        String drivers = props.getProperty("jdbc.drivers");
        if(drivers!=null)
            System.setProperty("jdbc.drivers", drivers);
        String url = props.getProperty("jdbc.url");
        String username = props.getProperty("jdbc.username");
        String password = props.getProperty("jdbc.password");
        
        return DriverManager.getConnection(url,username,password);
    }
}

База стандартная - "XE".... пользователь тоже уже был - "HR"
Пароль к нему "hr", "hr".... короче говоря в Oracle сделал все так, как было написано в "Get Started" (Тока начинаю осваивать smile).

Файл database.properties:
Код

jdbc.drivers=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc.username=hr
jdbc.password=hr

Вот вроде бы все....  но коннекта нет...
PM MAIL ICQ   Вверх
foster
Дата 12.4.2007, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



XE сильно урезан!  Я тоже сталкивался с такой проблемой и решением было изменение региональных стандартов на EN!
PM MAIL ICQ   Вверх
Llucas
Дата 12.4.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


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

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



Попробуй коннект сделать вообще без database.properties, что то типа:

Код

 private void connect() {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                connection = DriverManager.getConnection("jdbc:oracle:thin:user/[email protected]:1521:nameofDB");

            } catch (Exception e) {
                System.out.println("Unable to connect : " + e);
                System.exit(-1);
            }
        }


Вообще с XE  много проблем возникает....
PM MAIL WWW   Вверх
Oberon2
Дата 13.4.2007, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробуй почитать здесь, наверное поможет:
http://www.ors.kz/?mod=html&id=277
PM MAIL   Вверх
agR
Дата 14.4.2007, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, сейчас займусь.... а то пришлось с изменением локализации системы поменять кодировку в Eclipse, после чего во всех ранее сделанных прогах вместо кириллицы разный бред пишется.
Хоть это тема уже отдельного поста, но может, если это не прокатит, кто-то знает как поступить, чтоб при нынешних настройках локализации вернуть старые проги в нормальное состояние?
PM MAIL ICQ   Вверх
agR
Дата 14.4.2007, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Все работает!!!  smile 
Новые драйвера решили все проблемы. Региональные настройки вернул, кодировку поменял обратно.
Псб  smile  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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