Я хочу, чтобы обновить следующую процедуру в таблице Oracle, но это бросает ошибку:Oracle процедура обновления проблема
CREATE OR REPLACE PROCEDURE update_keywords (aKEYWORD IN VARCHAR2, aCOUNT IN NUMBER)
AS BEGIN
update searchable_keywords
set KEYWORD =:new.aKEYWORD or COUNT =:new.aCOUNT
where KEUWORD_ID = : old.KEYWORD_ID;
END;
Это моя процедура. Я хочу, чтобы обновить количество ключевых слов & в searchable_keywords
таблицы с keyword_id
(первичным ключом), но он бросает ошибку следующим образом:
LINE/COL ERROR
-------- -----------------------------------------------------------------
3/4 PL/SQL: SQL Statement ignored
4/17 PLS-00049: bad bind variable 'NEW.AKEYWORD'
4/31 PL/SQL: ORA-00933: SQL command not properly ended
4/41 PLS-00049: bad bind variable 'NEW.ACOUNT'
Может ли вы помочь мне решить эту проблему?
привет, я не yaking keyword_id в качестве входного параметра ..... это первичный идентификатор, и он автоматически добавляется – murali
Вы пытаетесь переместить код запуска в процедуру, которая будет вызываться из триггера? Если это так, вы не можете просто переместить текст в том числе: новые и: старые ключевые слова в процедуру, поскольку они имеют смысл только в триггерном коде. –
@murali - Вы выпускаете инструкцию UPDATE. Поэтому вам нужно знать путь доступа к строкам, которые вы хотите обновить. Следовательно, необходимо передать первичный ключ в процедуру. Я глубоко надеюсь, что вы не увеличиваете свой первичный ключ при каждом обновлении строки. – APC