SQL Plus: Создание и выполнение сценариев - Редактирование команд SQL*Plus

ОГЛАВЛЕНИЕ

Редактирование команд 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