SQL Plus: Создание и выполнение сценариев - Редактирование команд SQL*Plus
ОГЛАВЛЕНИЕ
Страница 5 из 29
Редактирование команд SQL*Plus
Команды SQL*Plus не попадают в буфер, поэтому редактировать их можно только по ходу ввода с помощью клавиши Backspace.
Утилита SQL*Plus поддерживает несколько команд редактирования текста в буфере. Они представлены в табл. 4.
Таблица 4. Команды редактирования SQL*Plus.
Команда | Назначение |
A[PPEND] <текст> | Добавляет <текст> в конце строки. |
C[HANGE] /<старая>[/<новая>[/]] | Заменяет в строке подстроку <старая> строкой <новая>. Если <новая> не указана, просто удаляет подстроку <старая>. |
CL[EAR] BUF[FER] | Удаляет все строки из буфера. |
DEL [*] | Удаляет текущую строку. |
DEL <n> [* / <m> / LAST] | Удаляет строку с номером <n>, или со строки <n> до текущей, до строки <m> или до последней строки, соответственно. |
DEL * [<n> / LAST] | Удаляет с текущей строки по строку <n> или до конца, соответственно. |
DEL LAST | Удаляет последнюю строку. |
ED[IT] [<имя файла>[.<расширение>]] | Вызывает текстовый редактор операционной системы и загружает в него буфер или указанный файл. Если редактируется буфер, то в текущем каталоге создается файл afiedt.buf, в котором и находится результат редактирования. Загрузка изменений в буфер выполняется автоматически после выхода из редактора. Стандартный редактор в ОС UNIX задается переменной среды _EDITOR. По умолчанию в ОС UNIX используется редактор ed, а в Windows - Notepad. |
I[NPUT] [<текст>] | Вставляет строку или <текст>, в том числе, из нескольких строк, в буфер после текущей строки. |
LIST [<n> / * / LAST] | Выдает, соответственно, все строки в буфере SQL, строку с указанным номером, текущую или последнюю строку. |
LIST <n> [* / <m> / LAST] | Выдает строку с номером <n>, все строки, начиная со строки с номером <n>, до текущей, строки с номером <m> или до конца буфера, соответственно. |
LIST * [<n> / LAST] | Выдает все строки с текущей строки до строки с номером <n> или до последней строки, соответственно. |
Рассмотрим пример:
SQL> select ename, salary from emp;
select ename, salary from emp
*
ошибка в строке 1:
ORA-00904: неверно имя столбца
SQL> c /salary/sal
1* select ename, sal from emp
SQL> i where deptno=30;
SQL> /
ENAME SAL
---------- ----------
ALLEN 1600
WARD 1250
MARTIN 1250
BLAKE 2850
TURNER 1500
JAMES 950
6 строк выбрано.
SQL> list
1 select ename, sal from emp
2* where deptno=30