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

[b][color=red]转自[/color][/b][url]http://blog.csdn.net/sfdev/archive/2008/07/29/2729336.aspx[/url]

[b]因为前段时间也遇到这个问题,发现该blog记录的比较详细,特地转了过来.再次特别感谢博主![/b]

今天在进行数据订正的时候写了一批很简单的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直接操作不会出现该问题;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值