存储过程中。执行报错,下面拼接SQL时,常量字符串‘记账凭证’字符串如何转义?
exec('INSERT INTO ' + @nc_tablename +
' ( PK_NC--NC凭证表主键
pzlb--凭证类别
select
pk_u8 --U8凭证表主键
, '+'记账凭证'+' --凭证类别
from ' + @u8_tablenme )
适用\转移,一版都是用这个符号来转移
https://blog.csdn.net/tsytdhs163/article/details/7480278
https://blog.csdn.net/tsytdhs163/article/details/7480278
sql 当中拼接字符串,当你引用的内容本身为字符串的时候要用两个双引号, 比如 select '你好' from dual;, 要打印出整句话的时候 就是
‘select ''你好'' from dual;’注意是两个单引号, 并不是双引号
存储过程中,拼装字符串一般用3个'
例如
sql = sql + ' t.id = ''' + @id + ''' + ' and ...
否则没办法得到
t.id = 'aaa' and
那样的效果。
事实上, StringEscapeUtils 不但提供了 SQL 特殊字符转义处理的功能,还提供了 HTML、XML、JavaScript、Java 特殊字符的转义和还原的方法。如果您不介意引入 jakarta commons lang 类包,我们更推荐您使用 StringEscapeUtils 工具类完成特殊字符转义处理的工作。