Базы данных Oracle - статьи

         

Команда SET


Команда 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]
[INDENT 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>



Содержание раздела