20

我正在使用 Oracle 11g。我希望能够确定是否存在特定序列。我已经尝试了下面的代码,但它不起作用。(当应该有更多时,它返回 0 作为计数值):

SELECT COUNT(*)
FROM user_sequences
WHERE sequence_name = 'SCHEMA.SEQUENCE_NAME';

如果有人知道这是为什么,请帮助我。

4

2 回答 2

42

如果您以用户身份运行查询,请MP尝试如下:

SELECT COUNT(*) 
FROM user_sequences 
WHERE sequence_name = 'SEQ_SSO_KEY_AUTHENTICATION';

否则,试试这样:

SELECT COUNT(*) 
FROM all_sequences 
WHERE sequence_name = 'SEQ_SSO_KEY_AUTHENTICATION'
AND sequence_owner = 'MP' ;
于 2012-06-13T11:08:23.453 回答
1

另外,请记住,您可能无法查看数据库中的所有序列。在这种情况下,上面提供的脚本可能不起作用,您应该运行类似

SELECT COUNT(*) FROM DBA_SEQUENCES;

但是,如果您无权访问 DBA_SEQUENCES 视图,这也可能不起作用。

检查Oracle 文档

于 2015-12-09T14:15:30.173 回答