sql - Oracle 中的 SELECT 和 CREATE 均不排序

标签 sql oracle database-sequence

我在 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/

相关文章:

mysql - 当存在空值时,在 MySQL 中使用 GREATEST

mysql - 我的 table 组织不当的另一个问题

php - 返回整数和整数+字符串的MySQL SELECT查询

python - Sqlalchemy - 如何在 Oracle 数据库中指定所有者

postgresql - Postgres 序列对代码和 pgAdmin 的 react 不同

带有if语句的MySQL存储过程

oracle - Hibernate 将两个属性映射到一列

oracle - 从 oracle 读取 blob 的前 1kb

postgresql - 将自动增量列添加到按日期排序的现有表中