web-dev-qa-db-ja.com

Oracle 11gにシーケンスが存在するかどうかを確認するにはどうすればよいですか?

Oracle 11gを使用しています。特定のシーケンスが存在するかどうかを判断できるようにしたい。以下のコードを試しましたが、機能していません。 (さらにある必要がある場合、カウント値として0を返します):

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

誰かがこれがなぜなのか知っているなら、私を助けてください。

19
user968441

ユーザー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' ;
38
A.B.Cade

また、DB内のすべてのシーケンスを表示することは許可されない場合があることに注意してください。この場合、上記のスクリプトは機能しない可能性があるため、次のようなスクリプトを実行する必要があります

SELECT COUNT(*) FROM DBA_SEQUENCES;

ただし、DBA_SEQUENCESビューへのアクセス権がない場合、これも機能しない可能性があります。

Oracle docs を確認してください。

0
bkg