Как проверить, существует или нет последовательность в Oracle 11g? - программирование
Подтвердить что ты не робот

Как проверить, существует или нет последовательность в Oracle 11g?

Я использую Oracle 11g. Я хочу иметь возможность определить, существует ли определенная последовательность или нет. Я пробовал код ниже, но он не работает. (Он возвращает 0 в качестве значения счета, когда должно быть больше):

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

Если кто-нибудь знает, почему это так, пожалуйста, помогите мне.

4b9b3361

Ответ 1

Если вы выполняете запрос как пользователь MP, попробуйте его следующим образом:

SELECT COUNT(*) 
FROM user_sequences 
WHERE sequence_name = 'SEQ_SSO_KEY_AUTHENTICATION';

else, попробуйте сделать это следующим образом:

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.