在SQL*PLUS中插入含有&的字符串
Oracle10g, xx.sql
insert into table1(xname) values('aa&bb');
CMD下调用:sqlplus user/pwd@oraservice @c:\xx.sql
提示错误,请输入 a:
原来此情况下&bb被当作了sql中的参数,而不是一个字串
解决方法1(操作时没起到效果):
在SQL脚本前加入一行:
set define off;
解决方法2:
先把脚本替换成
insert into table1(xname) values('aa&||bb');
写入完成后,再替换回来
update table1 set xname=replace(xname,'&||','&');
即可
||替换为空格等其他特殊字符也可以,其原理就是打破&参数的命名规则。
另外
insert into table1(xname) values('aa&'||'bb');
也可,将其断开,用连接符连接起来成一个字串。这种方法更方便些。