저는 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
화면 캡처: