Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггеры на View в 9.2 / 17 сообщений из 17, страница 1 из 1
25.06.2003, 13:45:06
    #32191197
Babrow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Помогите разобраться в проблеме. Создаю View, ставлю на нее триггер, а он через некоторое время 'слетает'. Т.е. его ПРОСТО НЕТ В БАЗЕ!!! Подскажите, что делать?
...
Рейтинг: 0 / 0
25.06.2003, 13:59:09
    #32191224
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
У меня было такое в 8.1.7. Как я понял, если триггер instead of становится инвалидным иногда найти его бывает сложно, но drop trigger отрабатывает прекрасно.
...
Рейтинг: 0 / 0
25.06.2003, 14:16:53
    #32191249
Babrow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
2 Gluk (Kazan)
>если триггер instead of становится инвалидным иногда найти его бывает сложно, но drop trigger отрабатывает прекрасно.

В смысле "сложно найти"? По крайней мере, он не срабатывает. Что нужно сделать, чтоб от этого глюка избавиться?
...
Рейтинг: 0 / 0
25.06.2003, 14:35:12
    #32191283
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Обычный тригер становится инвалидным, но его видно, скажем в DBA-студии и можно перекомпилировать. А эти тригеры у меня просто пропадали, спасало create or replace (но нужно было помнить название тригера). Тригер я использовал чтобы скрыть поле пароля в таблице Абсолюта, но дать возможность операторам менять его.
...
Рейтинг: 0 / 0
25.06.2003, 14:36:01
    #32191284
Babrow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Вроде бы разобрался...
Если View перекомпилить с ошибкой, то триггеры просто исчезают. Если ее не "трогать", то, видимо, все будет нормально.
...
Рейтинг: 0 / 0
25.06.2003, 16:05:10
    #32191433
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
После "перекомпиляции" view, даже без ошибки, триггер пропадёт. Потому что "перекомпиляция", это собственно говоря replace
...
Рейтинг: 0 / 0
25.06.2003, 16:12:43
    #32191452
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Вообще-то это не правильно IMHO

2 Violina есть ли в ЭТОМ какой-то тайный смысл ? К тебе взываю :)
...
Рейтинг: 0 / 0
25.06.2003, 16:27:48
    #32191471
Simon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
попробуйте писать

Код: plaintext
create or replace FORCE view ....
...
Рейтинг: 0 / 0
25.06.2003, 17:04:34
    #32191523
Александр Б
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
"2 Violina есть ли в ЭТОМ какой-то тайный смысл ? К тебе взываю :)"

Ну что я говорил - Ask Violina :=)
...
Рейтинг: 0 / 0
25.06.2003, 17:23:28
    #32191551
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Ну вот стоило раз пофилософствоать про то зачем нужен экспорт статистики без самих данных и вот пожалуйста:-)

Этот случай к сожалению не могу прокомментировать и большим интересом жду ответов экспертов! А что значит пропадают, их нет в dba_triggers?
...
Рейтинг: 0 / 0
25.06.2003, 17:32:19
    #32191570
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
2 Violina:

> А что значит пропадают, их нет в dba_triggers?

From SQL Reference manual:

OR REPLACE
Specify OR REPLACE to re-create the view if it already exists. You can use this clause to change the definition of an existing view without dropping, re-creating, and regranting object privileges previously granted on it. INSTEAD OF triggers defined in the view are dropped when a view is re-created.

SY
...
Рейтинг: 0 / 0
25.06.2003, 17:40:15
    #32191587
Babrow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
>А что значит пропадают, их нет в dba_triggers?
Так точно, пропадают и все )))

Я считаю, что очееень большое упущение, если это не баг. Мне это нужно для технологии MIDAS - там по-другому просто нельзя (без триггеров на VIEW).
Однако же чем строить триггер на таблицу, гораздо грамотнее, ИМХО, сделать VIEW и навесить на него.
...
Рейтинг: 0 / 0
25.06.2003, 18:42:08
    #32191671
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
to Gluk

Вот выяснилось.

INSTEAD OF triggers defined in the view are dropped when a view is re-created.

Если тебя интересует мое мнение по этому поводу, то я считаю такой подход слишком жестоким:-) И соглашусь с Babrow Я считаю, что очееень большое упущение, если это не баг.

А при alter view compile, тоже удаляется?

PS
Смотрела доку по 9.2 не нашла тему по поведению тригеров instead of в случае alter view.
...
Рейтинг: 0 / 0
26.06.2003, 00:39:48
    #32191794
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
2 Violina:

> я считаю такой подход слишком жестоким:-)

Well, you probably right Oracle could come up with some way to keep and recompile triggers when recreating view. At the same time one would not recreate a view unless view definition changed. And if it changed it could affect trigger logic (even if trigger still compiles OK). And by droping triggers Oracle kind of forces you to think about it.

SY.
...
Рейтинг: 0 / 0
26.06.2003, 09:19:43
    #32191889
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Ну Oracle-у виднее. Я понял, это не баг, а фича.
...
Рейтинг: 0 / 0
26.06.2003, 11:22:47
    #32192065
Babrow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
2 SY

C таким же успехом при добавлении к таблице поля, Оракл должен дропать, навешанные на нее триггеры.
У меня все триггеры в одну строчку (идет вызов процедуры из пакета), а если бы они были бы большимы? Если их много? Нужно где-то хранить скрипт для их создания? Постоянная синхронизация между скриптом и базой?
...
Рейтинг: 0 / 0
26.06.2003, 12:33:34
    #32192229
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры на View в 9.2
Вообще-то хранить скрипты всех писанных триггеров ОЧЕНЬ неплохая идея
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггеры на View в 9.2 / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]