28 мая 2008 г.

SQL Developer. А вы знаете, что...

А вы знаете, что SQLDeveloper поддерживает переменные подстановки? Если когда-нибудь пытались выполнить запрос, в котором присутсвует амперсанд, то наверняка знаете.
Что интересно, они ведут себя почти так же как и в SQL*Plus. Я заметил лишь различие в поведении закомментированных переменных. (Кстати сказать, отключается запрос на подстановку значения тоже с помощью команды SET DEFINE OFF)

И еще одна полезность, которая унаследована от SQL*Plus: login.sql
В плюсе это файл, который запускается каждый раз когда происходит соединение с базой. (Это не всегда было так, но не суть..)
Точно так же в SQLDeveloper'е в настройках можно задать файл, который будет запускаться каждый раз при соединении с базой. Смотреть Tools -> Preferences -> Database (Run connection startup script on each new database connection).

Сюда, например, можно запихнуть пресловутый alter session set time_zone = '+nn:00' для избежания ошибки ORA-01882: timezone region not found при выборке через db link.

Маленький трюк: Включить чекбокс и задать файл на самом деле у меня оказалось мало. Чтобы эта функция "активизировалась" еще нужно создать новый Connection. Потом его можно удалить.

2 комментария:

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

Обидно, что и тут без костыля не получается. Но радует то, что костыль надо не ставить на постоянку, а двинуть им хорошенько :)
Эх, надо еще раз попробовать переползти на SQL Developer, а то эти мелкие костыли не сравнятся, к примеру с этими в PL\SQL Developer.

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

Я отношусь к этому относительно спокойно. Конечно, не очень приятно, когда приходится "доставать бубен". Но с другой стороны правильная организация работы позволяет избежать критических ситуаций. Я, например, использую ГУИ в основном для визуализазии планов, отладки запросов, просмотра каких-то отчетов. Любые DDL скрипты пускаю в плюсе и только через предварительное сохранение файла. Т.о. по крайней мере остается история запуска скриптов. То же касается ответсвенных DML.