Oracle更新表时,字段包含特殊字符的处理。

Dear all:
    数据库表sec.sec_function 中 viewname字段与billing侧提供数据不一致,很多都缺失:&businessId
    尝试执行 update sec.sec_function set viewname = 'http://billingtest.ailk.telenor.com:8095/AcctMgnt/page/modules/setCredit/main.jsp?businessType=${BUSINESS_TYPE}&businessId=${BUSINESS_ID}' where func_id=77000001;
    提示 
   
    原因:oracle认为 & 后跟的是变量
    
    修改方法:
    A、用转义字符:
    SQL> set escape \  
    SQL> insert into table values('\&aaaaa');
    SQL> select * from mptlog_day t where url like '%\&t=%';
    然后再&的前面 加上\ 如 \&
 
    B、关闭这个功能
    SET DEFINE OFF;
    
    选择在更新时关闭此功能。
    SET DEFINE OFF;
    SQL> show define 

    define OFF

    
    最后执行SQL。
    其他特殊字符%,_,处理方法相同。
   
 

posted @ 2014-09-15 13:20  从小不打伞  阅读(1835)  评论(0编辑  收藏  举报