我正在使用 Oracle 11g。我希望能够确定是否存在特定序列。我已经尝试了下面的代码,但它不起作用。(当应该有更多时,它返回 0 作为计数值):
SELECT COUNT(*)
FROM user_sequences
WHERE sequence_name = 'SCHEMA.SEQUENCE_NAME';
如果有人知道这是为什么,请帮助我。
如果您以用户身份运行查询,请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' ;
另外,请记住,您可能无法查看数据库中的所有序列。在这种情况下,上面提供的脚本可能不起作用,您应该运行类似
SELECT COUNT(*) FROM DBA_SEQUENCES;
但是,如果您无权访问 DBA_SEQUENCES 视图,这也可能不起作用。
检查Oracle 文档。