Oracle执行SQL时遭遇特殊字符&

今天在进行数据订正的时候写了一批很简单的update语句,结果在sqlplus中执行出现问题,提示让我输入对应参数的值?

原SQL如:update trans_record set params = 'service=standard_bail&xxx=112' where trans_record_id = '3041';

经查,问题就出在字符&上,他是一个控制参数传入的字符;

要解决执行的问题,有如下几种方式:

1、在sqlplus中执行set define off关闭特殊字符,关闭前可用show define查看有哪些特殊字符;

2、update trans_record set params = 'service=standard_bail'||'&'||'xxx=112' where trans_record_id = '3041';

3、update trans_record set params = 'service=standard_bail'||chr(38)||'xxx=112' where trans_record_id = '3041';

4、update trans_record set params = 'service=standard_bail/&xxx=112' where trans_record_id = '3041';

以上4种方式推荐使用第一种方式,简单,彻底解决特殊字符问题(前提是看清到底关闭了哪些特殊字符);因为特殊字符不止有&,还有%等;

PS:此类问题只在sqlplus中出现,我们日常开发中通过JDBC直接操作不会出现该问题;

你可能感兴趣的:(oracle,sql,jdbc,service)