PL/SQL Пакеты. Определение Пакет – это объект схемы данных, объединяющий набор типов, объектов и подпрограмм PL/SQL.

Презентация:



Advertisements
Похожие презентации
PL/SQL Хранимые процедуры и функции. Процедуры [CREATE [OR REPLACE]] PROCEDURE procedure_name[(parameter[, parameter]...)] {IS | AS} [local declarations]
Advertisements

МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ. Программная единица PL/SQL Именованные блоки Три основных категории Процедура Функция Пакет Хранятся в базе данных или обрабатываются.
Пример реализации приложения Программа отправки и анализа SMS-сообщений (через с WEB-интерфейсом.
ОБЗОР PL/SQL. Общие понятия PL/SQL – это дополнение стандартного языка SQL многими средствами, присущими современным языкам программирования. PL/SQL обладает.
PL/SQL Введение 2. Определение собственных типов SUBTYPE Имя_подтипа IS описание типа; Примеры: SUBTYPE my_type IS NATURAL NOT NULL; SUBTYPE Text IS VARCHAR2(1500);
Основы реляционных баз данных Лекция 6. Введение в SQL Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н апреля 2008.
A class is just a collection of variables--often of different types--combined with a set of related functions. The variables in the class are referred.
PL/SQL Курсоры в PL/SQL Неявные курсоры создаются PL/SQL неявно для всех команд DML и SELECT. Явные курсоры объявляются программистом, который присваивает.
Типы хранимых процедур System stored procedures User-defined stored procedures Temporary stored procedures.
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Operator Overloading Customised behaviour of operators Chapter: 08 Lecture: 26 & 27 Date:
Data Types in C. A Data Type A data type is –A set of values AND –A set of operations on those values A data type is used to –Identify the type of a variable.
Unit II Constructor Cont… Destructor Default constructor.
2005 Pearson Education, Inc. All rights reserved. 1 Object-Oriented Programming: Interface.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Динамический SQL (использование в Oracle). Виды предложений SQL МетодТип предложенияТребуемые вызовы пакета DBMS_SQL 1 Незапросные, нет базовых переменных,
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
Обработка исключений Гудов А.М., Завозкин С.Ю
1 © Luxoft Training 2012 Inner and anonymous classes.
PL/SQL Программная конструкция ОписаниеСреда выполнения Анонимный блок Неименованный блок PL/SQL, вставленный в приложение или созданный интерактивно.
Транксрипт:

PL/SQL Пакеты

Определение Пакет – это объект схемы данных, объединяющий набор типов, объектов и подпрограмм PL/SQL.

Структура пакета

Создание спецификации CREATE [OR REPLACE] PACKAGE package_name [AUTHID {CURRENT_USER | DEFINER}] {IS | AS} [PRAGMA SERIALLY_REUSABLE;] [collection_type_definition...] [record_type_definition...] [subtype_definition...] [collection_declaration...] [constant_declaration...] [exception_declaration...] [object_declaration...] [record_declaration...] [variable_declaration...] [cursor_spec...] [function_spec...] [procedure_spec...] [call_spec...] [PRAGMA RESTRICT_REFERENCES(assertions)...] END [package_name];

Создание тела пакета [CREATE [OR REPLACE] PACKAGE BODY package_name {IS | AS} [PRAGMA SERIALLY_REUSABLE;] [collection_type_definition...] [record_type_definition...] [subtype_definition...] [collection_declaration...] [constant_declaration...] [exception_declaration...] [object_declaration...] [record_declaration...] [variable_declaration...] [cursor_body...] [function_spec...] [procedure_spec...] [call_spec...] [BEGIN sequence_of_statements] END [package_name];]

Создание пакета Объявленные переменные в спецификации: public Объявленные переменные в теле: private

Пример создания спецификации CREATE OR REPLACE PACKAGE emp_actions AS -- spec TYPE EmpRecTyp IS RECORD (emp_id INT, salary REAL); CURSOR desc_salary RETURN EmpRecTyp; PROCEDURE hire_employee ( ename VARCHAR2, job VARCHAR2, mgr NUMBER, sal NUMBER, comm NUMBER, deptno NUMBER); PROCEDURE fire_employee (emp_id NUMBER); END emp_actions;

Пример создания тела пакета CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body CURSOR desc_salary RETURN EmpRecTyp IS SELECT empno, sal FROM emp ORDER BY sal DESC; PROCEDURE hire_employee ( ename VARCHAR2, job VARCHAR2, mgr NUMBER, sal NUMBER, comm NUMBER, deptno NUMBER) IS BEGIN INSERT INTO emp VALUES (empno_seq.NEXTVAL, ename, job, mgr, SYSDATE, sal, comm, deptno); END hire_employee; PROCEDURE fire_employee (emp_id NUMBER) IS BEGIN DELETE FROM emp WHERE empno = emp_id; END fire_employee; END emp_actions;

Пример работы с пакетом: begin dbms_output.put_line(my_package.my_var); my_package.employee_procedure; end;