Não use NEXTVAL de uma sequência em um resultado condicional de
CASE ou de uma chamada nativa DECODE quando o valor
aparenta ser consumido somente pelo ramo selecionado.
Sequências Oracle são expressões especiais em SQL. O resultado condicional
pode estar correto, mas a avaliação de NEXTVAL ainda pode avançar a
sequência. Mantenha a operação da sequência fora do resultado condicional
quando esse efeito colateral precisar ser condicional.
select case when status = 'NEW' then order_seq.nextval else 0 end from orders;
Esta regra reporta somente referências a sequências que o ZPA consegue
identificar positivamente a partir das declarações do projeto. Referências a
sequências fora do projeto analisado podem não ser detectadas. Para
DECODE, somente uma chamada não qualificada sem aspas (sem distinção
de maiúsculas e minúsculas) ou um identificador entre aspas escrito exatamente como
"DECODE" é tratada como a função nativa do Oracle. A expressão
principal e as expressões de busca não são resultados condicionais.