在sql语句里面的字符串里面如果有“&”符号,好像就被转义了,变成了“OEM_sqlplus_input_finished”。
------------------------------------------------------------------------
  回复人: happya3000(清凉油) ( ) 信誉:100  2005-5-29 8:57:08  得分: 0  
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=139069 回复人: honey_y() ( ) 信誉:100  2005-5-29 10:52:31  得分: 0  
insert into table(column) values('\&') escape '\'; 回复人: marvinhong(边城骆驼) ( ) 信誉:99  2005-05-29 16:11:00  得分: 0  
   insert into table(column) values(chr(38));
用&的ASCII碼即可
------------------------------------------------------------------------我试了用chr函数是可以插入“&”符号,但是如果要插入比如“abc&def”,怎么写?
'abc'+chr(38)+'def'
'abcchr(38)def'
'abc'chr(38)'def'
'abc''chr(38)''def'
什么的好像都不行。我用的是oracle 9i
谢谢!

解决方案 »

  1.   

    SQL*Plus: Release 9.0.1.0.1 - Production on 星期一 5月 30 04:18:03 2005(c) Copyright 2001 Oracle Corporation.  All rights reserved.
    连接到: 
    Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
    With the Partitioning option
    JServer Release 9.0.1.1.1 - ProductionSQL> select 'abc'||'&'||'def' as aa from dual;AA
    -------
    abc&defSQL>
      

  2.   

    SQL*Plus: Release 8.0.5.0.0 - Production on 星期一 5月 30 8:22:9 2005(c) Copyright 1998 Oracle Corporation.  All rights reserved.
    连接到:
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - ProductionSQL> insert into  t values('a'||chr(38)||'b');已创建 1 行。SQL> commit;提交完成。SQL> select  * from t;A
    -----
    a&bSQL>
      

  3.   

    set define off
    就可以了
      

  4.   

    请求 alter session set nls_langage = ' ENGLISH';
        什么地方错了
      

  5.   

    oracle 的字符串连接符号是||而不是+.to  javabai() : alter session set NLS_LANGUAGE = 'ENGLISH';
    你的language英文写错了,呵呵。
      

  6.   

    alter session set nls_language = 'AMERICAN'
      

  7.   

    不对啊,我的816怎么可以直接插入?SQL> select '&' from dual;'                                                                               
    -                                                                               
    &                                                                               SQL> select & from dual;
    输入 from 的值:  test
    原值    1: select & from dual
    新值    1: select test dual
    select test dual
                   *
    ERROR 位于第 1 行: 
    ORA-00923: 未找到预期 FROM 关键字 ==========
    从上面可以看到,&如果存在于字符串,是不会转义的,只有当&单独使用的时候才会转义
      

  8.   

    SQL> select 'aaa'||chr(38)||'bbb' from dual;'AAA'||CHR(38)||'BBB'
    ---------------------
    aaa&bbb
      

  9.   

    insert into tablename(col) values(translate('at{&}t','at{&}','at{}'));
    我实验过了
    绝对可以   
    记得给分哦
      

  10.   

    碰到过类似问题,用prepareStatement就可以了,不用作什么特殊转义
      

  11.   

    使用 && 进行转义
      

  12.   

    select chr(38) from dual