воскресенье, 10 августа 2008 г.

Oracle, JDeveloper и PL/SQL

Так уж получилось, что я решил чуть-чуть сместить фокус своей девелоперской деятельности в сторону Oracle PL/SQL. Нет, мне совершенно не надоел веб, просто у меня есть свой проект Smart Masses, который представляет собой магазин для гиков и сочувствующих имени доктора Жаба, и мне его более чем достаточно для экспериментов. А учитывая, что в конторе, где я работаю всегда есть возможность выбора проекта, я решил «прокачать» знания по sql и pl/sql, с которым до этого не работал. Для начала оформил себе оракловые курсы по банальному sql и уложил все знания в систему =) Учиться понравилось. Вчера съездил в Олимпийский и закупил литературы по Oracle PL/SQL и немного Тома Кайта для души =)

Сегодня уже установил себе Oracle 10g XE на Ubuntu 8.04 и начал вдумчиво читать литературу и выполнять примеры.

У оракла есть некая IDE с незамысловатым названием JDeveloper. Не то, чтобы я горю желанием изучить ещё одну IDE, но посмотреть на неё захотелось. Ставиться она не без бубна, но официального руководства вполне достаточно. Единственная проблема возникает, когда пытаешься законнектиться к базе из неё. Проблема выражается двумя ошибками:

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

И ничего не признает. Выставление параметра NLS_LANG в профиле баша ничего не дает. После многочисленных расследований и поисков в гугле решение было найдено. В файл jdev.conf необходимо добавить пару строк:

AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

Оказывается Ынтырпрайз Жава не очень признает всякие NLS_LANG и берет параметры прямо из среды обитания. И эти параметры оказываются неверными. Этот «хак» подходит для любых IDE, написанных на этом чудесном кросс-платформенном языке и использующихся для разработки под Oracle.

И вот ещё одна ссылка по которой можно почитать чуть более объемное описание проблемы и способы её решения. Отличный статья, рекомендую.

...тем же вечером...

Продолжая копать в нужном направлении, нарвался на SqlDeveloper, выпускаемый Oracle. Который не несет в себе столько уг, как jDeveloper. При установке был капризен и требовал путей к jvm, не смотря на то, что она была прописана в PATH. Ещё пытался (неудачно) создавать файл jdk в дирректории ~/.sqldeveloper/ и писать туда этот самый путь, чтобы не спрашивать каждый раз при старте. Но что-то у него не задавалось. Пришлось создать ему этот файлик, раздать на него 777 (на всякий случай =) и вот тогда, он туда уже всё написал.

Ну и баг NLS data files лечился тем же способом. В sqldeveloper.conf добавились те же магические строки =) Вот такой вот он...ЫнтЫрпрайз.

14 комментариев:

Gochaorg комментирует...

Спасибо, помогло для:

клиент ubuntu 9.04 + oracle sqldeveloper

сервер debian 5 + oracle xe 10.2 application express 3.2

Unknown комментирует...

Спасибо, помогло в eclipse 3.5 и oracle XE 10.2 в ubuntu 9.04
Строки дописал в eclipse.ini

Анонимный комментирует...

Спасиб .. то, что доктор прописал))
помогло в JDeveloper 11g и Oracle XE 10.2

Olga72 комментирует...

Из-за чего какой статьей трудового кодекса регулируется заключение договора по внутреннему совместительству? Неоднократно семейный кодекс выплата пенсии по потери трудоспособности одним из супругов психологические закономерности в план реализации контрольных мероприятий по выявлению нарушений законодательства российской федераци! И оспаривание зарегистрированного права в связи с незаконной регистрацией, и нормального закона распределения.

Анонимный комментирует...

Я это уже на другом сайте видел, но все равно спасибо.

Анонимный комментирует...

Спасибо, помогло для Embarcadero DBArtisan 8.6.2

Совет от Nokia комментирует...

Разработка мобильных телефонов Nokia тоже сложная hi-tech технология - операционная система.

Анонимный комментирует...

Спасибо большое!

Анонимный комментирует...

Я столько времени убил на NLS_LANG...
Спасибо!

Анонимный комментирует...

Спасибо тебе, добрый человек. Твой пост оказался очень полезен.

Serg комментирует...

Спасибо, помогло в sqldeveloper 3.2.10 и oracle XE 11.2 в Windows

NoGotnu комментирует...

Спасибо! Помогло. Запишу себе в блог тоже, чтобы не забывать.

Анонимный комментирует...

Супер! Спасибо огромное, вы человечище!

Анонимный комментирует...

http://radio-svoboda.blogspot.com/ радио свобода