在 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
,效果很好。
我在 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
,效果很好。