Как не влиять на строки при использовании сочетания клавиш для преобразования регистра

Как не влиять на строки при использовании сочетания клавиш для преобразования регистра

Я использую Oracle SQL Developer для выполнения запросов. Хотелось бы, чтобы сочетание клавиш «Преобразовать в нижний регистр» не влияло на текст внутри «апострофов».

Notepad++ гораздо более приятен для глаз, поэтому запрос пишется там, а затем копируется и вставляется в Oracle. Я сопоставил все сочетания клавиш, которые я использовал в Oracle, с N++, но строки теперь также преобразуются в нижний регистр.

Есть ли способ это остановить?

Пример:

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

При преобразовании всех букв в нижний регистр SQL Developer будет выглядеть следующим образом:

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

Обратите внимание, что строки не были затронуты преобразованием. В Notepad++ результат преобразования в нижний регистр выглядит следующим образом:

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

Обратите внимание, что весь текст, включая строки, теперь в нижнем регистре. Это сломает код, если значение чувствительно к регистру.

решение1

Использование функции «Найти и заменить» в Notepad++:

  • Ctrl+H
  • Найти то, что:'[^']+'(*SKIP)(*FAIL)|\w+
  • Заменить:\L$0
  • проверить Обернуть вокруг
  • проверить Регулярное выражение
  • Replace all

Объяснение:

'[^']+'         # 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

Замена:

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

Результат для данного примера:

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

Скриншот:

введите описание изображения здесь

Связанный контент