使用大小寫轉換快捷方式時如何不影響字串

使用大小寫轉換快捷方式時如何不影響字串

我使用 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

螢幕截圖:

在此輸入影像描述

相關內容