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' ;
また、DB 内のすべてのシーケンスを表示できるわけではないことに注意してください。この場合、上記のスクリプトは機能しない可能性があり、次のようなものを実行する必要があります
SELECT COUNT(*) FROM DBA_SEQUENCES;
ただし、DBA_SEQUENCES ビューにアクセスできない場合、これも機能しない可能性があります。
オラクルのドキュメントを確認してください。