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