转载: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.