"Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему"
Jun 172016
 

Как-то в прошлом году еще читал отличную книжку Тома ДеМарко – Deadline. Там у главного героя была записная книжка, в которую он в конце каждой главы записывал свои выводы и мысли, которые, можно сказать, являются аксиомами в проджект менеджменте. ИМХО, лучше прочитать книжку целиком, ну а тут можно просто освежить память

Deadlines

Continue reading »

Jul 102014
 

Полдня не могли понять, почему не работает кусок кода на стыке двух проектов?! Все переменные через dbms_output выглядят красиво, но ничего не работает…

Сомнения закрались, когда в запросе вместо параметров подставили значения… Все заработало! Все оказалось просто – Oracle хранит дату всегда со временем, даже после trunc там останется 00:00:00. Выяснилось, что приложение присылало дату +1 час (кто-то поясное время использовал).

Сделал для себя вывод – если в тестовом выводе участвует дата, то конвертация к строке только явная, с указанием времени в формате.

DBMS_OUTPUT.PUT_LINE(to_char(DT,'DD-MON-YYYY hh24:mi:ss'));
 Posted by at 8:32 pm
Mar 042014
 

Обновил тут свою программку для поиска GPS треков. Версия 2.0, можно сказать. Полностью переписал UI. Добавил возможность поиска не относительно точки, а относительно всех точек выбранного файла (трека или файла точек). Буду рад любым предложениям.

Далее немного подробностей.

Continue reading »

Aug 292013
 

Запрос работает медленно? Ну что ж, его надо оптимизировать, и первое, на что мы будем смотреть – план его выполнения.
В этом посте расскажу как посмотреть план, если недоступны всякие GUI тулзы вроде TOAD и SQLNavigator.
Тут рассмотрим два способа:

  1. Скрипты utlxpls.sql | utlxplp.sql
  2. Пакет DBMS_XPLAN

Continue reading »

 Posted by at 1:54 pm
May 242013
 

Вроде и нужно часто, а команда забывается:

alter session set current_schema=SCHEMA_NAME;

Если часто приходится работать под другим ползователем в БД, то включить эту команду в скрипт будет хорошей идеей.

Кстати, если вдруг придется использовать эту команду в PL/SQL, подставить туда bind variable не удасться – придется генерить строку команды и выполнять ее через

execute immediate ALTER_SQL_STATEMENT;
 Posted by at 9:33 am