Команда SET позволяет установить системную переменную, изменяющую свойства среды SQL*Plus для текущего сеанса. Она имеет следующий синтаксис:
<команда SET> ::=
SET <системная переменная> <значение>
Имена, описания и возможные значения основных системных переменных для команды SET представлены в табл. 15.
Таблица 15. Основные системные переменные SQL*Plus
Переменная | Значения | Назначение |
APPI[NFO] | ON | OFF | <текст> | Устанавливает автоматическую регистрацию командных файлов с помощью пакета DBMS_APPLICATION_INFO. Это позволяет контролировать производительность и использование ресурсов каждым командным файлом. При отключенной регистрации файлов в качестве имени модуля используется строка "SQL*Plus" или заданный в этой переменной текст. По умолчанию регистрация отключена. |
ARRAY[SIZE] | <размер пакета> | Устанавливает размер пакета строк, извлекаемых утилитой SQL*Plus из базы данных за один прием. Диапазон допустимых значений - от 1 до 5000. По умолчанию извлекается по 15 строк. |
AUTO[COMMIT] | ON | OFF | IMM[EDIATE] | <к-во операторов> | Управляет фиксацией изменений в базе данных. По умолчанию (OFF) изменения необходимо фиксировать явно. Изменения могут фиксироваться немедленно после успешного выполнения оператора или блока (ON, IMM), или после успешного выполнения указанного количества операторов или блоков PL/SQL. Значение должно быть в диапазоне от 0 до 2000000000. |
AUTOP[RINT] | ON | OFF | Устанавливает автоматическую выдачу значений использованных в команде связываемых переменных. |
AUTORECOVERY | ON | OFF | При установке значения ON команда будет автоматически использовать стандартные имена файлов архивных журналов повторного выполнения. По умолчанию, имена файлов при восстановлении придется вводить вручную, в ответ на запросы SQL*Plus. |
AUTOT[RACE] | ON | OFF | TRACE[ONLY] [EXP[LAIN]] [STAT[ISTICS]] | Управляет выдачей отчета о выполнении успешного оператора SELECT, INSERT, UPDATE или DELETE. В отчет может включаться план выполнения и статистическая информация о выполненных действиях. |
BLO[CKTERMINATOR] | . | <символ> | Задает не алфавитно-цифровой символ, используемый для завершения блока PL/SQL. По умолчанию используется точка. |
CMDS[EP] | ; | ON | OFF | <символ> | Задает не алфавитно-цифровой символ, используемый для разделения нескольких команд SQL*Plus в одной строке. ON/OFF управляет возможностью обработки нескольких команд в строке. Значение ON означает, кроме того, установку стандартного разделителя- точки с запятой. |
COLSEP | <текст> | Задает текст, который будет выдаваться между выбранными столбцами. Если текст содержит пробелы или символы пунктуации, его необходимо брать в апострофы. По умолчанию используется один пробел. |
COM[PATIBILITY] | V7 | V8 | NATIVE | Задает версию Oracle, к которой подключена утилита SQL*Plus. Значение NATIVE, принятое по умолчанию, указывает, что версия определяется базой данных. |
CON[CAT] | . | ON | OFF | <символ> | Задает символ, который позволяет отделить имя подставляемой переменной от остальной части строки. Стандартный символ - точка. |
COPYC[OMMIT] | <к-во пакетов> | Задает количество пакетов (размер задается системной переменной ARRAYSIZE), после копирования которых команда фиксирует изменения в базе данных. Значение должно быть в диапазоне от 0 до 5000. При использовании стандартного значения, 0, фиксация выполняется только по завершении копирования. |
DEF[INE] | & | ON | OFF | <символ> | Задает символ-префикс подставляемой переменной. При указании значения ON используется стандартный префикс - &. |
DESC[RIBE] | [DEPTH 1 | ALL | <глубина>] [LINENUM ON | OFF] | Задает количество уровней рекурсивного описания объекта. Допустимы значения от 1 до 50. ALL означает максимальное количество уровней, 50. Можно также указывать номер строки и отступы для имени столбца или атрибута, когда объект содержит несколько компонентов объектных типов. |
ECHO | ON | OFF | Управляет выдачей на экран каждой команды в командном файле, выполняемом с помощью . |
EDITF[ILE] | <имя файла>[.<расширение>] | Устанавливает стандартное имя файла для команды . |
EMB[EDDED] | ON | OFF | Задает выдачу каждого нового отчета с новой страницы (стандартное значение, OFF) или как продолжение на текущей странице (ON). |
ESC[APE] | \ | ON | OFF | <символ> | Задает маскирующий символ. Значение ON задает стандартный маскирующий символ, обратную косую. |
FEED[BACK] | ON | OFF | <к-во строк> | Управляет выдачей количества строк, возвращенных запросом. Информация выдается, если возвращено не менее указанного количества строк. Значение ON эквивалентно 1. |
FLU[SH] | ON | OFF | Управляет буферизацией результатов. При стандартном значении ON результаты выдаются клиенту немедленно. |
HEA[DING] | ON | OFF | Управляет выдачей заголовков столбцов в результатах. |
HEADS[EP] | | | ON | OFF | <символ> | Задает символ перевода строки для команд, задающих колонтитулы. Можно задавать любой символ, кроме алфавитно-цифровых и пробела. По умолчанию используется вертикальная черта. |
LIN[ESIZE] | <длина строки> | Задает количество символов в выдаваемой строке. Если выдаваемая строка длиннее, остаток переносится на новую строку. Это значение также используется для выравнивания колонтитулов и заголовков отчетов. |
LOGSOURCE | [<путь>] | Задает местонахождение архивных файлов журнала повторного выполнения для восстановления. Если значение не указано, будет использоваться путь, указанный в файле параметров инициализации. |
LONG | <ширина столбца> | Задает максимальную ширину (в байтах) для выдачи значений типа LONG, CLOB и NCLOB (а также для копирования значений типа LONG). Значение не может превосходить 2 Гбайта. |
NEWP[AGE] | NONE | <к-во строк> | Задает количество пустых строк, выдаваемых в начале страницы отчета, перед верхним колонтитулом. Стандартное значение - 1 строка. Если указано значение NONE, пустые строки не выдаются. Если же указано значение 0, при печати пропускается страница, а при выдаче на экран он очищается. |
NULL | <текст> | Задает текст, представляющий пустое значение в результатах выполнения оператора SELECT. |
NUMF[ORMAT] | <формат> | Задает стандартный формат выдачи чисел (о форматах см. в описании команды ) |
NUM[WIDTH] | <ширина> | Задает стандартную ширину числовых столбцов. |
PAGES[IZE] | <к-во строк> | Задает количество строк на странице. Если установить значение 0, подавляется выдача заголовков, колонтитулов и начальных пустых строк. |
PAU[SE] | ON | OFF | <текст> | Позволяет управлять прокруткой при показе отчетов. При установке значения ON, утилита SQL*Plus приостанавливает работу перед выводом каждой страницы отчета, ожидая нажатия клавиши Enter. Можно также задать текст, который будет при этом выводиться. |
RECSEP | WR[APPED] | EA[CH] | OFF | Устанавливает выдачу разделителей между записями (после перенесенных на несколько строк, после всех или никогда). |
RECSEPCHAR | <символ> | Задает символ, из которого состоит разделитель записей. По умолчанию используется пробел. Разделитель записей представляет собой строку символов RECSEPCHAR, повторенных LINESIZE раз. |
SERVEROUT[PUT] | ON | OFF [SIZE <к-во строк>] [FOR[MAT] WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]] | Управляет показом результатов хранимых процедур или анонимных блоков PL/SQL (выданных с помощью пакета DBMS_OUTPUT), размером буфера и переносом строк. Размер буфера должен быть в пределах от 2000 (стандартное значение) до 1000000. |
SHOW[MODE] | ON | OFF | Управляет выдачей значений системных переменных при изменении. Если задано значение ON, при изменении выдается старое и новое значение. |
SQLBL[ANKLINES] | ON | OFF | Разрешает или запрещает использование пустых строк в сценариях и командах SQL. |
SQLC[ASE] | MIX[ED] | LO[WER] | UP[PER] | Управляет изменением регистра символов в команде перед выполнением. По умолчанию (MIXED) регистр символов остается неизменным. Иначе все символы, включая литералы в кавычках, переводятся в соответствующий регистр. Содержимое буфера SQL при этом не меняется. |
SQLCO[NTINUE] | <текст> | Задает текст, выдаваемый утилитой SQL*Plus в качестве приглашения для продолжения ввода команды. По умолчанию используется символ >. |
SQLN[UMBER] | ON | OFF | Управляет выдачей приглашения для ввода второй и последующих строк команды или блока PL/SQL. Если указано значение ON, в качестве приглашения выдается номер строки, если OFF - значение системной переменной SQLPROMPT. |
SQLPRE[FIX] | <символ> | Задает префиксный символ SQL*Plus (по умолчанию - #). Если по ходу ввода команды или блока PL/SQL ввести в отдельной строке команду, начинающуюся префиксным символом, эта команда немедленно выполнится. Префиксный символ должен быть не алфавитно-цифровым. |
SQLP[ROMPT] | <текст> | Задает приглашение командной строки SQL*Plus (по умолчанию - "SQL> "). |
SQLT[ERMINATOR] | <символ> | ON | OFF | Задает символ, завершающий и посылающий на выполнение команду SQL. По умолчанию используется точка с запятой. Если задать значение OFF, то для завершения придется вводить пустую строку или BLOCKTERMINATOR, если установлена системная переменная SQLBLANKLINES. |
SUF[FIX] | <текст> | Задает стандартное расширение командного файла. По умолчанию используется sql. |
TAB | ON | OFF | Управляет использованием символа табуляции для форматирования результатов запросов в SQL*Plus. |
TERM[OUT] | ON | OFF | Управляет выдачей результатов команд на экран. Если задать значение OFF, результат выполнения команд (кроме интерактивных) не будет выдаваться на экран, но будет записываться в файл, указанный в команде SPOOL. |
TI[ME] | ON | OFF | Управляет выдачей текущего времени. При установке значения ON в приглашении выдается текущее время. |
TIMI[NG] | ON | OFF | Управляет выдачей статистики о времени. При установке значения ON после выполнения команды или командного файла выдается время выполнения с точностью до сотых долей секунды. |
TRIM[OUT] | ON | OFF | Управляет усечением хвостовых пробелов в выдаваемых строках. При установке значения ON (принято по умолчанию), хвостовые пробелы усекаются. Эта переменная учитывается только при выводе на экран. |
TRIMS[POOL] | ON | OFF | Управляет усечением хвостовых пробелов в строках, сбрасываемых в файл или на принтер, аналогично TRIMOUT. |
UND[ERLINE] | ON | OFF | <символ> | Задает символ, используемый для подчеркивания заголовков столбцов. По умолчанию используется символ дефиса. Значение OFF отключает подчеркивание заголовков. |
VER[IFY] | ON | OFF | Управляет выдачей текста SQL-операторов и PL/SQL-блоков до и после замены подставляемых переменных значениями. |
WRA[P] | ON | OFF | Управляет усечением слишком длинных строк результатов. По умолчанию, остатки строк переносятся на следующую строку. При задании значения OFF - усекаются. |
Рассмотрим пример задания некоторых системных переменных SQL*Plus:
SQL> set time on
16:43:39 SQL> set timing on
16:43:43 SQL> set underline off
16:43:55 SQL> set pagesize 1000
16:44:02 SQL> set linesize 128
16:44:12 SQL> select * from dept
16:44:18 2 ;
DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 TRAINING KIEV
Затрач.время: 00:00:00.80 16:44:20 SQL>