在sql查詢中,我們經常需要原樣輸出字符串,如果字符串中含有大量的單引號、雙引號或者特殊字符,那么需要用單引號轉義拼接字符串,這樣會非常的麻煩。
oracle提供了一個Q-quote的表達式來原樣輸出字符串。
SELECT Q'[I'm a boy,my name is 'david']' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'(I'm a boy,my name is 'david')' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'{I'm a boy,my name is 'david'}' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'|I'm a boy,my name is 'david'|' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'aI'm a boy,my name is 'david'a' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'2I'm a boy,my name is 'david'2' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'@I'm a boy,my name is 'david'@' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'*I'm a boy,my name is 'david'*' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'#I'm a boy,my name is 'david'#' FROM DUAL; --結果:I'm a boy,my name is 'david' SELECT Q'[[@#$%^&*~?/" ']]' FROM DUAL; --結果:[@#$%^&*~?/" ']
小結: (1)Q'后跟起始分隔符,起始分隔符后的字符串原樣輸出,起始分隔符必須有配對的結束分隔符。
(2)分隔符可以為數字、字母、特殊字符。但'&'不能作為分隔符,因為'&'意思是傳入參數。
(3)'['、'('、'{'作為分隔符,必須以']'、')'、'}'結束。
