Ошибка: ORA-02289 (2: 10): PL / SQL: ORA-02289 - PullRequest
1 голос
/ 31 января 2012

Я пишу Триггер для жабы. Но я сталкиваюсь с ошибкой типа

"[Error] ORA-02289 (2: 10): PL/SQL: ORA-02289: sequence does not exist". 

CREATE OR REPLACE TRIGGER ACTSINFO.USERMASTER_INSERT
BEFORE INSERT
ON ACTSINFO.USERMASTER
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
  SELECT USERMASTER_ID_SEQ.NEXTVAL INTO :NEW.ID FROM dual;
END;

Кто-нибудь может мне помочь? Я новичок в жабе.

1 Ответ

8 голосов
/ 31 января 2012

Quest Software - это всего лишь инструмент. В этом случае у вас есть точная ошибка о том, что пошло не так. Как говорится в сообщении, последовательность с именем USERMASTER_ID_SEQ не существует в вашей схеме .

Решением может быть добавление имени схемы (владельца) перед именем последовательности:

ACTSINFO.USERMASTER_ID_SEQ

Вы можете найти владельца по этому запросу:

select sequence_owner 
from all_sequences
where sequence_name = 'USERMASTER_ID_SEQ';

Если это не помогает, это означает, что у вас нет прав на последовательность или она действительно не существует. Так что либо вам нужно, чтобы владелец последовательности предоставил пользователю SELECT для него, либо вы должны создать последовательность в базе данных.

Для создания последовательности вы можете использовать графический интерфейс Toad. Или просто используйте оператор PL / SQL

CREATE SEQUENCE ACTSINFO.USERMASTER_ID_SEQ
INCREMENT BY 1 
MAXVALUE 99999999999999999999 
MINVALUE 1 
CACHE 20 ;
...