我寫一個查詢像如何處理查詢字符串中的特殊字符?
select * from fact_table where name = 'R&D'
select * from fact_table where name = 'John's'
我使用Oracle 11g數據庫。是否有任何通用函數或查詢樣式可以在我的查詢中處理特殊字符,如'&'和'''。
我不想單獨處理每個案例,我想要一個通用的機制。
如果這是一個重複的職位,請指引我原來的職位
我寫一個查詢像如何處理查詢字符串中的特殊字符?
select * from fact_table where name = 'R&D'
select * from fact_table where name = 'John's'
我使用Oracle 11g數據庫。是否有任何通用函數或查詢樣式可以在我的查詢中處理特殊字符,如'&'和'''。
我不想單獨處理每個案例,我想要一個通用的機制。
如果這是一個重複的職位,請指引我原來的職位
使用引用操作
select * from fact_table where name = q'#John's#'
對於&號,它是像SQL工具的問題* Plus的
set define ~
select * from fact_table where name = 'R&D'
但在PL/SQL塊,似乎工作的罰款:
declare
output VARCHAR2(10);
BEGIN
SELECT name
INTO output
FROM fact_table
WHERE name = '&1';
DBMS_OUTPUT.put_line('Output: ' || output);
END;
/
SQL> @test.sql;
Enter value for 1: R&D
old 7: WHERE name = '&1';
new 7: WHERE name = 'R&D';
Output: R&D
PL/SQL procedure successfully completed.
的符號應該正常工作。一些工具,如SQLPlus或SQLDeveloper使用此字符來指示綁定變量。禁用此「功能」是這樣的: 集定義關閉 重新啓用它是這樣的: 集定義上
單引號,需要特別注意。 使用兩個單引號字符告訴數據庫,把它作爲文字,就像這樣: SELECT * FROM fact_table其中名稱=「約翰」的
我不知道「最好」的方式,但似乎你可以使用一個逃生用戶定義函數來修改你的字符串。 –