`
Nutch2009
  • 浏览: 10641 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

sql insert语句特殊字符处理

阅读更多

转载:http://bbs2.chinaunix.net/archiver/tid-617054.html

如何向数据库中插入特殊符号。
sql="insert into webPageInfo (webAddrees,content) values('"+thisURL+"','"+Webtext+"')";

Webtext是网页的全文,通过读URL文件得到字符串,它必然包含( '   "   )等特殊符号。这样的话,在书写SQL语句应该如何写,如果像上面书写,就会出现错误。


在SQL中,表示字符串得引号强烈建议使用单引号(')。虽然MySQL也可以使用双引号("),但是为了和SQL Server和Oracle统一,建议都使用单引号。如果在字符串中也有单引号出现的话,在SQL中需要将其替换为两个单引号(''),DBMS会将其解释为一个单引号的。

参考自:http://www.study888.com/computer/data/sqlsl/200506/42507.html
关于SQL的换行符和字符串连接符,在MySQL、SQL Server和Oracle中均有不同,下面以列表显示。   MySQL SQL Server Oracle
换行符 \n或\r\n或CHAR(10) CHAR(13) CHR(10)
字符串连接符 CONCAT() + ||或CONCAT()


另外,符号(&) 在Oracle里有特殊含义,是一个宏变量标识符,在SQLPLUS里执行SELECT 'AAA&BBB' AS STR FROM DUAL,它会提示你输入宏变量值,所有如果SQL里有(&),建议用单引号括起来,如SELECT 'AAA'||'&'||'nbsp;BBB' AS STR FROM DUAL它就不会提示了。
    个人的一点总结,以记之。


单引号' 可以用chr(39)表示,& 可以用chr(38)表示。
  
  例子:
  
  select 'test:' || chr(38) || chr(39) from dual;
  结果是:test:&'
  
  我找了一份ascii对应表(数码相机拍摄,所以,有点变形,呵呵)
   
  注:chr()的反函数是ascii(), 比如:
  select ascii('a') from dual;
  结果是:97
  
  另外,单引号也可以这样处理:
  
  select 'I''m chinese' from dual
  结果是:I'm chinese.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics