Основы языка PL/SQL. Гаршина В.В - 42 стр.

UptoLike

Составители: 

42
из явного курсора, т. к. сервер Oracle снимает блокировку после заверше-
ния транзакции. Синтаксис предложения блокировки строк:
SELECT...FROM...FOR UPDATE
[OF column_reference] [NOWAIT];
Кроме того, можно использовать команду DELETE или UPDATE с
предложением WHERE CURRENT OF имя_курсора для ссылки на послед-
нюю строку, выбранную командой FETCH. Если используется это предло-
жение, курсор, на который делается ссылка
, должен существовать и со-
держать в запросе предложение FOR UPDATE. В противном случае воз-
никнет ошибка. Это предложение позволяет производить обновления и
удаления в текущей строке без явной ссылки на псевдостолбец ROWID.
3.3. Триггеры БД
Триггерыэто хранимые блоки PL/SQL, запуск которых осуществ-
ляется автоматически при наступлении какого-либо события.
Триггеры можно разделить на два типа:
– DML-триггеры, срабатывающие при выполнении команд DML к
таблицам данных;
– INSTEAD OF-триггеры для работы с представлениями.
Системные триггеры, принадлежащие непосредственно БД или
конкретной схеме и реагирующие на системные события (
команды DML,
DDL и т. д.)
Создать DML-триггер на таблицу можно с помощью команды CRE-
ATE TRIGGER:
CREATE [OR REPLACE] TRIGGER trigger_name
(BEFORE|AFTER)
(INSERT|UPDATE|DELETE)
[OR (INSERT|UPDATE|DELETE) …]
ON table
[FOR EACH ROW]
[WHEN (condition)]
Блок PL/SQL
из явного курсора, т. к. сервер Oracle снимает блокировку после заверше-
ния транзакции. Синтаксис предложения блокировки строк:

     SELECT...FROM...FOR UPDATE
     [OF column_reference] [NOWAIT];

     Кроме того, можно использовать команду DELETE или UPDATE с
предложением WHERE CURRENT OF имя_курсора для ссылки на послед-
нюю строку, выбранную командой FETCH. Если используется это предло-
жение, курсор, на который делается ссылка, должен существовать и со-
держать в запросе предложение FOR UPDATE. В противном случае воз-
никнет ошибка. Это предложение позволяет производить обновления и
удаления в текущей строке без явной ссылки на псевдостолбец ROWID.


     3.3. Триггеры БД

      Триггеры – это хранимые блоки PL/SQL, запуск которых осуществ-
ляется автоматически при наступлении какого-либо события.
      Триггеры можно разделить на два типа:
      – DML-триггеры, срабатывающие при выполнении команд DML к
таблицам данных;
      – INSTEAD OF-триггеры для работы с представлениями.
      – Системные триггеры, принадлежащие непосредственно БД или
конкретной схеме и реагирующие на системные события (команды DML,
DDL и т. д.)
      Создать DML-триггер на таблицу можно с помощью команды CRE-
ATE TRIGGER:

     CREATE [OR REPLACE] TRIGGER trigger_name
     (BEFORE|AFTER)
     (INSERT|UPDATE|DELETE)
        [OR (INSERT|UPDATE|DELETE) ]
     ON table
     [FOR EACH ROW]
     [WHEN (condition)]
     Блок PL/SQL
                                     42