www.citforum.ru |  |  |  | Сервер содержит море(!) аналитической информации!
Поиск | Рубрикатор | Новости сервера | Учебный центр | Книжный магазин | Реклама на сервере

19-23 февраля 2001г. Учебный курс "Системное администрирование OC UNIX"
| Закажите полную копию CitForum.ru на CD!

| Новый раздел: "Книги, которые мы выбираем"

CITFORUM.RU >>> БАЗЫ ДАННЫХ >>> /database/oraclepr/oraclepr_14.shtml

Другие функции

Функция | Возвращаемое значение
DECODE (expr, search1, return1, [search2, return2, ]...[default]) | Если expr равно search, возвращается соответствующий результат return. Если совпадающей пары не найдено, возвращается default.
DUMP(expr[, return_format [, start_position[, length]]]) | Expr во внутреннем формате Oracle
GREATEST(expr[, expr]...) | Наибольшее значение expr
LEAST(expr[, expr]...) | Наименьшее значение expr
NVL(expr1, expr2) | Возвращает expr2, если expr1 имеет пустое значение, в противном случае возвращает expr1.
UID | Целое число, которое уникально идентифицирует текущего пользователя.
USER | Имя текущего пользователя ORACLE.
USERENV(option) | Возвращает информацию о текущем сеансе. Аргументы помещаются в одиночных кавычках. Аргументы: ENTRYID, SESSIONSID, TERMINAL, LANGUAGE или LABEL.
VSIZE(expr) | Длина в байтах внутреннего проедставления для expr.

Подведем некоторые итоги: гибкость СУБД Oracle во многом определяется тем, что отдельные блоки кода PL/SQL программ можно хранить как объекты базы данных в формате хранимых процедур, функций и пакетов. Т.е. часть кода программы храниться там, где обрабатывается !!, т.е. на сервере.

Пакет - совокупность функций и процедур, объединенных по общему функциональному признаку, в тело пакетов входят процедуры и функции.

Процедура - объект базы данных обеспечивающий выполнение конкретных действий с передаваемыми параметрами процедуры.

Функция - объект базы данных обеспечивающий выполнение конкретных действий над параметрами функции и возвращающая результат такой обработки.

Для создания функций, процедур, пакетов базы данных используются следующие команды:

CREATE FUNCTION

Создает автономную хранимую функцию.

CREATE PACKAGE

Создает спецификацию для хранимого пакета.

CREATE PACKAGE BODY

Создает тело хранимого пакета.

img src="oracle_pr77.gif" border=0 WIDTH=461 height=26>

CREATE PROCEDURE

Создает автономную хранимую процедуру

Приведем примеры реализации пакетов, функций и процедур.

    /* ******Пакет обработки ошибок ********************* */
    create or replace package app_err as
    /* Получение текста аварийного завершения */
        function get_err  return varchar2;
    /* Установка текста аварийного завершения */
        procedure set_err ( error_text in varchar2);
    /* Установка текста аварийного завершения и само завершение */
        procedure raise_err ( error_text in varchar2);
     end app_err;
    create or replace package body app_err as
     app_err_text varchar2(32767);
     /* *********************************************************** */
     function get_err return varchar2
     is
       A varchar (32767);
     Begin
       A := app_err_text;
       app_err_text := null;
       Return ( A );
     End;
     /* *********************************************************** */
     procedure set_err(error_text in varchar2)
        is
     Begin
        app_err_text := error_text;
     End;
     /* ************************************************************** */
     procedure raise_err ( error_text in varchar2)
     is
     Begin
        app_err_text := error_text;
        raise_application_error (-20000, error_text);
     End;
     end app_err;
    /* ** Функция осуществляющая расшифровку пароля пользователя в БД ** */
    create or replace function password return varchar2 is
      name   varchar2(23);
      pass   varchar2(23);
      begin
      select ORANAME, CRYPT_PASSWORD
      into name, pass
      from USERS
      where USER_ORANAME = user;
      pass   := encrypt( pass, name );
      return( pass );
      end;
    /*Удаляется публичный синоним*/
    drop public synonym password;
    /*Создается публичный синоним*/
    create public synonym password for password;
    /* устанавливаем привелегии*/
    grant all on password to admin;

Назад | Содержание | Вперед

Реклама на сервере |

В начало | Наверх | Поиск | Рубрикатор | Новости сервера | Учебный центр | Книжный магазин

|  | Быстрый переход >>> |

Комментарии: info@citmgu.ru |  | Copyright ©

Design by Andre M. Erofeev