С.Урман ORACLE8. ЯЗЫК ПРОГРАММИРОВАНИЯ PL/SQL Содержание 1 Введение в PL/SQL Почему PL/SQL? Модель клиент/ сервер Стандарты Средства PL/SQL Блочная структура Обработка ошибок Переменные и типы Циклические конструкции Курсоры Соглашения, принятые в этой книге PL/SQL и версии Oracle Документация Oracle Содержимое компакт-диска Местонахождение примеров Примеры таблиц student_sequence students major_stats rooms classes registered_students RS_audit log_table temp_table debug_table Итоги 2 Основы PL/SQL Блок PL/SQL Структура блока Лексические единицы Идентификаторы Зарезервированные слова Идентификаторы в кавычках Ограничители Литералы Символьные литералы Числовые литералы Логические литералы Комментарии Однострочные комментарии 1 2 3 4 4 4 4 5 6 7 7 7 9 9 9 9 10 10 11 11 12 13 15 15 15 15 16 17 18 20 22 22 23 23 24 25 25 25 26 26 26 Многострочные комментарии Объявление переменных Синтаксис объявления Инициализация переменных Типы PL/SQL Скалярные типы Семейство числовых типов Семейство символьных типов Семейство типов без обработки Семейство типов даты Семейство типов ROWID Семейство логических типов Семейство типов Trusted Составные типы Ссылочные типы Типы LOB Использование %TYPE Подтипы, определяемые пользователями Преобразование типов данных Явное преобразование типов данных Неявное преобразование типов данных Области действия и области видимости переменных Выражения и операции Присваивание Выражения Символьные выражения Логические выражения Управляющие структуры PL/SQL IF-THEN-ELSE NULL-условия Циклы Простые циклы Циклы WHILE Числовые циклы FOR Операторы GOTO и метки Ограничения при использовании GOTO Помеченные циклы Рекомендации по использованию GOTO NULL как оператор Прагмы Стиль программирования на PL/SQL Комментарии Имена переменных Выделение заглавными буквами 27 27 27 28 29 29 29 31 32 33 33 33 33 33 34 34 34 35 35 36 36 37 38 38 39 39 40 41 41 43 44 44 45 46 47 48 49 49 49 50 50 51 51 51 Структурирование текста Общий стиль Итоги 3 Записи и таблицы Записи PL/SQL Присваивание записей Использование %ROWTYPE Таблицы Таблицы и массивы Атрибуты таблиц COUNT DELETE EXISTS FIRST и LAST NEXT и PRIOR Рекомендации по использованию таблиц PL/SQL Итоги 4 SQL в PL/SQL SQL-операторы Использование SQL в PL/SQL DML в PL/SQL SELECT INSERT UPDATE DELETE Условие WHERE Имена переменных Сравнение символов Ссылки на таблицы Связи баз данных Синонимы Псевдостолбцы CURRVAL и NEXTVAL LEVEL ROWID ROWNUM GRANT, REVOKE и привилегии Объектные и системные привилегии GRANT и REVOKE GRANT REVOKE Роли Управление транзакциями COMMIT и ROLLBACK 52 52 52 53 54 55 56 56 57 59 59 59 60 61 61 62 62 63 64 64 65 66 68 69 70 70 71 71 73 73 74 74 74 75 75 75 76 76 77 77 77 77 78 79 Точки сохранения Транзакции и блоки Итоги 5 Встроенные SQL-функции Введение Символьные функции, возвращающие символьные значения CHR CONCAT INITCAP LOWER LPAD LTRIM NLS INITCAP NLS LOWER NLS UPPER REPLACE RPAD RTRIM SOUNDEX SUBSTR SUBSTRB TRANSLATE UPPER Символьные функции, возвращающие числовые значения ASCII INSTR INSTRB LENGTH LENGTHB NLSSORT Числовые функции ABS ACOS ASIN ATAN ATAN2 CEIL COS COSH EXP FLOOR LN LOG MOD 80 80 81 83 84 84 84 85 85 85 86 86 87 87 88 88 89 89 90 90 91 91 92 92 92 93 93 94 94 94 95 95 95 95 96 96 96 97 97 97 98 98 98 98 POWER ROUND SIGN SIN SINH SQRT TAN TANH TRUNC Временные функции ADD_MONTHS I.AST_DAY MONTHS BETWEEN NEW_TIME NEXT_DAY ROUND SYSDATE TRUNC Арифметические операции с датами Функции преобразования CHARTOROWID CONVERT HEXTORAW RAWTOHEX ROWIDTOCHAR TO_CHAR (даты) ТО_CHAR (метки) ТО_CHAR (числа) ТО_DATE ТО_LABEL ТО_MULTI BYTE ТО_NUMBER TO_SINGLE_BYTE Групповые функции AVG COUNT GLB LUB МАХ MIN STDDEV SUM VARIANCE Другие функции 99 99 99 100 100 100 101 101 101 101 102 102 102 103 103 104 104 105 105 106 106 106 107 107 юа 108 ПО 110 112 112 112 112 113 113 113 114 114 114 115 115 115 116 116 116 BFILENAME DECODE DUMP EMPTY_GLOB/EMPTY_BLOB GREATEST GREATEST_LB LEAST LEAST_UB NVL UID USER USERENV VSIZE PL/SQL в работе: печать чисел прописью Итоги 6 Курсоры Определение курсора Обработка явных курсоров Объявление курсора Открытие курсора Считывание строк из курсора Закрытие курсора Курсорные атрибуты Параметризованные курсоры Обработка неявных курсоров Циклы выборки Простые циклы Циклы WHILE Курсорные циклы FOR NO DATA FOUND и %NOTFOUND Курсоры SELECT FOR UPDATE FOR UPDATE WHERE CURRENT OF Размещение оператора COMMIT при считывании строк Курсорные переменные Объявление курсорной переменной Ограниченные и неограниченные курсорные переменные Выделение памяти курсорным переменным Использование EXEC SQL ALLOCATE Автоматическое выделение памяти Открытие курсорной переменной для запроса Закрытие курсорных переменных Пример курсорной переменной 1 Пример курсорной переменной 2 116 117 117 119 119 119 119 120 120 120 121 121 122 122 130 131 132 132 133 133 134 135 135 138 138 140 140 142 143 144 144 144 145 146 147 147 148 149 149 149 149 150 150 152 Ограничения на использование курсорных переменных Итоги 7 Подпрограммы: процедуры и функции Создание процедур и функций Создание процедуры Параметры и их виды Тело процедуры Ограничения на формальные параметры Позиционное и именное представления Значения параметров по умолчанию Создание функций Описание функций Оператор RETURN Свойства функций Исключительные ситуации, устанавливаемые в подпрограммах Удаление процедур и функций Размещение подпрограмм Хранимые подпрограммы и словарь данных Локальные подпрограммы Предварительное объявление Хранимые и локальные подпрограммы Зависимости в подпрограммах Определение зависимостей Модель временных меток Модель подписей Привилегии и хранимые подпрограммы Привилегия EXECUTE Хранимые подпрограммы и роли Итоги 8 Модули Модули Описание модуля Тело модуля Модули и области действия Переопределение модульных подпрограмм Инициализация модуля Модули и зависимости Использование хранимых функций в SQL-операторах Уровни строгости Прагма RESTRICT_REFERENCES Параметры по умолчанию PL/SQL в работе: экспортер схем PL/SQL Итоги 9 Триггеры 153 154 155 156 157 157 159 160 161 163 164 166 166 167 167 168 169 169 170 172 173 173 175 175 176 177 177 177 180 181 182 182 183 185 185 187 189 191 191 193 195 195 204 205 Создание триггеров Элементы триггера Имена триггеров Типы триггеров Триггеры INSTEAD OF Ограничения, налагаемые на триггеры Триггеры и словарь данных Представления словаря данных Удаление и запрещение триггеров P-код триггера Порядок активизации триггера Использование :old и :new в строковых триггерах Условие WHEN Использование триггерных предикатов INSERTING, UPDATING и DELETING Изменяющиеся таблицы Пример изменяющейся таблицы Как избежать ошибок, связанных с изменяющимися таблицами PL/SQL в работе: реализация каскадного обновления данных Состав утилиты uc.sql demobld.sql unindex.sql generate.sql Функционирование утилиты Итоги 10 Обработка ошибок Понятие исключительной ситуации Объявление исключительных ситуаций Исключительные ситуации, определяемые пользователями Стандартные исключительные ситуации Установление исключительных ситуаций Обработка исключительных ситуаций Обработчик OTHERS Прагма EXCEPTION_INIT Использование функции RAISE_APPLICATION_ERROR Передача исключительных ситуаций Исключительные ситуации, устанавливаемые в выполняемом разделе Пример 1 Пример 2 Пример 3 Исключительные ситуации, устанавливаемые в разделе объявлений Пример 4 206 207 207 208 208 209 209 209 210 210 210 212 214 214 216 217 218 220 221 222 222 223 224 224 228 229 230 231 231 232 234 234 236 239 240 242 242 243 244 244 245 245 Пример 5 Исключительные ситуации, устанавливаемые в разделе исключительных ситуаций Пример 6 Пример 7 Пример 8 Рекомендации по использованию исключительных ситуаций Область действия исключительной ситуации Недопущение необрабатываемых исключительных ситуаций Обнаружение ошибок PL/SQL в работе:универсальный обработчик ошибок Итоги 11 Объекты Вступление Основы объектно-ориентированного программирования Абстракция Объекты и экземпляры объектов Объектно-реляционные базы данных Объектные типы Создание объектных типов Объявление и инициализация объектов Инициализация объектов NULL-объекты и NULL-атрибуты Предварительное объявление типов Методы Вызов метода Ключевое слово SELF Использование атрибута %TYPE с объектами Исключительные ситуации и атрибуты объектных типов Изменение и удаление типов ALTER TYPE ... COMPILE ALTER TYPE ... REPLACE AS OBLECT DROP TYPE Зависимости объектов Объекты в базе данных Размещение объектов Устойчивые и неустойчивые объекты Идентификаторы объектов и ссылки на объекты Объекты в операторах DML INSERT UPDATE DELETE Объекты-столбцы в операторах SELECT Объекты-строки в операторах SELECT 245 245 245 246 247 248 248 249 249 250 258 259 260 260 261 261 261 262 262 264 264 264 265 265 267 268 268 269 270 270 270 271 272 273 273 273 275 275 275 275 276 276 277 Конструкция RETURNING Методы MAP и ORDER MAP ORDER Рекомендации по использованию методов MAP и ORDER Итоги 12 Сборные конструкции Вложенные таблицы Объявление вложенной таблицы Инициализация таблиц Добавление элементов в существующую таблицу Вложенные таблицы в базе данных Работа с таблицей целиком Работа с отдельными строками Вложенные и индексные таблицы Изменяемые массивы Объявление изменяемого массива Инициализация изменяемых массивов Работа с элементами изменяемых массивов Изменяемые массивы в базе данных Работа с хранимыми изменяемыми массивами Изменяемые массивы и вложенные таблицы Методы сборных конструкций EXISTS COUNT LIMIT FIRST и LAST NEXT и PRIOR EXTEND TRIM DELETE Итоги 13 Среды выполнения программ PL/SQL Различные системы поддержки PL/SQL Замечания относительно PL/SQL на станции клиента PL/SQL на сервере SQL*Plus Управление блоками в SQL*Plus Переменные подстановки Переменные привязки SQL*Plus Вызов хранимых процедур с помощью EXECUTE Использование файлов Использование команды SHOW ERRORS Предкомпиляторы Oracle 279 279 279 280 281 281 283 284 284 284 286 286 288 290 290 290 291 291 291 292 292 294 294 294 295 296 296 296 297 299 300 302 303 304 306 306 306 306 307 308 309 309 310 311 Переменные привязки в предкомпиляторах Встраивание блока в программу Переменные-индикаторы Обработка ошибок Параметры, необходимые для работы предкомпилятора OCI Рекомендации по использованию блоков PL/SQL в OCI Структура вызовов OCI SQL-Station Среда функционирования кодировщика Вызов хранимой процедуры Выполнение SQL-сценария PL/SQL на станции клиента Назначение клиентской системы Oracle Forms PL/SQL Editor Object Navigator Procedure Builder Область просмотра Область командной строки Отладка PL/SQL в диалоговом режиме Оболочка PL/SQL Запуск оболочки Входные и выходные файлы Проверка синтаксиса и семантики Рекомендации по работе с оболочкой Итоги 14 Тестирование и отладка Диагностика неисправностей Рекомендации по отладке программ Поиск места возникновения ошибки Определение вида ошибки Сокращение программы для построения тестового примера Создание среды тестирования Модуль Debug Ввод данных в тестовые таблицы Ситуация 1 Ситуация 1: модуль Debug Ситуация 1: использование модуля Debug Ситуация 1: комментарии DBMS_OUTPUT Модуль DBMS_OUTPUT Процедуры в DBMS_OUTPUT Использование модуля DBMS_OUTPUT 311 312 312 313 314 314 315 315 317 318 319 320 321 321 322 322 323 323 323 323 324 325 325 325 326 326 326 327 328 328 328 328 328 328 329 329 329 331 332 336 336 336 337 338 Ситуация 2 Ситуация 2: модуль Debug Ситуация 2: использование модуля Debug Ситуация 2: комментарии Отладчики PL/SQL Procedure Builder Ситуация 3 Ситуация 3: отладка с помощью Procedure Builder Ситуация 3: комментарии SQL-Station Ситуация 4 Ситуация 4: Отладчик SQL-Station Ситуация 4: комментарии Сравнение Procedure Builder и SQL-Station Методологии программирования Модульное программирование Нисходящее проектирование Абстрактное представление данных Итоги 15 Динамический PL/SQL Введение Статический и динамический SQL Обзор модуля DBMS_SQL Обработка операторов DML, не являющихся запросами, и операторов DDL Открытие курсора Грамматический разбор оператора Привязка входных переменных Выполнение оператора Закрытие курсора Пример Обработка операторов DDL Обработка запросов Грамматический разбор оператора Определение выходных переменных Считывание строк Запись результатов в переменные PL/SQL Пример Обработка блоков PL/SQL Грамматический разбор оператора Считывание значений выходных переменных Пример Использование параметра out_value_size PL/SQL в работе: выполнение произвольных хранимых процедур 339 340 341 344 344 345 345 346 349 349 350 351 352 353 353 353 354 355 355 357 358 358 359 362 362 362 363 365 365 365 366 367 368 368 370 370 372 374 374 375 376 377 378 Новые возможности DBMS_SQL в PL/SQL 8.0 Грамматический разбор больших строк символов SQL Обработка массивов с помощью DBMS SQL BIND ARRAY DEFINE_ARRAY Пример обработки массивов Описание списка выбора Другие процедуры Считывание данных типа LONG DEFINE_COLUMN_LONG COLUMN_VALUE_LONG Дополнительные функции по обработке ошибок LAST_ERROR_POSITION LAST_ROW_COUNT LAST_ROW_ID LAST_SQL_FUNCTION_CODE IS_OPEN PL/SQL в работе: запись данных LONG в файл Привилегии и DBMS_SQL Привилегии, необходимые для работы с DBMS_SQL Роли и DBMS_SQL Сравнение DBMS_SQL с другими динамическими средствами Описание списка выбора Обработка массивов Операции над фрагментами данных типа LONG Различия в интерфейсах Советы и рекомендации Повторное использование курсоров Полномочия Операции DDL и зависание Итоги 16 Взаимодействие между соединениями DBMS.PIPE Посылка сообщений PACK_MESSAGE SEND_MESSAGE Получение сообщений RECEIVE_MESSAGE NEXT_ITEM_TYPE UNPACK_MESSAGE Создание программных каналов и управление ими Программные каналы и разделяемый пул Общие и частные программные каналы Процедура PURGE 385 385 :386 336 387 .388 390 393 393 393 .393 394 394 394 394 394 395 395 397 397 397 398 398 398 398 399 399 399 399 399 399 401 402 405 405 406 406 407 407 408 408 408 408 409 Привилегии и безопасность Частные каналы Установление протокола связи Форматирование данных Адресация данных Пример Debug.pc Модуль Debug Комментарии Модуль DBMS_ALERT Посылка оповещений Получение оповещений Регистрация Ожидание конкретного оповещения Ожидание любого из оповещений Другие процедуры Отмена регистрации Интервалы опроса Оповещения и словарь данных Сравнение модулей DBMS_PIPE и DBMS_ALERT Итоги 17 Улучшенная организация очередей Oracle Введение Компоненты средства Advanced Queuing Операция ENQUEUE Операция DEQUEUE Очереди Таблицы очередей Агенты Менеджер времени Реализация Advanced Queuing Операции над очередями Вспомогательные типы SYS.AQ$_AGENT AQ$_RECIPIENT_LIST_Т MESSAGE_PROPERTIES_Т ENQUEUE_OPTIONS_Т DEQUEUE_OPTIONS_T Константы перечислимого типа ENQUEUE DEQUEUE Администрирование очередей Подпрограммы модуля DBMS_AQADM CREATE_QUEUE_TABLE 409 410 410 411 411 411 411 414 416 417 417 417 417 418 418 419 419 419 419 420 422 423 424 424 424 425 425 425 425 425 426 426 426 426 427 427 428 429 430 430 431 432 432 432 DROP_QUEUE_TABLE CREATE_QUEUE DROP_QUEUE ALTER_QUEUE START_QUEUE STOP_QUEUE ADD_SUBSCRIBER REMOVE_SUBSCRIBER QUEUE_SUBSCRIBERS GRANT_TYPE_ACCESS START_TIME_MANAGER STOP_TIME_MANAGER Привилегии на работу с очередями AO_ADMINISTRATOR_ROLE AQ_USER_ROLE Доступ к объектным типам Oracle Advanced Queuing Очереди и словарь данных Представление для таблицы очередей DBA_QUEUE_TABLES/USER_QUEUE_TABLES DBA_QUEUES/USER_QUEUES Подробные примеры Создание очередей и таблиц очередей Простая постановка в очередь и простой вывод из очереди Очистка очереди Постановка в очередь и вывод из очереди по приоритету Постановка в очередь и вывод из нее при помощи идентификатора сообщения или идентификатора корреляции Просмотр очереди Работа с очередями исключительных ситуаций Удаление очередей Итоги 18 Задания для баз данных и файловый ввод/вывод Задания для баз данных Фоновые процессы Выполнение заданий SUBMIT RUN Неработоспособные задания Удаление задания Изменение задания Просмотр заданий в словаре данных Среды выполнения заданий Файловый ввод/вывод Безопасность 433 434 435 435 436 436 436 436 436 437 437 437 437 437 437 437 437 437 438 439 439 439 441 442 443 445 447 449 451 452 453 454 454 455 455 457 458 458 458 459 459 459 459 Безопасность базы данных Безопасность операционной системы Исключительные ситуации, устанавливаемые в UTL_FILE Открытие и закрытие файлов FOPEN FCLOSE IS_OPEN FCLOSE_ALL Файловый вывод PUT NEW_LINE PUT_LINE PUTF FFLUSH Файловый ввод Примеры Модуль Debug Загрузка информации о студентах Печать характеристик студентов Итоги 19 Программа Oracle Webserver Среда Webserver Агент PL/SQL Описатель соединения с базой данных Сравнение CGI и WRB Указание параметров процедур Web-пакет PL/SQL НТР и HTF Печать Константы Заголовок Тело Списки Форматирование символов Физическое форматирование Формы Таблицы OWA_UTIL Утилиты HTML Утилиты динамического SQL Временные утилиты OWA_IMAGE OWA_COOKIE Типы данных 459 460 461 461 461 462 462 462 463 463 463 463 464 465 465 465 465 467 469 472 473 474 475 475 476 476 478 478 479 480 480 480 482 484 485 485 488 490 490 491 494 496 498 498 SEND GET GET_ALL REMOVE Пример Среды разработки процедур OWA OWA_UTIL.SHOWPAGE SQL-Station Coder Итоги 20 Внешние процедуры Понятие внешней процедуры Порядок вызова внешней процедуры Создание процедуры Конфигурирование прослушивающего процесса SQL*Net Создание библиотеки Создание процедуры-оболочки Отображение параметров Сравнение типов данных PL/SQL и типов данных C Виды параметров Свойства параметров Внешние функции и модульные процедуры Значения, возвращаемые функциями Переопределение RESTRICT_REFERENCES Обратные вызовы базы данных Служебные подпрограммы OCIExtProcRaiseExcp OCIExtProcRaiseExcpWithMsg OCIExtProcAllocCallMemory Выполнение SQL-операторов во внешней процедуре OCIExtProcGetEnv Ограничения Советы, рекомендации и ограничения Отладка внешних процедур Прямой вызов из С Соединение с процессом extproc с помощью отладчика Рекомендации Ограничения Итоги 21 Большие объекты Понятие объекта LOB Хранение объектов LOB Объекты LOB в DML Инициализация столбца LOB 499 499 499 499 500 501 501 502 502 503 504 505 505 506 508 509 510 511 513 514 516 516 517 517 517 517 518 519 519 521 521 521 521 521 521 521 523 523 524 525 526 527 528 528 Пример Работа с объектами BFILE Каталоги Привилегии, необходимые для работы с каталогами Каталоги в словаре данных Удаление каталогов Открытие и закрытие объектов BFILE Объекты BFILE в DML Инициализация столбцов BFILE Сравнение семантики копирования и ссылочной семантики Удаление локаторов объектов BFILE Модуль DBMS_LOB Подпрограммы DBMS_LOB APPEND COMPARE COPY ERASE FILECLOSE FILECLOSEALL FILEEXISTS FILEGETNAME FILEISOPEN FILEOPEN GETLENGTH INSTR LOADFROMFILE READ SUBSTR TRIM WRITE Исключительные ситуации, устанавливаемые подпрограммами модуля DBMS_LOB Сравнение DBMS_LOB и OCI PL/SQL в работе: копирование данных LONG в объект LOB Итоги 22 Производительность и настройка Разделяемый пул Структура экземпляра Oracle Процессы Память Файлы Функционирование разделяемого пула Сбрасывание содержимого разделяемого пула Триггеры и разделяемый пул 528 529 529 530 530 530 530 530 530 531 531 532 532 533 533 534 535 536 536 536 536 536 537 537 537 538 541 542 543 543 544 544 545 547 549 550 550 550 551 552 552 553 553 Разделяемый пул и многопоточный сервер Определение размера разделяемого пула Размеры хранимых подпрограмм Память сеанса Закрепление объектов KEEP UNKEEP SIZES Настройка SQL-операторов Определение плана выполнения EXPLAIN PLAN Утилита TKPROF SQL-Station Plan Analyzer Использование плана NESTED LOOP TABLE ACCESS(FULL) TABLE ACCESS(BY ROWID) Работа с сетью Использование клиентского PL/SQL Недопущение повторного грамматического разбора Обработка массивов Итоги Приложения А Зарезервированные слова PL/SQL В Руководство по работе со встроенными модулями DBMS Создание модулей Описание модулей DBMS_ALERT DBMS_APPLICATION_INFO SET_MODULE READ_MODULE SET_ACTION SET_CLIENT_INFO READ_CLIENT_INFO DBMS_AQ и DBMS_AQADM DBMS_DEFER, DBMS_DEFER_SYS и DBMS_DEFER_QUERY DBMS_DDL ALTER_COMPILE ANALYZE_OBJECT DBMS_DESCRIBE DESCRIBE_PROCEDURE DBMS_JOB DBMS_LOB DBMS_LOCK 553 554 554 554 555 555 555 555 556 556 556 557 559 561 561 561 561 561 562 562 562 562 563 567 568 569 569 569 569 569 569 569 569 570 570 570 570 570 571 571 573 573 573 ALLOCATE_UNIQUE REQUEST CONVERT RELEASE SLEEP DBMS_OUTPUT DBMS_PIPE DBMS_REFRESH и DBMS_SNAPSHOT DBMS_REPCAT, DBMS_REPCAT_AUTH и DBMS_REPCAT_ADMIN DBMS_ROWID DBMS_SESSION SET_ROLE SET_SQL_TRACE SET_NLS CLOSE_DATABASE_LINK SET_LABEL SET_MLS_LABEL_FORMAT RESET_PACKAGE UNIQUE_SESSION_ID DBMS_SHARED_POOL DBMS_SQL DBMS_TRANSACTION Команды SET TRANSACTION Команды ALTER SESSION ADVISE Команды COMMIT Команды ROLLBACK и SAVEPOINT BEGIN_DISCRETE_TRANSACTION PURGE_MIXED LOCAL_TRANSACTION_ID STEP_ID DBMS_UTILITY COMPILE_SCHEMA ANALYZE_SCHEMA FORMAT_ERROR_STACK FORMAT_CALL_STACK IS_PARALLEL_SERVER GET_TIME NAME_RESOLVE PORT_STRING UTL_FILE С Глоссарий средств PL/SQL D Словарь данных Понятие словаря данных 573 573 574 575 575 575 575 576 576 576 576 576 576 576 576 576 577 577 577 577 577 577 577 577 578 578 578 578 578 578 578 578 579 579 579 579 579 579 580 580 581 593 594 Соглашения по именованию Полномочия Представления словаря all_*/user_*/dba_* Dependencies (зависимости) Collections (сборные конструкции) Compile Errors (ошибки компиляции) Directories (каталоги) Jobs (задания) Libraries (библиотеки) LOBs (большие объекты) Object Methods (объектные методы) Object Method Parameters (параметры объектных методов) Object Method Results (результаты объектных методов) Object References (ссылки на объекты) Object Type Attributes (атрибуты объектных типов) Schema Objects (объекты схем) Source Code (исходный программный текст) Tables (таблицы) Table Columns (столбцы таблиц) Triggers (триггеры) Trigger Columns (столбцы триггеров) Views (представления) Другие представления словаря dbms_alert_info dict_columns 594 594 595 595 596 596 597 597 598 599 599 600 600 601 601 601 602 602 604 605 606 606 606 606 607