Ошибка
Исключительная ситуация ORACLE Описание
---------------------- --------- ---------------------------------------------
CURSOR_ALREADY_OPEN ORA-06511 Попытка открытия уже открытого курсора
DUP_VAL_ON_INDEX ORA-00001 Попытка вставить дубликат значения для
уникального индекса
INVALID_CURSOR ORA-01001 Попытка выполнения запрещенной операции с кур-
сором (например, закрытие неоткрытого курсора)
INVALID_NUMBER ORA-01722 Отказ преобразования строки символов в число
LOGIN_DENIED ORA-01017 Неправильное имя пользователь/пароль
NO_DATA_FOUND ORA-01403 Предложение SELECT...INTO возвращает ноль строк
NOT_LOGGED_ON ORA-01012 Нет подключения к Oracle7
PROGRAM_ERROR ORA-06501 Внутренняя ошибка PL/SQL
STORAGE_ERROR ORA-06500 Пакет PL/SQL вышел из пределов памяти или если
память разрушена
TIMEOUT_ON_RESOURCE ORA-00051 Истекло время ожидания ресурса Oracle7
TOO_MANY_ROWS ORA-01422 Предложение SELECT...INTO возвращает более
одной строки
TRANSACTION_BACKED_OUT ORA-00061 Удаленный сервер отменил транзакцию
VALUE_ERROR ORA-06502 Арифметическая ошибка, ошибка преобразования,
усечения или ограничения
ZERO_DIVIDE ORA-01476 Попытка деления на ноль
Если в раздел EXCEPTION программы (блока) включена фраза
WHEN имя_исключения THEN
текст_обработчика_исключения;
с именем какого-либо встроенного исключения и возникла соответствующая ошибка,
то вместо прекращения исполнения программы и выдачи типового сообщения об
ошибке, будет исполняться созданный пользователем текст обработчика исключения.
Такой обработчик может, например, выяснить ситуацию, при которой произошло
деление на ноль, и выдать правдоподобный результат операции деления или
прервать исполнение программы и дать сообщение об изменении каких-либо данных.
В последнем случае это может быть не типовое сообщение "Вы пытаетесь делить на
ноль", а любое подготовленное пользователем сообщение, например, инструкцию
длиной до 2048 символов.
Для выдачи сообщения об ошибке, обеспечения возврата в среду, из которой
вызывалась текущая программа (блок) и отмены всех действий, выполненных в
текущей транзакции, целесообразно использовать процедуру
RAISE_APPLICATION_ERROR(errnum,errtext);
где errnum - отрицательное целое число в диапазоне -20000 .. -20999 и errtext
- символьная строка длиной до 2048 символов.
В приведенном ниже триггере "shtins" использованы два типа встроенных
исключительных ситуаций: NO_DATA_FOUND и TOO_MANY_ROWS.
DROP TRIGGER shtins;
CREATE TRIGGER shtins
BEFORE INSERT ON SHTAT
FOR EACH ROW
DECLARE
nach DATE;
kon DATE;
str NUMBER;
minraz NUMBER;
maxraz NUMBER;
- 41 -
nach_kon EXCEPTION;
err_str EXCEPTION;
nach_nach EXCEPTION;
err_razr EXCEPTION;
err_razr_pr EXCEPTION;
err_stavka EXCEPTION;
BEGIN
SELECT min_razr,max_razr INTO minraz,maxraz FROM dolgnosti
WHERE dolgn = :new.dolgn;
IF :new.razr NOT BETWEEN minraz AND maxraz THEN RAISE err_razr; END IF;
IF :new.razr_proc NOT BETWEEN 50 AND 100 THEN RAISE err_razr_pr; END IF;
IF :new.stavka NOT BETWEEN 0.25 AND 100 THEN RAISE err_stavka; END IF;
IF :new.nachalo > :new.konec THEN RAISE nach_kon; END IF;
SELECT MAX(stroka) INTO str FROM shtat;
IF :new.stroka <> str+1 THEN RAISE err_str; END IF;
<> -- метка блока, в котором производится поиск строк с
-- параметрами, аналогичными вводимым значениям
BEGIN
SELECT nachalo,konec INTO nach,kon FROM shtat
WHERE OTDEL = :new.otdel AND DOLGN = :new.dolgn AND RAZR = :new.razr
AND RAZR_PROC = :new.razr_proc AND KONEC =
(SELECT MAX(konec) FROM shtat
WHERE OTDEL = :new.otdel AND DOLGN = :new.dolgn
AND RAZR = :new.razr AND RAZR_PROC = :new.razr_proc);
IF :new.nachalo <= nach THEN RAISE nach_nach; END IF;
IF :new.nachalo <= kon THEN
UPDATE SHTAT SET konec = (:new.nachalo - 1)
WHERE OTDEL =:new.otdel AND DOLGN = :new.dolgn AND RAZR =:new.razr
AND RAZR_PROC = :new.RAZR_PROC AND konec = kon;
END IF;
EXCEPTION -- начало обработчика исключений блока find_strings
WHEN NO_DATA_FOUND THEN NULL; -- вызывается, если SELECT блока find_strings
-- не возвращает ни одной строки.
END find_strings;
EXCEPTION -- начало обработчика исключений основной программы
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20003,'Должности '||:new.dolgn||' не существует !');
WHEN err_razr THEN
RAISE_APPLICATION_ERROR(-20004,
'Значение разряда не попадает в "вилку" разрядов');
WHEN err_razr_pr THEN
RAISE_APPLICATION_ERROR(-20005,
'Разрядный процент должен находиться в пределах 50-100');
WHEN err_stavka THEN
RAISE_APPLICATION_ERROR(-20006,
'Число ставок должно находиться в пределах 0.25-100');
WHEN nach_nach THEN
RAISE_APPLICATION_ERROR(-20007,
'Дата начала должна быть больше '||to_char(nach));
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR(-20008,'Много строк; обратитесь к АБД.');
WHEN nach_kon THEN
RAISE_APPLICATION_ERROR(-20009,
'Дата начала не может быть больше даты конца');
WHEN err_str THEN
RAISE_APPLICATION_ERROR(-20010,'Неправильный номер вводимой строки');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20011,'Какая-то другая ошибка');
END shtins;
- 42 -
Так как в большом приложении могут часто повторяться встроенные или
пользовательские исключительные ситуации, то целесообразно создать в базе
данных таблицу (например, USERERR) с уникальными номерами (error_number) и
текстами (error_text) исключений. Это позволит избежать определения лишних
сообщений об ошибках и сделать их согласованными во всем приложении.
При использовании такой таблицы и процедуры RAISE_APPLICATION_ERROR надо
описать в в разделе DECLARE блока две переменных (например, errnum типа NUMBER
и errtext типа VARCHAR2) и использовать в обработчике исключений конструкцию:
WHEN TOO_MANY_ROWS THEN
SELECT error_number,error_text INTO errnum,errtext FROM usererr
WHERE error_number = 20008;
RAISE_APPLICATION_ERROR(errnum,errtext);
или
WHEN TOO_MANY_ROWS THEN
SELECT error_number,error_text INTO errnum,errtext FROM usererr
WHERE errtext LIKE 'Много строк; обр%';
RAISE_APPLICATION_ERROR(errnum,errtext);
12.5.2. Исключительные ситуации, определяемые пользователем
Кроме встроенных могут быть использованы собственные исключительные
ситуации, имена которых необходимо описать в разделе DECLARE блока PL/SQL
(например, err_stavka EXCEPTION). В разделе EXCEPTION блока должен быть
описан соответствующий обработчик исключительной ситуации, например
WHEN err_stavka THEN
SELECT error_number,error_text INTO errnum,errtext FROM usererr
WHERE errtext LIKE 'Число ставок должно находиться%';
RAISE_APPLICATION_ERROR(errnum,errtext);
В теле основной программы определяемые пользователем ошибки обычно проверяются
с помощью операторов условия (IF...THEN). Для передачи управления обработчику
пользовательской исключительной ситуации в случае обнаружения ошибки
используется оператор
RAISE имя_пользовательского_исключения
Например
IF :new.stavka NOT BETWEEN 0.25 AND 100 THEN
RAISE err_stavka;
END IF;
12.5.3. Обработчик OTHERS
Если исключительная ситуация не обрабатывается явным образом в блоке и для
ее перехвата не используется обработчик OTHERS, то PL/SQL отменяет выполняемые
блоком транзакции и возвращает необработанную исключительную ситуацию обратно
в вызывающую среду.
Обработчик особых ситуаций OTHERS описывается последним в программе (блоке)
для перехвата всех исключительных ситуаций, которые не были описаны в этой
программе (блоке). Он может иметь вид
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20011,'Какая-то другая ошибка');
- 43 -
12.6. Транзакции
COMMIT - завершает транзакцию, фиксируя изменения в базе данных
ROLLBACK - отменяет изменения, внесенные текущей транзакцией
SAVEPOINT - идентифицирует промежуточную точку сохранения транзакции
(подробно будут описаны позднее)
12.7. О программах PL/SQL
Анонимные блоки, процедуры, функции, пакеты и триггера.
(подробно будут описаны позднее)
12.8. Отладка программ PL/SQL
Oracle7 не поставляется с готовой и полной средой разработки. Поэтому для
успешной разработки с применением PL/SQL нужно освоить некоторые приемы
отладки.
Перед исполнением программы необходимо выполнить две операции:
1. Исполнить команду SET SERVEROUTPUT ON разрешающую вывод на экран
информации, заданной в процедуре
DBMS_OUTPUT.PUT_LINE (текстовая_строка) .
Эта процедура является единственным средством вывода значений переменных
из программ PL/SQL. Например,
DBMS_OUTPUT.PUT_LINE('Пример '||TO_CHAR(SYSDATE,'DD')) .
2. Установить формат даты с помощью команды
ALTER SESSION SET NLS_DATE_FORMAT='DD.MM.YYYY';
Если при выполнении SQL-запроса или программы PL/SQL обнаружены ошибки, то
в первую очередь надо проверить правильность написания в них имен таблиц,
столбцов и др. Для этого можно воспользоваться командой SQL*Plus DESCRIBE,
которая выводит список столбцов для таблицы или спецификацию для функции,
процедуры, пакета. Синтаксис этой команды имеет вид:
DESC[RIBE] {[user.]table [column] | [user.]object[.subobject]}
Пример
SQL> desc kadry
Name Null? Type
------------------------------- -------- ----
NOMER NOT NULL NUMBER(6)
FAMILIYA VARCHAR2(20)
IMYA VARCHAR2(15)
OTCHESTVO VARCHAR2(20)
ROZHDENIE DATE
POL CHAR(1)
IZMEN NOT NULL DATE
- 44 -
Аналогичным образом можно получить структуру любого представления словаря
данных (см. пп. 13 и 14), например, структуру user_objects, где хранится
информация о пользовательских объектах базы данных (INDEX, SEQUENCE, VIEW,
PACKAGE, PACKAGE BODY, FUNCTION, PROCEDURE, TABLE, TRIGGER):
desc user_objects
Name Null? Type
---------------- -------- ----
OBJECT_NAME VARCHAR2(128)
OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(13)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(75)
STATUS VARCHAR2(7)
Для получения полного описания всех объектов можно выполнить команду:
select * from user_objects;
а для получения описания процедур
select * from user_objects where object_type = 'PROCEDURE';
OBJECT_NAME OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_T TIMESTAMP STATUS
----------- --------- ----------- ---------- ---------- ------------------- -------
PR_CURS 1928 PROCEDURE 17.11.1996 02.02.1997 1997-02-02:13:37:05 VALID
PR_PRINT 1957 PROCEDURE 24.11.1996 24.11.1996 1996-11-24:16:59:44 INVALID
PR_SHTAT 1970 PROCEDURE 02.01.1997 08.01.1997 1997-01-08:12:38:02 VALID
При возникновении ошибок в командах CREATE PACKAGE, CREATE PACKAGE BODY,
CREATE PROCEDURE, CREATE FUNCTION, CREATE TRIGGER, CREATE VIEW их уточнение
можно выполнить с помощью команды SQL*Plus:
SHOW ERR[ORS] [{PACKAGE | PACKAGE BODY | PROCEDURE | FUNCTION |
TRIGGER | VIEW} name]
(подробности будут описаны позднее)
13. Представления словарей данных
После некоторых из перечисленных ниже имен в скобках расположен перечень
букв: (a,u), (d,u) или (a,d,u). Это означает, что такое имя является основой
для имен двух или трех словарей, получаемых за счет добавки префикса ALL_,
DBA_ или USER_. Например, TABLES(a,d,u) основа для имен словарей: ALL_TABLES,
DBA_TABLES и USER_TABLES. При этом префиксом USER снабжаются представления,
наиболее интересные для обычного пользователя, префиксом ALL снабжаются все
доступные пользователю представления и префиксом DBA - доступные пользователям
с системными полномочиями.
Таблицы, представления, синонимы, последовательности
CAT Синоним для USER_CATALOG
CATALOG(a,d,u) Информация о всех таблицах, представлениях, синонимах и
последовательностях базы данных
COL Список столбцов в таблицах пользователя.
COLS Синоним для USER_TAB_COLUMNS
- 45 -
COL_COMMENTS(a,d,u) Комментарии для столбцов таблиц и представлений
CONSTRAINTS(a,d,u) Информация об ограничениях ссылочной целостности в БД
CONS_COLUMNS(a,d,u) Информация о столбцах, участвующих в ограничениях
ссылочной целостности
SEQ Синоним для USER_SEQUENCES.
SEQUENCES(a,d,u) Информация о последовательностях БД
SNAPSHOTS(a,d,u) Информация о снимках в БД
SYN Синоним для USER_SYNONYMS.
SYNONYMS(a,d,u) Информация о синонимах БД
TAB Таблицы пользователя
TAB_COLUMNS(a,d,u) Информация о столбцах таблиц и представлений БД
TAB_COMMENTS(a,d,u) Комментарии для таблиц и представлений БД
TABLES(a,d,u) Информация о таблицах БД
TABS Синоним для USER_TABLES.
VIEWS(a,d,u) Информация о представлениях БД
Объекты
ERRORS(a,d,u) Информация об ошибках компиляции, обнаруженных в БД для
процедур, функций, спецификаций пакета и тел пакета
DEPENDENCIES(a,d,u) Информация о зависимостях объекта в БД
DEPTREE Информация о зависимостях объекта (создается UTLDTREE.SQL)
IDEPTREE Информация о зависимостях объекта (создается UTLDTREE.SQL)
OBJ Синоним для USER_OBJECTS
OBJECTS(a,d,u) Информация об объектах базы данных
OBJECT_SIZE(d,u) Информация о размерах процедур, функций, спецификаций
пакетов и тел пакетов в БД
PUBLIC_DEPENDENCY Информация о зависимостях объекта
SOURCE(a,d,u) Исходный код процедур, функций, спецификаций пакетов и
тел пакетов в БД
TRIGGERS(a,d,u) Информация о триггерах БД
Привилегии
COLUMN_PRIVILEGES Информация о полномочиях для столбцов
COL_PRIVS(a,d,u) Синоним для COLUMN_PRIVILEGES
COL_PRIVS_MADE(a,u) Информация о полномочиях, предоставляемых для столбцов
COL_PRIVS_RECD(a,u) Информация о полномочиях, полученных по конкретным
столбцам
DBA_PROFILES Информация обо всех профилях ограничений ресурсов в БД
DBA_ROLES Информация о ролях в БД
ROLE_PRIVS(d,u) Информация о назначенных пользователю ролях
ROLE_ROLE_PRIVS Информация о ролях, назначенных другим ролям
ROLE_SYS_PRIVS Информация о системных полномочиях, предоставляемых роли
ROLE_TAB_PRIVS Информация о полномочиях на объект, предоставляемых роли
SESSION_PRIVS Информация о полномочиях, предоставленных сеансу
SESSION_ROLES Информация о доступных для сеанса ролях
SYSTEM_PRIVILEGE_MAP Отображение номеров системных полномочий
SYS_PRIVS(d,u) Предоставленные пользователю системные полномочия
TAB_PRIVS(a,d,u) Информация о заданных на объекты полномочиях
TAB_PRIVS_MADE(a,u) Информация о предоставленных на объекты полномочиях
TAB_PRIVS_RECD(a,u) Информация о полученных полномочиях на объекты
TABLE_PRIVILEGES Информация о предоставленных на объекты полномочиях
TABLE_PRIVILEGE_MAP Отображение номеров полномочий
TS_QUOTAS(d,u) Информация о квотах пользователя в табличных областях
USERS(a,d,u) Информация о пользователях БД
USER_RESOURCE_LIMITS Информация о лимитах ресурсов для текущего пользователя
- 46 -
Табличные пространства, кластеры, экстенты, файлы,
CLU Синоним для USER_CLUSTERS
CLUSTERS(d,u) Информация об индексированных и хешированных кластерах
базы данных
CLU_COLUMNS(d,u) Отношение столбцов таблицы к ключам кластера
DBA_DATA_FILES Информация о файлах данных
EXTENTS(d,u) Информация об экстентах объектов в БД
FREE_SPACE(d,u) Информация о свободных экстентах в табличной области БД
SEGMENTS(d,u) Информация о сегментах БД
TABLESPACES(d,u) Информация о табличных областях БД
Индексы
INDEXES(a,d,u) Информация об индексах БД
IND_COLUMNS(a,d,u) Информация об индексах, соответствующих индексам таблицы
IND Синоним для USER_INDEXES.
INDEX_HISTOGRAM Статистическая информация об индексах, генерируемых
командой ANALYZE INDEX VALIDATE STRUCTURE
INDEX_STATS Статистическая информация об индексах, генерируемых
командой ANALYZE INDEX VALIDATE STRUCTURE
Загрузчик данных (SQL*Loader) и экспорт БД
LOADER_COL_INFO Информация о столбцах для SQL*Loader
LOADER_CONSTRAINT_INFO Информация об ограничениях целостности для SQL*Loader
LOADER_INDCOL_INFO Информация об индексированных столбцах для SQL*Loader
LOADER_IND_INFO Информация об индексах для SQL*Loader
LOADER_PARAM_INFO Информация о параметрах для SQL*Loader
LOADER-TAB_INFO Информация о таблицах для SQL*Loader
LOADER_TRIGGER-INFO Информация о триггерах для SQL*Loader
DBA_EXP_FILES Описания файлов экспорта
DBA_EXP_OBJECTS Информация об объектах, инкрементально экспортированных
с помощью утилиты Export
DBA_VERSION Номер версии для последней сессии экспорта
установленной другим сеансом
Блокировки
DBA_DDL_LOCKS Информация о блокировках в результате операций DDL
DBA_DML_LOCKS Информация о блокировках DML на сервере
DBA_LOCKS Информация обо всех блокировках DDL и DML сервера БД
DBA_WAITERS Информация о сеансах, ожидающих отмены блокировки,
DBMS_LOCK_ALLOCATED Информация об определенных пользователем блокировках,
созданных пакетом утилит DBMS_LOCK
Транзакции
DBA_2PC_NEIGHBORS Информация о входящих/исходящих подключениях для
незавершенных распределенных транзакций
DBA_2PC_PENDING Информация о распределенных транзакциях, ожидающих
завершения
DBA_BLOCKERS Сеансы, которые блокируют другие транзакции (см.
соответствующее представление DBA_WAITERS)
DBA_ROLLBACK_SEGS Информация о сегменте отката в БД
- 47 -
Словарь
DICT Синоним для DICTIONARY
DICTIONARY Информация о таблицах и представлениях словаря данных
DICT_COLUMNS Информация о столбцах словаря данных
ERROR_COLUMNS Description of columns in data dictionary tables and views.
Другие представления
DB_LINKS(a,d,u) Информация о связях в базе данных
DBMS_ALERT_INFO Информация о зарегистрированных уведомлениях, созданных
пакетом утилит DBMS_ALERT
GLOBAL_NAME Информация о глобальных именах БД
RESOURCE_COST Информация о ценовых коэффициентах для системных ресурсов
SNAPSHOT_LOGS(d,u) Информация о журналах снимков в БД
Ревизия успешных и безуспешных обращений к объектам базы данных
ALL_DEF_AUDIT_OPTS Информация о заданных по умолчанию параметрах отслеживания
объекта
AUDIT_ACTIONS Отображение номеров действия контрольного журнала и их
описания
AUDIT_OBJECT(d,u) Записи контрольного журнала для отслеживаемых объектов
базы данных
AUDIT_SESSION(d,u) Записи контрольного журнала, касающиеся контрольного
журнала базы данных
AUDIT_STATEMENT(d,u) Записи контрольного журнала для операторов отслеживания
AUDIT_TRAIL(d,u) Совокупность всех записей контрольного журнала
DBA_AUDIT_EXISTS Записи контрольного журнала, созданные по команде
AUDIT_EXISTS
DBA_PRIV_AUDIT_OPTS Информация о параметрах отслеживания для полномочий
DBA_STMT_AUDIT_OPTS Информация об установленных для операторов параметрах
отслеживания
OBJ_AUDIT_OPTS(d,u) Информация об установленных для объектов БД параметрах
отслеживания
STMT_AUDIT_OPTION_MAP Отображение номеров действия контрольного журнала
14. Виртуальные представления словаря данных (доступны пользователю SYS)
V$ACCESS Информация об используемых в настоящее время объектах
V$ARCHIVE Информация об архивированном журнале транзакций БД
V$BACKUP Информация о состоянии архивации всех оперативно доступных
табличных областей БД
V$BGPROCESS Информация о фоновых процессах сервера БД
V$CIRCUITS Информация обо всех подключениях пользователя в конфигурации
мультинитевого сервера
V$DATABASE Информация о БД из контрольного журнала БД
V$DATAFILE Информация о файлах данных
V$DBFILE Информация о файлах данных
V$DB_OBJECT_CACHE Информация об объектах в кэше объектов сервера БД, включая
таблицы, индексы и процедуры
V$DISPATCHERS Информация о текущих фоновых процессах диспетчера, работающих
в мультинитевом сервере БД
V$ENABLEDPRIVS Информация о разрешенных полномочиях
V$FILESTAT Информация о статистике ввода-вывода для файлов БД
V$INSTANCE Информация о текущем состоянии сервера БД (экземпляре)
V$LATCH Информация о внутренних блокировках на сервере БД
- 48 -
V$LATCHHOLDER Информация о сеансах, установивших на сервере БД внутренние
блокировки
V$LATCHNAME Информация о внутренних блокировках на сервере БД
V$LIBRARYCACHE Статистическая информация об управлении библиотечным кэшем
V$LICENSE Информация о лицензионных ограничениях программного
обеспечения Oracle7
V$LOADCSTAT Информация о статистике SQL*Loader, собранной при прямой
загрузке по маршруту
V$LOADTSTAT Информация о статистике SQL*Loader, собранной при прямой
загрузке по маршруту
V$LOCK Информация о блокировках DML на сервере БД
V$LOG Информация о журнале транзакций сервера БД
V$LOGHIST Информация о журнале транзакций сервера БД
V$LOG_HISTORY Информация о журнале транзакций сервера БД
V$LOGFILE Информация о файлах журнала транзакций сервера БД
V$NLS_PARAMETERS Информация о текущих значениях параметра NLS
V$OPEN_CURSOR Информация о каждом открытом курсоре сеанса БД
V$PARAMETER Информация о каждом параметре инициализации сервера БД
V$PROCESS Информация о текущих активных процессах
V$QUEUES Информация об очередях мультинитевого сервера
V$RECOVERY_LOG Информация об архивированных группах журнала транзакций,
необходимых для восстановления БД
V$RECOVER_FILE Информация о файлах, необходимых для восстановления БД
V$REQDIST Информация о состояниях, требующих восстановления файлов
данных
V$RESOURCE Информация о системных ресурсах
V$ROLLNAME Информация об оперативно доступных сегментах отката
V$ROLLSTAT Статистическая информация обо всех оперативно доступных
сегментах отката
V$ROWCACHE Статистическая информация об активности словаря данных
V$SESSION Информация о сеансах БД
V$SESSTAT Статистическая информация о сеансах БД
V$SESSION_WAIT ресурсах, которых ожидает сеанс
V$SESS_IO Информация о вводе-выводе каждого сеанса
V$SGA Информация об области памяти SGA (System Global Area) сервера
V$SGASTAT Статистическая информация об области памяти SGA сервера БД
V$SHARED_SERVERS Информация о разделяемых фоновых серверах мультинитевого
сервера БД
V$SQLAREA Информация о совместно используемых курсорах
V$SQLTEXT Информация об операторах, соответствующих совместно
используемым курсорам
V$STATNAME Информация для кодов статистики сеанса, выводимых в V$SESSTAT
V$SYSSTAT Информация о системной статистике для данных V$SESSTAT
V$THREAD Информация о нитях журнала транзакций БД
V$TIMER Текущее системное время в сотых долях секунды
V$TRANSACTION Информация о текущих транзакциях БД
V$TYPE_SIZE Информация о компонентах нижнего уровня, позволяющих
предсказать потребность в памяти на диске
V$VERSION Информация о версиях библиотек ядра программного обеспечения
сервера Oracle7
V$WAISTAT Статистическая информация о конкуренции за блоки данных
между транзакциями
15. Системные полномочия Oracle7
Для системных полномочий с префиксами в скобках указаны доступные префиксы.
Например, следующая запись таблицы:
CLUSTER(CREATE,CREATE ANY, Создает, изменяет и удаляет кластеры
ALTER ANY,DROP ANY)
- 49 -
дает такие системные полномочия
CREATE CLUSTER Создает кластеры в своей схеме
CREATE ANY CLUSTER Создает кластеры в любой схеме
ALTER ANY CLUSTER Изменяет кластеры в любой схеме
DROP ANY CLUSTER Удаляет кластеры из любой схемы
Системные полномочия Описания
--------------------------- ------------------------------------------------
ANALYZE ANY Анализирует таблицу, индекс или кластер базы
данных с помощью команды ANALYZE
AUDIT ANY Задает для любого объекта базы данных параметры
отслеживания
AUDIT SYSTEM Отслеживает системные события
CLUSTER(CREATE,CREATE ANY, Создает, изменяет и удаляет кластеры
ALTER ANY,DROP ANY)
DATABASE(ALTER) Модифицирует базу данных с помощью команды
ALTER DATABASE
DATABASE LINK(CREATE, Создает и изменяет связи базы данных
CREATE PUBLIC,DROP PUBLIC)
INDEX(CREATE,CREATE ANY, Создает, изменяет и удаляет индексы
ALTER ANY,DROP ANY)
PRIVILEGE(GRANT ANY) Последовательность каких-либо системных полномочий
PROCEDURE(CREATE,CREATE Создает, перекомпилирует, удаляет и выполняет
ANY,ALTER ANY,DROP ANY, процедуры, функции, пакеты и их глобальные
EXECUTE ANY) переменные
PROFILE(CREATE,ALTER,DROP) Создает, изменяет и удаляет профили ограничений
RESOURCE COST(ALTER) Создает для сеанса ценовой коэффициент ресурса
ROLE(CREATE,ALTER ANY, Создает, изменяет, удаляет и назначает роли
DROP ANY,GRANT ANY)
ROLLBACK SEGMENT(CREATE, Создает, изменяет и удаляет сегменты отката
ALTER,DROP)
SESSION(CREATE,ALTER, Создает и изменяет сеансы базы данных (RESTRICTED
RESTRICTED) соответствует созданию ограниченного сеанса)
SEQUENCE(CREATE,CREATE ANY, Создает, изменяет и удаляет последовательности
ALTER ANY,DROP ANY,
SELECT ANY)
SNAPSHOT(CREATE,CREATE ANY, Создает, изменяет и удаляет "снимки" базы данных
ALTER ANY,DROP ANY)
SYNONYM(CREATE,CREATE ANY, Создает и удаляет синонимы
DROP ANY,CREATE PUBLIC,
DROP PUBLIC)
SYSTEM (ALTER) Изменяет параметры базы данных с помощью ALTER SYSTEM
TABLE(CREATE,CREATE ANY, Создает, изменяет, удаляет, архивирует, блокирует,
ALTER ANY,BACKUP ANY,DROP комментирует таблицы и манипулирует ими
ANY,COMMENT ANY,LOCK ANY,
SELECT ANY,DELETE ANY,
INSERT ANY,UPDATE ANY)
TABLESPACE(CREATE,ALTER, Создает, расширяет, архивирует, управляет доступностью
DROP,MANAGE,UNLIMITED) табличных областей и удаляет их, а также использует
пространство табличных областей
TRUNCATE ANY Удаляет все строки из таблицы и (необязательно)
всю выделенную для таблиц память на диске
TRANSACTION(FORCE, Управляет исходом незавершенных системных
FORCE ANY) транзакций
TRIGGER(CREATE,CREATE ANY, Создает, изменяет и удаляет триггера
ALTER ANY,DROP ANY)