在 Oracle 中既不排序 SELECT 也不创建 CREATE

Sequence neither SELECT nor CREATE in Oracle

我在 Oracle 11g 快捷版中使用 sequence 时遇到问题。它既不可访问也不可创建。 我试过这个查询来获得序列的 NEXTVAL

select SEQ_PATIENT.nextval from dual;

显示错误

ORA-02289: sequence does not exist

然后我尝试 CREATE SYNONYM 上面的序列如下

create synonym SEQ_PATIENT
for scott.SEQ_PATIENT;

它returns

ORA-00955: name is already used by an existing object

为什么会这样?

这个:

select SEQ_PATIENT.nextval from dual;

表示您想要 select 来自名称为 SEQ_PATIENT 且属于当前模式(即您连接的用户)的序列的下一个值。 Oracle 说您没有那个序列。


这个:

create synonym SEQ_PATIENT for scott.SEQ_PATIENT;

尝试创建一个同义词不是一个序列!)为名称为[=32的对象创建一个名为SEQ_PATIENT的对象=] 属于用户 Scott。 Oracle 说名称为 SEQ_PATIENT 的对象已经存在。

所以:你是如何连接到数据库的?是哪个用户?

的结果是什么
select * from all_objects where object_name = 'SEQ_PATIENT';

它应该告诉您它的主人是谁以及它是什么。根据其结果,我们将能够建议进一步的步骤。

我刚刚使用了 DROP SYNONYM,然后又使用了 CREATE,效果很好。