Como não afetar strings ao usar um atalho de conversão de maiúsculas e minúsculas

Como não afetar strings ao usar um atalho de conversão de maiúsculas e minúsculas

Eu uso o Oracle SQL Developer para executar consultas. gostaria que o atalho "Converter para minúsculas" não afetasse o texto entre os 'apóstrofos'.

O Notepad++ é muito mais agradável aos olhos, então a consulta é escrita lá e depois copiada e colada no Oracle. Mapeei todos os atalhos que costumava usar no Oracle para N++, mas as strings agora também estão sendo convertidas para minúsculas.

Há alguma maneira para parar isso?

Exemplo:

CASE
WHEN table.attribute = 'CaseSensitiveStringValue'
  THEN 'OutcomeValue'
  ELSE 'OTHERValue'
END AS CASEName

Quando convertido para letras minúsculas, o SQL Developer ficará assim:

case
when table.attribute = 'CaseSensitiveStringValue'
  then 'OutcomeValue'
  else 'OTHERValue'
end as casename

Observe que as strings não foram afetadas pela conversão. No Notepad++ o resultado da conversão para minúsculas é o seguinte:

case
when table.attribute = 'casesensitivestringvalue'
  then 'outcomevalue'
  else 'othervalue'
end as casename

Observe que todo o texto, incluindo strings, agora está em letras minúsculas. Isso quebraria o código se o valor diferenciasse maiúsculas de minúsculas.

Responder1

Usando o recurso Localizar e Substituir no Notepad++:

  • Ctrl+H
  • Encontre o que:'[^']+'(*SKIP)(*FAIL)|\w+
  • Substituir com:\L$0
  • confira Envolver
  • verifique expressão regular
  • Replace all

Explicação:

'[^']+'         # NOt a single quote between 2 single quote (i.e. strings we don't want to convert)
(*SKIP)         # skip this string
(*FAIL)         # fail to match
|               # OR
\w+             # 1 or more word character

Substituição:

\L$0        # lowercase the whole match (i.e. the string NOT between quotes)

Resultado para determinado exemplo:

case
when table.attribute = 'CaseSensitiveStringValue'
  then 'OutcomeValue'
  else 'OTHERValue'
end as casename

Captura de tela:

insira a descrição da imagem aqui

informação relacionada