我有一条SQL语句:
Insert into Table1 values ('字段1')
其中字段1为:m'n
字段1为字符串,并且含有单引号。
如果直接执行上面的SQL语句,会报错,因为括起字段1的单引号会与字段1内部的单引号混淆。
问题:如何将该字符串正确地写入数据库,使得别人读取数据库时能够正确的读出m'n

解决方案 »

  1.   

    如果是10G以上版本的话可以这样写{'aaa'}
      

  2.   


    Insert into Table1 values ('m''n') ;
      

  3.   


    Insert into Table1 values ('m''n') ;
    或者:
    Insert into Table1 values ('m'||chr(39)||'n') ;
      

  4.   

    Insert into Table1 values ('value1'||chr(39));
            SQL> select ascii(','), ascii('/') from dual;ASCII(',') ASCII('/')
    ---------- ----------
            44         47SQL> select chr(44), chr(47) from dual;CHR(44) CHR(47)
    ------- -------
    ,       /
    如果有什么特殊字符不记得"编号"了,就用ascii函数select一下. 除了用ascii查单引号,因为... :SQL> select ascii(''') from dual;
      2  /select ascii(''') from dual;ORA-01756: 括号内的字符串没有正确结束Good luck!
      

  5.   

    Insert into Table1 values ('m''n') ;
    Insert into Table1 values ('m\'n') ;
      

  6.   

     select 'm' || chr(39) || 'n' from dual
     union all
     select 'm' || '''' || 'n' from dual
    这两个是可以的我知道
    但这个我试了下怎么报错谁能告诉我?
    SQL> select 'm\'n' from dual;
    ERROR:
    ORA-01756: 括号内的字符串没有正确结束
    SQL> select 'm' || '\'' || 'n' from dual;
    ERROR:
    ORA-01756: 括号内的字符串没有正确结束
      

  7.   

    SQL> select 'm\'n' from dual;
    ERROR:
    ORA-01756: 括号内的字符串没有正确结束
    SQL> select 'm' || '\'' || 'n' from dual;
    ERROR:
    ORA-01756: 括号内的字符串没有正确结束
    -______________________________这里的''没有成对,系统不识别!
      

  8.   


    select 'M'||''''||'N' from dual;RESULT:1 M'N