Программирование >>  Oracle 

1 ... 375 376 377 [ 378 ] 379 380 381 ... 469



Основные стандартные

пакеты

В этом разделе книги будут рассмотрены стандартные пакеты в базе данных, которых, по моему мнению, должен знать каждый. Все эти пакеты описаны в руководстве OracleSi Supplied PL/SQL Packages Reference. B фирменной документации обычно описаны точки входа (общедоступные процедуры и функции) стандартных пакетов и использование каждой функции/процедуры. Я же рассмотрю подробно, когда имеет смысл использовать тот или иной пакет. Не вдаваясь глубоко в работу каждой процедуры, я уделю внимание наиболее часто используемым точкам входа и продемонстрирую, как они используются. Исчерпывающий список содержащихся в каждом пакете процедур и подробное описание параметров вы сможете найти в упомянутом документе.

Освоив это приложение, вы будете хорошо ориентироваться в назначении стандарт-н1х пакетов. Мы изучим не все пакеты. Это не означает, что остальные пакеты менее полезны, просто при разработке они используются редко.

Мы рассмотрим пакеты, описанные в приложении.

DBMS ALERT и DBMS PIPE. Средства межпроцессного взаимодействия в базе данных. Пакет DBMSALERT можно использовать для уведомления всех заинтересованных сеансов об определенном событии. Пакет DBMS PIPE позволяет двум сеансам взаимодействовать, аналогично тому, как это происходит через со-кет TCP/IP.

DBMS APPLICATION INFO. Позволяет приложению записать полезную информацию в представления V$. Незаменим в случае контроля действий хранимой процедуры и записи другой информации.

DBMS JAVA. PL/SQL-пакет, используемый для работы с хранимыми процедурами на языке Java.



1558 Приложение А

DBMS JOB. Планировщик заданий в базе данных. Используется, если необходимо выполнять хранимую процедуру, например, ежесуточно в 2 часа ночи или просто для выполнения какого-либо действия в фоновом режиме.

DBMS LOB. Пакет для работы с большими объектами (Large OBjects - LOB) в

базе данных.

DBMS LOCK. Пакет для создания пользовательских блокировок, независимых от блокировок уровня строки или таблицы, устанавливаемых сервером Oracle.

DBMS LOGMNR. Пакет для просмотра и анализа содержимого активных ур-налов повторного выполнения.

DBMS OBFUSCATION TOOLKIT. Обеспечивает шифрование данных в базе.

DBMS OUTPUT. Обеспечивает простые средства вывода информации на экран

из PL/SQL для среды SQL*Plus и SVRMGRL.

DBMS PROFILER. Профилировщик исходного кода PL/SQL, встроенный в базу данных.

DBMS UTILITY. Сборная солянка полезных процедур.

UTL FILE. Обеспечивает средства ввода-вывода текстовых (а в Oracle 9.2.x и двоичных - прим. научн.ред.) файлов в PL/SQL. Позволяет читать и записывать текстовые файлы на сервере с помощью PL/SQL.

UTL HTTP. Обеспечивает работу по протоколу HTTP (Hyper Text Transfer Protocol - протокол передачи гипертекста) из среды PL/SQL. Позволяет загружать Web-страницы в PL/SQL.

UTL RAW. Обеспечивает преобразование данных типа RAW в VARCHAR2, и на-

оборот. Используется для работы с протоколом TCP/IP, при обработке больших объектов типа BLOB и BFILE, а также для шифрования.

UTL SMTP. Обеспечивает работу по протоколу SMTP (Simple Mail Tnsfer Protocol - простой протокол передачи электронной почты) из среды PL/SQL. В частности, позволяет послать сообщение по электронной почте из PL/SQL-под-программы.

UTL TCP. Предоставляет средства работы с сокетами TCP/IP в языке PL/SQL.

Позволяет из PL/SQL-кода подключиться к любой службе TCP/IP.

Когда используются стандартные пакеты

Причина использования стандартных пакетов проста: гораздо проще разрабатывать и сопровождать код, использующий стандартные средства, чем создавать их самому. корпорация Oracle поставляет пакет для определенных целей (например, шифрования данных), не имеет смысла писать такой пакет самому. Часто я сталкиваюсь с тем, разработчики по незнанию создают средства, уже существующие в базе данных. Знание того, какие готовые инструментальные средства имеются, существенно упрощает разработку.



Основные стандартные пакеты 1559

O стандартных пакетах

Имена всех стандартных пакетов Oracle начинаются с префиксов DBMS или UTL . Имена пакетов, созданных разработчиками серверн1х технологий (Server Technologies - теми, кто писал ядро базы данных), обычно начинаются с префикса DBMS . Пакеты с именами, начинающимися с UTL , происходят из других источников. В качестве примера можно назвать UTL HTTP - пакет для выполнения HTTP-запросов из PL/SQL (для получения Web-страниц и т.п.). Подразделение по разработке сервера приложений (Application Server Division) корпорации Oracle создало этот пакет для поддержки механизма ICX (Inter-Cartridge eXchange - обмен данными между картриджами) в сервере OAS (Oracle Application Server - сервер приложений Oracle), который сейчас заменен сервером iAS, (internet Application Server - сервер приложений Internet). Это различие имен для разработчиков практического значения не имеет - просто интересно отметить.

Большинство этих пакетов хранится в базе данных в скомпилированном, скрытом (wrapped) формате. Благодаря этому код защищен от любопытных глаз. Можно увидеть спецификацию пакета, но не реализацию. Если выбрать из базы данных код тела пакета DBMSOUTPUT, будет получено примерно следующее:

tkyte@TKYTE816> select text

2 from all source

3 where name = DBMS OUTPUT

4 and type = PAGKAGE BODY

5 and line < 10

6 order by line

TEXT

package body dbms output wrapped 0

abcd abcd abcd abcd abcd abcd abcd

9 rows selected.

Как видите, пользы от этого мало. Можно, однако, выбрать спецификацию пакета.*

tkyte@TKYTE816> select text

2 from all source

3 where name = DBMS OUTPUT

4 and type = PAGKAGE

5 and line < 26

* В базе данных, естественно, все комментарии в спецификации - на английском. Оригинал можно получить, выполнив представленный ниже оператор SELECT. - Прим. научн. ред.



1 ... 375 376 377 [ 378 ] 379 380 381 ... 469

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика