Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / ошибка в триггере / 3 сообщений из 3, страница 1 из 1
19.07.2010, 00:05
    #36747336
alex1610
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в триггере
Здравствуйте. Помогите пожалуйста перевести триггер с oracle в db2.

рабочий триггер в oracle:

CREATE OR REPLACE TRIGGER car_in_train_tr
BEFORE INSERT OR UPDATE OF id_vehicle
ON Railway_car_in_train
for each row
DECLARE NUMROWS INTEGER;
BEGIN
SELECT COUNT(*)
INTO NUMROWS
FROM VEHICLE V,
VEHICLE_TYPE VT,
VEHICLE_CLASS VC
WHERE VC.VEHICLE_CLASS_NAME = '#####'
AND VT.ID_VEHICLE_CLASS = VC.ID_VEHICLE_CLASS
AND V.ID_VEHICLE_TYPE = VT.ID_VEHICLE_TYPE
AND :NEW.ID_VEHICLE = V.ID_VEHICLE;
IF (
NUMROWS = 0
)
THEN
raise_application_error(
-20002,
'Cannot insert car because vehicle does not exist.'
);
END IF;
END;

мой нерабочий вариант в db2(на INSERT):

CREATE TRIGGER CAR_IN_TRAIN_TR NO CASCADE
BEFORE INSERT ON RAILWAY_CAR_IN_TRAIN
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
DECLARE NUMROWS INTEGER;
SET NUMROWS= (SELECT COUNT(*)
FROM VEHICLE V ,
VEHICLE_TYPE VT,
VEHICLE_CLASS VC
WHERE VC.VEHICLE_CLASS_NAME = '#####'
AND VT.ID_VEHICLE_CLASS = VC.ID_VEHICLE_CLASS
AND V.ID_VEHICLE_TYPE = VT.ID_VEHICLE_TYPE
AND new.id_vehicle = V.ID_VEHICLE
);
IF (
NUMROWS = 0
)
THEN
SIGNAL SQLSTATE '20002' ( 'Cannot insert car because vehicle does not exist.' );
END IF;
END

В db2 начал работать совсем недавно, вышеизложенный триггер не компелируется. ошибка :
"NEW.ID_VEHICLE" недопустимо в контексте, где оно используется. LINE NUMBER=4.
SQLSTATE=42703. Не пойму в чем проблема(
...
Рейтинг: 0 / 0
19.07.2010, 03:52
    #36747390
mustaccio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в триггере
Попробуйте


Код: plaintext
1.
2.
3.
4.
CREATE TRIGGER CAR_IN_TRAIN_TR NO CASCADE 
BEFORE  INSERT  ON RAILWAY_CAR_IN_TRAIN  
REFERENCING NEW AS NEW
FOR EACH ROW  MODE DB2SQL 

Я так понимаю, средства совместимости с Oracle вы не используете.
...
Рейтинг: 0 / 0
19.07.2010, 15:05
    #36748339
alex1610
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в триггере
Спасибо, проблема была именно в этом.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / ошибка в триггере / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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