2

sequence在 Oracle 11g Express Edition 中使用时遇到问题。它既不可访问也不被创建。我试过这个查询来获取NEXTVAL序列。

select SEQ_PATIENT.nextval from dual;

它显示错误

ORA-02289: 序列不存在

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

create synonym SEQ_PATIENT
for scott.SEQ_PATIENT;

它返回

ORA-00955: 名称已被现有对象使用

为什么会这样?

4

2 回答 2

3

这个:

select SEQ_PATIENT.nextval from dual;

表示您要从名称为 SEQ_PATIENT 且属于当前模式(即您连接的用户)的序列中选择下一个值。甲骨文说你没有那个序列。


这个:

create synonym SEQ_PATIENT for scott.SEQ_PATIENT;

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

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

结果是什么

select * from all_objects where object_name = 'SEQ_PATIENT';

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

于 2019-02-04T13:08:05.263 回答
1

我刚刚使用DROP SYNONYM并再次使用CREATE它工作正常。

于 2019-02-04T13:16:02.127 回答