A partir disso e disso , acho que não há exceções de sistema nomeadas predefinidas para ORA-00955.
Como posso reescrever o seguinte para capturar apenas o erro ORA-00955?
begin
EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1';
exception when OTHERS then
Null;
end;
BTW Existe alguma sintaxe para detectar erros apenas fornecendo os códigos de erro?
Você tem duas opções:
Consulte a exceção diretamente pelo número:
Outra opção é usar a
EXCEPTION_INIT
diretiva Pragma para vincular um número de erro conhecido do Oracle a uma exceção definida pelo usuário;Sim, eu demonstrei no primeiro exemplo
Leitura adicional para variações sobre isso:
Semelhante ao que Sathya já sugeriu, mas gosto de evitar
when others
completamente, se possível - uma exceção não tratada geralmente é o resultado correto para exceções que você não está manipulando especificamente: