sql需要转义的字符有哪些

sql需要转义的字符有哪些,第1张

特殊转义:单引号 -- 用2个单引号''

两种比较常见的方式

(1)用中括号[]转义

WHERE ColumnA LIKE 'aaa[_]bbb' ---

(2)用关键字ESCAPE 转义

WHERE ColumnA LIKE '%aaa/%bbb%' ESCAPE '/'

注:

1)方式2不如1方便,适用面也窄小,清晰度也差。

2)方式0在使用动态SQL,尤其是“嵌套 + 代码生成”的高级应用中,很容易出错

1. || 的作用是连接字符

如:

字符串常量连接: 'abc'||'def' ;

字符串变量连接: v_variable1 || v_variable2 等。

2.

首先: ' 有两个作用:

1).对字符定界。如v_sqlstr := 'abcdef'

就界定了一个字符串abcdef‘ 本身不是字符串的一部份。

2). ' 本身作为一个字符,' 是字符串的一部份。

如 :v_sqlstr :='''' 指代字符串' 。 这时,' 需要转义。

begin

dbms_output.put_line('''')

end

/

'

PL/SQL procedure successfully completed.

要表示一个' 字符 , plsql中需要用'' 来表示。

‘’ 相当于 字符 ‘ 。

输出字符a:

dbms_output.put_line('a')

输出字符‘:

dbms_output.put_line('''')

3. 开始的alter前面的'不用转义,

因为它是定界符。

4.我们知道:

alter session set nls_date_language='AMERICAN'

是完整的sql语句,

其中的两个' 在sql 中 ,是定界符,但是到了plsql中,整个sql语句成了一个字符串,所以'成为了两个字符。

字符就需要转义,

所以:

nls_date_language='

在plsql字符串中应该写成:

nls_date_language=''

5. 如果我们做如下置换:

假设:表定界的' 可以用 () 来置换,

表字符的' 可以用 " 来置换,那么:

sql_string 可以写成:

sql_string := (alter session set nls_date_language=")||(AMERICAN)||(")

这样就更好理解了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6678794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存