У меня есть список значений, разделенных двоеточиями, которые хранятся в столбце varchar2
моей базы данных Oracle.Триггер базы данных Oracle APEX - проблемы со ссылками на столбцы базы данных
(Я понимаю, что хранение данных в виде списка, как это может быть не лучшая практика, но сейчас просто игнорировать этот факт.)
Вот соответствующие столбцы таблицы:
ORDER_TABLE(
ORDER_NUMBER number,
ORDER_PARTS_LIST varchar(4000))
PARTS_TABLE(
PART_NUMBER varchar(20),
ASSIGNED_ORDER_NUMBER number)
I имеет условный триггер:
create or replace trigger "ORDER_PARTS_T1"
BEFORE
insert or update or delete on "ORDER_TABLE"
for each row
begin
if :new.ORDER_PARTS_LIST LIKE '%'+PART_NUMBER+'%' then
update PARTS_TABLE set ASSIGNED_ORDER_NUMBER = :ORDER_NUMBER;
end if;
end;
Когда я запускаю этот триггер я получаю следующее сообщение об ошибке:
PLS-00201: identifier 'PART_NUMBER' must be declared
Что должно произойти в том, что проверяет триггер, который PART_NUMBERs
в PARTS_TABLE
, включены в ORDER_PARTS_LIST
, в ORDER_TABLE
, а затем вставляет ORDER_NUMBER
для растерянного строки в ORDER_TABLE
, в ASSIGNED_ORDER_NUMBER
колонку, от PARTS_TABLE
.
В конце концов, все ДЕТАЛИ в ЗАКАЗЕ должны быть помечены этим НОМЕРОМ ЗАКАЗА.
Это делает ЛЮБОЙ смысл ???
Я точно не знаю, как правильно определить переменные в этом триггере, чтобы он работал, и, честно говоря, у меня есть несколько сомнений относительно того, будет ли триггер делать то, что, как мне кажется, даже если они работают. ЛЮБЫЕ предложения или помощь в получении пускового функционала, как я определил, это должно быть здорово. Заранее спасибо.
Большое спасибо, сэр! Работал как шарм! – Spags
Как раз в качестве продолжения ... вы упомянули удаление, и я думаю, что вы правы, на самом деле нет причин для включения в него, поскольку записи, скорее всего, не будут удалены из базы данных. Однако есть вероятность, что PART_NUMBERS можно удалить из ORDER до того, как он будет отправлен для обработки. Есть ли простой способ обновить PARTS_TABLE для учетной записи, если часть была удалена из заказа? Мне нужен отдельный триггер с использованием OLD & NEW и т. Д.? – Spags
Возможно - я отредактировал свой ответ с предложением. –