Вспомогательные скрипты для SQL*Plus
Для удобной и корректной работы скриптов нужно:
-
Скопировать папку к себе в любую директорию(или получить с помощью
git clone http://src.orasql.org/root/xt_scripts.git
). При этом очень удобно подмонтировать эту папку как отдельный диск. Например, я обычно создаю и добавляю в автозагрузку файл mount_disc.bat в котором эта директория монтируется как диск S@echo off cd c:\oracle\11.2.0\client_1\scripts\ subst s: .
-
Затем путь к ней(или к диску) прописываем в реестре в ветке клиента оракла или в переменных средах.(Этот пункт не обязательный, если запускать SQL*Plus из директории скриптов.)
- Если в реестре, то это будет ветка вроде HKLM\SOFTWARE\ORACLE\KEY_OraClient11g_home1 В ней нужно будет создать строковую переменную SQLPATH с этим путем. Например, если это диск S:, то пишем S:\
- Если через "переменные среды", то нужно будет создать переменную с таким же именем(SQLPATH) и путем.
-
Создать папки:
c:\temp\sqlplus-tmp\ c:\temp\spools\
-
Добавить в конец файла c:\oracle\11.2.0\client_1\sqlplus\admin\glogin.sql строчки
@inc/on_login_win.sql; @inc/on_login.sql; -- путь к любимому текстовому редактору: DEFINE _EDITOR ="c:\Program Files\SciTE\SciTE.exe"
-
Скопировать к себе директорию O:\DIT\software development\AnsiCon\ и установить программку запуском с параметром -i:
ansicon.exe -i
. Если этот пункт не выполнять, то тогда нужно будет заменить в glogin.sql строчку@inc/on_login.sql;
на@inc/on_login_colors_off.sql;
-
Перед запуском SQLPlus нужно настроить cmd: выполнить chcp 1251 и установить шрифт Lucida console. Шрифт можно установить однократно для всех окон cmd. Можно написать .bat-файл для запуска sqlplus такого вида:
@echo off set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 S: start /B chcp 1251 > nul && sqlplus /NOLOG
-
Если вы хотите пользоваться автодополнением в консоли, то можно установить Cygwin с утилитой rlwrap. Этот пункт я описывать не буду, т.к. он необязателен.
-
Еще очень удобно пользоваться многооконными терминалами. Можете посмотреть и сравнить [ConEmu](http://www.pvsm.ru/programmirovanie/24024 Альтернативный терминал для Windows) или Console2 (тут или тут )
В принципе вы можете точно так же пользоваться этими скриптами и в командном окне PL/SQL developer'a.
Имя файла | описание |
---|---|
@sessions [маска [active]] | Выводит текущие подключенные сессии. При вызове без параметров показывает все активные сессии, при вызове с первым параметром выводит сессии отфильтрованные по маске, включая простаивающие(idle) сессии, для показа только активных нужно добавить второй параметр. |
@my_sessions | Выводит все сессии с данного компьютера |
@my_active | Выводит все активные сессии с данного компьютера |
@my_plan | Выводит план выполняющегося в данный момент запроса из активной сессии с данного компьютера |
@sqlid sqlid | Выводит информацию о запросе, включая отформатированный текст запроса. |
@text sqlid | Выводит отформатированный текст запроса. |
@textu sqlid | Выводит неотформатированный текст запроса. |
@plan sqlid [child_number [format]] | Выводит реальные планы запроса. |
@sql_stat sqlid | Выводит краткую информацию о запросе |
@binds sqlid | Выводит все сохраненные binds-переменные запроса. |
@ash sid n | Выводит историю сессии по SIDу за N последних минут. |
@snapper_sid interval count sid | Показывает информацию о топе выполняющегося в сессии с данным SID, анализируя по "interval" секунд и count раз. Например, @snapper_sid 5 1 1234 выведет топ за 5 секунд в сессии с SID=1234. |
@open_cursors sid | Показывает курсоры указанной сессии |
@find_sql mask | Находит запросы по тексту |
@find_code mask | Находит pl/sql объекты по тексту |
@rtsm/sid SID | Выводит HTML-версию отчета real-time sql monitor'a о выполняющемся в указанной сессии |
@rtsm/sqlid sqlid | Выводит текстовую версию отчета real-time sql monitor'a о конкретном запросе |
@rtsm/sqlid_html sqlid | Выводит HTML-версию отчета real-time sql monitor'a о конкретном запросе |
@rtsm/sqlid_exec sqlid exec_id | Выводит HTML-версию отчета real-time sql monitor'a о конкретном запросе c конкретным ID выполнения |
@rtsm/execs sqlid | Выводит краткую информацию о выполнениях по конкретному sqlid, сохраненную real-time sql monitor'ом |
@rtsm/binds sqlid | Выводит бинд-переменные заданного запроса |
@awr/sqlid sqlid | Выводит информацию о запросе, когда-либо сохраненную в AWR. |
@awr/plan sqlid | Выводит реальные планы запроса, когда-либо сохраненные в AWR. |
/* todo */ |