Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / HELP! / 2 сообщений из 2, страница 1 из 1
14.11.2008, 13:14
    #35654204
GALIKSVG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!
Есть две таблицы
TABLE "PHONES_CHECK"
"PHONE_NUM" VARCHAR2(40) NOT NULL,
"UP_DATE" DATE NOT NULL,
"ACTION" VARCHAR2(50) NOT NULL,
"ID" NUMBER NOT NULL

И

TABLE "STATEMENT"
"PHONE_NUM" VARCHAR2(40) NOT NULL,
"UP_DATE" DATE NOT NULL,
"ACTION" VARCHAR2(50) NOT NULL,
CONSTRAINT "STATEMENT_PK" PRIMARY KEY ("PHONE_NUM"),
CONSTRAINT "STATEMENT_UK" UNIQUE ("PHONE_NUM", "ACTION")
Необходимо чтобы данный триггер при inserte в таблицу PHONES_CHECK проверял есть такой же номер тел. или нету, если есть, то UPDATE таблицу STATEMENT, нету - INSERT новые данные.
CREATE OR REPLACE TRIGGER "PHONES_CHECK_ST_T32"
AFTER INSERT ON PHONES_CHECK
FOR EACH ROW
BEGIN
MERGE INTO statement s
USING (SELECT :new.PHONE_NUM PHONE_NUM, :new.ACTION ACTION, :NEW.UP_DATE UP_DATE FROM dual) t
ON (s.phone_num=t.PHONE_NUM)
WHEN MATCHED THEN UPDATE SET ACTION=t.ACTION, UP_DATE=t.UP_DATE
WHEN NOT MATCHED THEN INSERT (PHONE_NUM, ACTION, UP_DATE) VALUES (t.PHONE_NUM, t.ACTION, t.UP_DATE);
END;

Что здесь неправильно?
Заранее благодарен!
...
Рейтинг: 0 / 0
14.11.2008, 20:36
    #35655445
auriga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HELP!
все правильно, работает так как вы и описываете
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / HELP! / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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