我有一個變數,里面有一個左括號和右括號,但它被 regexp_like 讀取為正則運算式,從而使我下面的代碼無效。我的問題是我們如何在不修改字串本身的情況下轉義整個字串變數
declare
TW_keyword varchar2(100) := 'THE QUICK (BROWN)';
tw_result varchar2(100);
begin
SELECT CASE
WHEN regexp_like ('IS THE QUICK (BROWN) FOW', '(^|\W)'|| TW_keyword ||'($|\W)')
THEN 'found'
ELSE 'not found'
END rl INTO tw_result
FROM DUAL;
dbms_output.put_line(tw_result);
end;
結果:
PL/SQL procedure successfully completed.
not found
uj5u.com熱心網友回復:
如果它只是你期望的括號,那么應該做這樣的事情
SQL> declare
2 TW_keyword varchar2(100) := 'THE QUICK (BROWN)';
3 tw_result varchar2(100);
4 begin
5 tw_result := CASE
6 WHEN regexp_like ('IS THE QUICK (BROWN) FOW', '(^|\W)'|| replace(replace(TW_keyword,'(','\('),')','\)') ||'($|\W)')
7 THEN 'found'
8 ELSE 'not found'
9 END;
10
11 dbms_output.put_line(tw_result);
12 end;
13 /
found
PL/SQL procedure successfully completed.
請注意,您也不必為了執行任務而選擇對偶
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534405.html
標籤:甲骨文PLSQL
上一篇:如何使用OracleQuery從表中的xmldata列中提取xml值
下一篇:使用SYSDATE自動獲取資料?
