今天做数据插入的时候,执行如下DML语句:
insert into tablename (id,name) values ('123','H&H美发店')
会提示输入'&H美发店'的值。初步判断'&'为特殊字符。找度娘一查果然如此。(小弟才疏学浅,学艺不精,大神见谅。)原来'&'在Oracle中遇到'&'是从需要外部输入。把原SQL语句改为:
insert into tablename (id,name) values ('123','H'||chr(38)||'H美发店')
就能够顺利执行了,存入的数据为("123","H&H美发店") 。其中,oracle字符串处理函数chr(38)表示 '&',双竖线 || 为字符串连接符。
如果不知道该特殊符号的ascii值,可以调用ascii函数处理,如:select ascii('&') from dual;结果:38
其他类似的特殊符号的情况也都可以这么处理。