Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / SQL и PL/SQL в Oracle10g
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

1.2.4 Приемы редактирования кода в буфере SQL*Plus

Внесение изменений в содержание буфера в Oracle SQL*Plus, команды LIST, CHANGE, APPEND, INPUT, DEL

Когда слушатели на курсах осознают, что в SQL*Plus невозможно вернуть курсор ввода к ранее введенной команде и внести в нее изменения, как это предусмотрено в SQL Server Query Analyzer, обычно это их не радует. Можно выделить код запроса и вставить его в другом месте, но нормально редактировать такой запрос все равно не получится: можно будет только стереть при помощи Backspace код, начиная с конца и ввести его заново. Обычно, чтобы иметь возможность редактировать ранее введенный код, используется одна из трех возможностей:

  • использовать средства разработки скриптов от третьих производителей, например, Toad, SQL Navigator или PL/SQL Developer (см. раздел 1.3);
  • вызвать из SQL*Plus внешний редактор (в Windows по умолчанию — Блокнот) — см. раздел 1.2.5;
  • использовать средства редактирования содержимого буфера в SQL*Plus.

Последний способ, безусловно, самый сложный и неудобный. Зато он доступен всегда вне зависимости от того, в какой среде у вас работает SQL*Plus и какие ограничения наложены администратором системы.

Как уже говорилось в предыдущем разделе, последняя выполненная команда помещается в буфер SQL. Как правило, именно ее и нужно нам отредактировать.

Первое что сделать — для наглядности отобразить содержание буфера. Это делается при помощи команды LIST. Если скрипт состоит из нескольких строк, то одна из строк будет помечена звездочкой. Это — текущая строка, и операции по редактированию будут производиться именно над ней. Если нужно сделать какую-то строку текущей принудительно, нужно выполнить команду LIST с номером этой строки, например:

LIST 2

Есть и другие варианты запуска команды LIST. Например, команда LIST 5 10 позволяет вывести строки команды в буфере с пятой по десятую.

После того, как команда LIST выполнена, можно приступать к редактированию содержимого буфера.

Если вам нужно просто заменить какой-нибудь текст в предыдущей команде (например, заменить неправильно набранный номер столбца или фильтр в выражении WHERE), можно использовать команду CHANGE (C в сокращенном варианте).

Синтаксис этой команды выглядит как

CHANGE /ошибочная_последовательность_символов/правильная_последовательность

Например, представим себе, что вы попытались выполнить команду

SELECT emp_no FROM emp

в то время как правильная команда должна выглядеть как

SELECT emp_no FROM emp

Последовательность действий по замене представлена на рис. 1.2.4-1:

Рис. 1.2.4-1

Кроме того, можно заменить строку целиком. Для этого достаточно вписать номер строки и новый текст для нее, который будет вставлен вместо существующего, например,

2 SELECT empno

Если нужно что-то дописать к концу команды, которая содержится в буфере обмена, используется команда APPEND. Например, предположим, что вместо запроса

SELECT * FROM EMP

вам нужно выполнить команду SELECT * FROM emp WHERE empno = 7499

Последовательность действий может выглядеть так:

Обратите внимание, что между APPEND и WHERE — два пробела, чтобы в отредактированном варианте команды появился пробел между emp и WHERE.

Если нужно добавить новую строку, то возможны два варианта. Первый вариант — нам нужно вставить новую строку в самое начало команды (первой строкой скрипта). В этом случае достаточно ввести команду вида

0 новая_строка

Новая строка станет первой, бывшая первая — второй и т.п.

Если же нужно добавить новую строку посередине кода, используется команда INPUT. Нужно сделать текущей строку, после которой добавляется новая строка, выполнить команду INPUT и ввести код для новой строки. Выглядеть это может так, как представлено на рис. 1.2.4-2.

Рис. 1.2.4-2

Если нужно удалить строку команды, которая находится в буфере обмена, используется команда DEL. Можно передать ей номер строки, которую нужно удалить, а можно — звездочку (*), чтобы указать, что производится удаление текущей строки. Для команды DEL можно использовать также дополнительный параметр LAST, который определяет, что удаление производится с указанной строки до конца команды, например:

DEL 4 LAST

Чтобы полностью очистить весь буфер SQL*Plus, используется команда CLEAR BUFFER. Для очистки экрана можно выполнить команду CLEAR SCREEN (или просто нажать Shift+Del).

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru