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

6jygbczu  于 2022-09-18  发布在  Java
关注(0)|答案(3)|浏览(252)

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

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

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

gmol1639

gmol16391#

如果您以用户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' ;
h5qlskok

h5qlskok2#

此外,请记住,可能不会授予您查看数据库中的所有序列的权限。在这种情况下,上面提供的脚本可能不起作用,您应该运行如下内容

SELECT COUNT(*) FROM DBA_SEQUENCES;

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

检查Oracle docs

qxgroojn

qxgroojn3#

对于较新的/11g版本,以下查询有效。其中一个建议是,我最初无法使用它,因为我使用的是序列名称的小写字母。使其全部封顶返回期望值

SELECT * FROM all_objects ao WHERE ao.owner = 'SCHEMA_NAME' AND ao.OBJECT_TYPE ='SEQUENCE' 
AND ao.OBJECT_NAME ='CAPITAL_SEQ_NAME';

相关问题