Лабораторные работы по курсу «Базы данных»



Pdf көрінісі
бет42/46
Дата12.05.2023
өлшемі0,79 Mb.
#92097
түріПрактикум
1   ...   38   39   40   41   42   43   44   45   46
Пример 7.5: 
Демонстрация обработки исключений: 
CREATE OR REPLACE FUNCTION tt(ii integer) RETURNS boolean 
AS $BODY$ 
DECLARE 
i integer := 100; 
result bool := true; 
BEGIN 
i:=i/ii; 
i:=sqrt(i); 
return result; 
EXCEPTION 
WHEN DIVISION_BY_ZERO THEN 
 
result := false; 
 return 
result; 
WHEN INVALID_ARGUMENT_FOR_POWER_FUNCTION THEN 
 
result := false; 
 return 
result; 
END; 
$BODY$ 
LANGUAGE 'plpgsql' VOLATILE; 
Таблицу констант (кодов) ошибок, возникающих в PostgreSQL, можно 
посмотреть в документации. Для этого запустите PgAdmin, запустите 
редактор SQL-запросов. В редакторе выберите пункт меню «Help»-«Help». 
Затем перейдите не раздел «Appendix A. PostgreSQL Error Codes». 


Вызов функций в теле процедуры 
При вызове функции PL/pgSQL из кода PL/pgSQL имя функции 
обычно включается в команду SQL SELECT или в команду присваивания: 
SELECT функция (.аргументы);
переменная := функция(аргументы); 
Подобный способ вызова функций при выборке и присваивании стал 
стандартным, поскольку любая функция PostgreSQL должна возвращать 
значение некоторого типа. Ключевое слово PERFORM позволяет вызвать 
функцию и проигнорировать возвращаемое значение: 
PERFORM функция (аргументы); 
PL/pgSQL и триггеры 
Определения триггеров PostgreSQL могут содержать ссылки на 
триггерные функции (то есть функции, которые должны вызываться при 
срабатывании триггера), написанные на языке PL/pgSQL. Триггер определяет 
операцию, которая должна выполняться при наступлении некоторого 
события в базе данных. 
Не путайте определение триггера с определением триггерной функции. 
Триггер определяется командой SQL CREATE TRIGGER, а триггерная 
функция определяется командой SQL CREATE FUNCTION. Синтаксис 
определения триггера следующий: 
CREATE FUNCTION функция () RETURNS opaque AS '
DECLARE
объявления;
BEGIN
команды;
END:
' LANGUAGE 'plpgsql'; 
Ниже приведен пример создания триггерной функции. Обратите 
внимание, что opaque заменено на “trigger”, что допустимо. 
Пример 7.6: 
Триггерная функция, которая автоматически для вставляемого значения 
поля считает его md5 сумму: 


Достарыңызбен бөлісу:
1   ...   38   39   40   41   42   43   44   45   46




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет