“&”符号在Oracle中常用来指出一个变量。
insert 语句中,如果某个字符串字段中包含"&"字符,会将“&”符号后面("="前)的字符串当做一个变量,导致出现错误
例如,在PL/SQL中执行以下插入语句:
insert into student(STU_NO, STU_NAME, STU_AGE, STU_SEX, STU_PHONE, STU_QQ, STU_URL)
values('00013','小伟','14','男','13112345678','123456789','http://localhost:8080/myapp/index.html?userid=admin&password=123456');
会出现下图的提示:
若不输入任何值,确定后会发现插入URL的字符串中的“&password”字符串丢失掉了,如下图:
为解决此问题,可将“&” 替换为“chr(38)”
insert into student(STU_NO, STU_NAME, STU_AGE, STU_SEX, STU_PHONE, STU_QQ, STU_URL)
values('00013','小伟','14','男','13112345678','123456789','http://localhost:8080/myapp/index.html?userid=admin'||chr(38)||'password=123456');
结果:
如有错误之处,欢迎指出,谢谢!