вставка значений нескольких столбцов в одно значение вставки? - PullRequest
1 голос
/ 24 октября 2011

Итак, у меня есть это университетское задание, в котором я должен создать триггер с именем bill_overdue.Когда строка, имеющая статус = просрочено, вставляется в накладную таблицы, строка вставляется в другую таблицу с именем message.

CREATE SEQUENCE AUTOINCREMENTMESSAGE
MINVALUE 100
START WITH 101
INCREMENT BY 1
CACHE 10
;

CREATE OR REPLACE TRIGGER BILL_OVERDUE
BEFORE INSERT ON INVOICE
FOR EACH ROW
WHEN (NEW.STATUS = 'Overdue')
BEGIN
INSERT INTO MESSAGE (MESSAGENO,MESSAGEDATE,ORIGIN,MESSAGE)
VALUES (AUTOINCREMENTMESSAGE.nextval,SYSDATE,USER,:NEW.DATEISSUED,:NEW.INVOICENO,:NEW.CAMPAIGNTITLE);
END;
/

Теперь, как вы можете видеть, я хочу добавить :new.dateissued, :new.invoiceno и:new.campaigntitle в одно поле (message). Теперь я знаю, что то, что я сделал, неправильно, но я попытался добавить круглые скобки вокруг него и т. Д., И, кажется, ничто не делает то, что я хочу.Как мне заставить это работать?Можно ли делать то, что я хочу, или я совершенно неправильно понял?

Ответы [ 2 ]

7 голосов
/ 24 октября 2011

Вы можете использовать объединение

:new.dateissued || ', ' || :new.invoiceno || ', ' || :new.campaigntitle
3 голосов
/ 24 октября 2011

Для Oracle вы также можете объединить, используя функцию CONCAT(), и вы можете попробовать

CONCAT(:NEW.DATEISSUED,:NEW.INVOICENO,:NEW.CAMPAIGNTITLE)

Возможно, вам придется преобразовать / преобразовать некоторые из этих значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...