Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Fiore
1

Проблема с триггером

19.01.2012, 23:38. Показов 1090. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Триггер для таблицы flights

FLIGHT_ID NUMBER
DEPARTUREDATE DATE
ARRIVALDATE DATE
ACTUALBUSINESS NUMBER
ACTUALECONOMIC NUMBER
ROUTE_ID NUMBER
CREW_ID NUMBER

Записывает информацию об изменениях в flights_log

RECORD_ID NUMBER
USER_NAME VARCHAR2(8)
CHANGE_DATE DATE
CHANGE_TYPE VARCHAR2(6)
FLIGHTID NUMBER

и в flights_arhive

RECORD_ID NUMBER
FLIGHTID NUMBER
DEPARTUREDATE DATE
ARRIVALDATE DATE
ACTUALBUSINESS NUMBER
ACTUALECONOMIC NUMBER
ROUTE_ID NUMBER
CREW_ID NUMBER
CANCELED_DATE DATE

Код триггера:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
CREATE OR REPLACE TRIGGER flights_change
    BEFORE INSERT OR DELETE OR UPDATE ON flights
    FOR EACH ROW
    DECLARE
        ChangeType VARCHAR2(6);
    BEGIN
        IF INSERTING THEN
            ChangeType := 'INSERT';
            :NEW.flight_id := flights_seq.NEXTVAL;
        ELSIF UPDATING THEN
            ChangeType := 'UPDATE';            
        ELSE
            ChangeType := 'DELETE';
        END IF;
        IF DELETING OR UPDATING THEN
            INSERT INTO flights_arhive
            VALUES (
                f_arhive_seq.NEXTVAL,
                :OLD.flight_id,
                :OLD.departuredate,
                :OLD.arrivaldate,
                :OLD.actualbusiness,
                :OLD.actualeconomic,
                :OLD.route_id,
                :OLD.crew_id,
                sysdate);
        END IF;
        INSERT INTO flights_log
        VALUES(
            f_log_seq.NEXTVAL,
            USER,
            SYSDATE,
            ChangeType,
            flight_id);
END flights_change;
Ошибка
Error at line 25: PL/SQL: SQL Statement ignored

Не могу понять, что тут не так?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2012, 23:38
Ответы с готовыми решениями:

Проблема с триггером
Может у кого будет время мне ответить, please. Есть таблица bb_basket, содержащая данные о...

Проблема с триггером
Я читал что триггер -это что то вроде пистолет производящий выстрел. Я с этим соласен. Но я...

Проблема с третим триггером
Что с триггером «Products_Sales»? Почему в результатах выводится "Товар «iPhone X» фирмы «Apple...

Проблема с триггером Запрос вернул больше одного значения
Доброго времени суток! Сделал триггер для свое базы данных Суть в чем При добавлении в...

3
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
20.01.2012, 07:02 2
при insert-e перечисляйте список полей таблицы, обязательно!
проверьте на правильность все ли таблицы существуют/правильно ли описаны.
0
Fiore
20.01.2012, 09:07 3
turbanoff, спасибо за ответ. Перечисление полей таблицы не помогло, но проблема была решена добавлением :old. перед flight_id
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
20.01.2012, 09:42 4
Кстати, при вопросе не забывай указывать версию Oracle. Поскольку, например, подобная конструкция допустима отнюдь не во всех:
Oracle 11 SQL
1
:NEW.flight_id := flights_seq.NEXTVAL;
0
20.01.2012, 09:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2012, 09:42
Помогаю со студенческими работами здесь

Сложность с триггером
Добрый день, помогите реализовать следующее. Есть две таблицы. Нужно реализовать следующее: Чтобы...

Непонятка с триггером
Столкнулся с непонятной разницей в поведении между HEF4013 и CD4013. Вторая не работает в...

Проблемы с триггером
У меня есть триггер, который генерирует id для новой записи в таблице. Когда я пытаюсь добавить...

Помгите с триггером
Всем привет, в общем есть таблица ID, Товар, Цена, Количество, нужно по клику на кнопке изменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru