如何检查Oracle 11g中是否存在序列?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

我正在使用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视图,这也可能无法正常工作。

扫码关注云+社区