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.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值