Проблема с процедурой обновления Oracle - PullRequest
0 голосов
/ 14 июня 2010

Я хочу обновить следующую процедуру в таблице 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;

Это моя процедура.Я хочу обновить ключевое слово & count в таблице 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'

Не могли бы вы помочь мне решить эту проблему?

1 Ответ

5 голосов
/ 14 июня 2010

Это похоже на триггер ... Вам не нужно ": new" для acount / akeyword, и вам нужно передать ID, который вы хотите обновить. Например.

CREATE OR REPLACE
PROCEDURE UPDATE_KEYWORDS(
    AKEYWORD    IN VARCHAR2,
    ACOUNT      IN NUMBER,
    AKEYWORD_ID IN NUMBER)
AS
BEGIN
  UPDATE
    SEARCHABLE_KEYWORDS
  SET
    KEYWORD =  AKEYWORD
  , "COUNT"  = ACOUNT
  WHERE
    KEYWORD_ID = AKEYWORD_ID
END;

Я не уверен, почему у вас есть столбец с именем "COUNT" ... если вы не пытаетесь сделать что-то другое в этом обновлении, очевидно, что это неправильно с этим "или" там ..

...