Христос воскресе!!
В этоn замечательный день я хочу уменьшить ваши мучения при подключении Oracle DB к NetBeans. Предположу, что вы уже установили себе Oracle (можно XE, как у меня). И теперь вам не терпится поработать с базами данных и написать программу, которая её использует. Может быть вы даже поставили себе JDeveloper, но лично меня он пока не впечатлил. Точнее нет. Он очень крут. Но система с ним тормозит- возьми да вешайся и это на i5 проце. NetBeans тоже можно использовать на СУБД. Пусть он не настолько кликабелен как Jdeveloper , но ничего, подучите PL/SQL. Ну что, вытаскиваем руки из задницы, ставим чуть ниже шеи и кладём на клавиатуру.
В этоn замечательный день я хочу уменьшить ваши мучения при подключении Oracle DB к NetBeans. Предположу, что вы уже установили себе Oracle (можно XE, как у меня). И теперь вам не терпится поработать с базами данных и написать программу, которая её использует. Может быть вы даже поставили себе JDeveloper, но лично меня он пока не впечатлил. Точнее нет. Он очень крут. Но система с ним тормозит- возьми да вешайся и это на i5 проце. NetBeans тоже можно использовать на СУБД. Пусть он не настолько кликабелен как Jdeveloper , но ничего, подучите PL/SQL. Ну что, вытаскиваем руки из задницы, ставим чуть ниже шеи и кладём на клавиатуру.
Из
первоначальных
требований:
Установленная система- >=1шт.
Установленный OracleDB(XE) = 1шт.
Установленный NetBeans >= 1шт.
Установленный SunJDK = 1шт.
Мозг - 1 шт. Желательно 2 полушария.
Руки - можно 1 но на правильном месте ,и хоть как-то связанную с мозгом.
Установленная система- >=1шт.
Установленный OracleDB(XE) = 1шт.
Установленный NetBeans >= 1шт.
Установленный SunJDK = 1шт.
Мозг - 1 шт. Желательно 2 полушария.
Руки - можно 1 но на правильном месте ,и хоть как-то связанную с мозгом.
Ну
что,
в
атаку.
Я
очень
ленив,
и
описывать
то,
что
описано
мне
не
хочется.
Как
в
NetBeans
подключить
BD
описано здесь .Если
кратко,
то
мы
вызываем
окно
"службы"(Ctrl+F5).
В
нём кликаем правой
клавишей
по
"Базы
данных"
и
выбираем
"новое
соединение".
Выбираем
драйвер
Oracle
Thin
и
Нет
Бианс
говорит,
что
драйвера
нет
и
любезно
перенаправляет
нас
на страницу
его
скачивания .
Загрузив
драйвер ojdbc6.jar ,мы
выбираем
его
кнопочкой
«добавить»
в
диалоговом
окне
NetBeans.
Потом
пред
нами
предстоит
ввод
Адреса
вашей
BD
(скорее
всего
localhost)
Но
нет,
если
установленная
oracle
на
другой
машине.
Так
же
имя
пользователя
и
пароль.
Так
как
аккаунт
hr/hr
с
недавних
пор
по
умолчанию
заблокирован,
мы
введём
system/{пароль,
который
вы
указали
при
установке
oracle}
.
Нажимаем
"проверить
соединение"
и
тут
нас
«Фейсом
об
тейбл»!ORA-12705:
Cannot
access
NLS
data
files
or
invalid
environment
specified
Вот ведь незадачка-то: Вариантов решения этой проблемы несколько. Гугл и форумчани вовсю советуют:
1) Взять старый драйвер для oracle9( некошерно )
2) Установить глобальную переменную NLS_LANG в en_US.utf8, в винде тоже самое, только в реестре.
Вот ведь незадачка-то: Вариантов решения этой проблемы несколько. Гугл и форумчани вовсю советуют:
1) Взять старый драйвер для oracle9( некошерно )
2) Установить глобальную переменную NLS_LANG в en_US.utf8, в винде тоже самое, только в реестре.
1 вариант -я честно не пробовал. Второй - не помог, видимо он для 10 оракла или то-то типа того. Поэтому есть ещё 3-й и четвёртый варианты. Для того, чтоб решить проблему, давайте поймём, от чего она. Если вы устанавливали и Oracle ,и NetBeans на 1 машину, то ошибки у вас возможно и нет. Потому, что она насколько я понял из-за несоответствия кодировок сервера и клиента, Сервер БД устанавливает внутреннюю кодировку скриптиком.
{oracle home}/product/{version}/xe/bin/nls_lang.sh . Этот скрипт анализирует кодировку вашей системы и выдаёт подходящую для БД на экран. Могу предположить, что этот скрипт выполняется при запуске OracleXE и результат его работы присваивается куда-то. Но это предположения. На стороне клиента, на сколько я понимаю, по крайней мере драйвер ojdbc6 выполняет то же самое ,только с кодировкой системы клиента. И если кодировки разные и несовместимые, то вываливается ошибка NLS . Как же быть? Можно на стороне клиента в системе поставить кодировку, аналогичную серверу, давайте так и сделаем.
export LANG=us_US.utf8. Запускаем NetBeans в этой же консольке и мы успешно подключаемся к базе. Но способ не самый удобный, поэтому существует ещё 1.
Мы отредактируем конфигурационный файлик NetBeans.{NET BEANS HOME}/etc/netbeans.conf . И в переменную netbeans_default_options добавим ещё 1 параметр.
-J-Duser.region=US . После этого снова успешно подключаемся к базе. В этом посте мне хотелось ещё рассказать 2 слова о подключении Oracle к java, но статья затянулась, и об этом я продолжу после.
спасибо, -J-Duser.region=US )
ОтветитьУдалить