|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.2.4 Приемы редактирования кода в буфере SQL*PlusВнесение изменений в содержание буфера в Oracle SQL*Plus, команды LIST, CHANGE, APPEND, INPUT, DEL Когда слушатели на курсах осознают, что в SQL*Plus невозможно вернуть курсор ввода к ранее введенной команде и внести в нее изменения, как это предусмотрено в SQL Server Query Analyzer, обычно это их не радует. Можно выделить код запроса и вставить его в другом месте, но нормально редактировать такой запрос все равно не получится: можно будет только стереть при помощи Backspace код, начиная с конца и ввести его заново. Обычно, чтобы иметь возможность редактировать ранее введенный код, используется одна из трех возможностей:
Последний способ, безусловно, самый сложный и неудобный. Зато он доступен всегда вне зависимости от того, в какой среде у вас работает 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).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||