ВУЗ:
Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »