Последовательность ни SELECT, ни CREATE в Oracle - PullRequest
0 голосов
/ 04 февраля 2019

Я столкнулся с проблемой при использовании sequence в Oracle 11g Express Edition.Это ни доступно, ни создано.Я попытался этот запрос, чтобы получить NEXTVAL последовательности.

select SEQ_PATIENT.nextval from dual;

Он отображает ошибку

ORA-02289: последовательность не существует

Затем я попытался CREATE SYNONYM для приведенной выше последовательности, как показано ниже

create synonym SEQ_PATIENT
for scott.SEQ_PATIENT;

, и она возвращает

ORA-00955: имя уже используется существующим объектом

Почему так?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Я просто использовал DROP SYNONYM и снова использовал CREATE, он работал нормально.

0 голосов
/ 04 февраля 2019

Это:

select SEQ_PATIENT.nextval from dual;

означает, что вы хотите выбрать следующее значение из последовательности, имя которой SEQ_PATIENT и оно принадлежит текущей схеме (т. Е. Пользователю, к которому вы подключены).Oracle говорит, что у вас нет этой последовательности.


This:

create synonym SEQ_PATIENT for scott.SEQ_PATIENT;

пытается создать синоним ( NOT последовательность!) с именем SEQ_PATIENT для объекта с именем SEQ_PATIENT, принадлежащего пользователю Scott.Oracle говорит, что объект с именем SEQ_PATIENT уже существует.

Итак: как вы подключены к базе данных?Какой это пользователь?

Каков результат

select * from all_objects where object_name = 'SEQ_PATIENT';

В нем должно быть указано, кому оно принадлежит и чем оно является.В зависимости от его результата мы сможем предложить дальнейшие шаги.

...