【问题标题】:How do I check if a sequence exists or not in Oracle 11g?如何在 Oracle 11g 中检查序列是否存在?
【发布时间】:2012-06-16 07:54:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: oracle oracle11g sequence


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      SELECT COUNT(*) FROM DBA_SEQUENCES;
      

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

      检查Oracle docs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-26
        • 2014-09-12
        • 1970-01-01
        相关资源
        最近更新 更多