select 'MSG_HEAD{
domain_name=tmf_mtnm;
type_name=NT_ALARM;'
as aaa from dual以上代码第二行有一个分号结尾的换行,执行以上操作报错。将分号换成其他字符变不会报错。请问,此错误如何解决。?谢谢oracle ORA-01756

解决方案 »

  1.   

    ''内不用加上;    去掉 'MSG_HEAD{
    domain_name=tmf_mtnm;
    type_name=NT_ALARM;'后面的;
      

  2.   

    不好意思没看清楚说错了,你最后面的忘了加},应该是
    select 'MSG_HEAD{domain_name=tmf_mtnm;type_name=NT_ALARM;}'
    as aaa from dual
      

  3.   


    11:16:11 ChenZw> select 'MSG_HEAD{domain_name=tmf_mtnm;type_name=NT_ALARM;' as aaa from dual;AAA
    -------------------------------------------------
    MSG_HEAD{domain_name=tmf_mtnm;type_name=NT_ALARM;
    验证,无错。
      

  4.   

    select 'MSG_HEAD{
    domain_name=tmf_mtnm;}
    type_name=NT_ALARM;'
    as aaa from dual
      

  5.   


    大哥,你把我的sql语句都改了,第二行分号后面有个换行啊,他们不是在同一行的啊
      

  6.   


    为什么要改sql语句呢,原句就是我写的那样的,没有},第二行分号后有个换行。我想说的是包含以分号结尾的字符串不能插入表中吗?
      

  7.   


    你是在什么环境下执行的呢? SQL*PLUS 还是pl/sql developer?
      

  8.   


    Oracle这样认定字符串,见到 ' 就认为字符串开始了,但是,如果碰到两个''就会认为是字符串中的一个' 然后再碰到'就会认为字符串结束.跟;没个关系.
      

  9.   


    你应该是还在SQL*PLUS下面用这个语句的吧?在当前命令行下输入ed回车,在弹出的记事本文件中写好编辑完成,保存关闭,输入r执行。就不会有刚才的问题。
      

  10.   


    嗯,可是这种字符串是在程序中的(OCCI程序),要将其插入表中。在程序中又不能用ed。怎么办?