我在 Oracle 11g Express Edition 中使用sequence
时遇到问题。它既不可访问也不可创建。
我尝试使用此查询来获取序列的 NEXTVAL
。
select SEQ_PATIENT.nextval from dual;
显示错误
ORA-02289: sequence does not exist
然后我尝试为上述序列CREATE
SYNONYM
如下
create synonym SEQ_PATIENT
for scott.SEQ_PATIENT;
它返回
ORA-00955: name is already used by an existing object
为什么会这样呢?
最佳答案
这个:
select SEQ_PATIENT.nextval from dual;
表示您想要从名称为 SEQ_PATIENT 的序列中选择下一个值,并且它属于当前模式(即您连接到的用户)。 Oracle 说您没有该序列。
这个:
create synonym SEQ_PATIENT for scott.SEQ_PATIENT;
尝试为属于用户 Scott 的名为 SEQ_PATIENT 的对象创建一个名为 SEQ_PATIENT 的同义词(不是序列!)。 Oracle 表示名称为 SEQ_PATIENT 的对象已存在。
那么:你是如何连接到数据库的?是哪个用户?
结果是什么
select * from all_objects where object_name = 'SEQ_PATIENT';
它应该告诉您谁拥有它以及它是什么。根据结果,我们将能够建议进一步的步骤。
关于sql - Oracle 中的 SELECT 和 CREATE 均不排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54516166/