有没有人遇见过下面的sql被注释掉的问题?insert未被执行sql脚本中就下面两行,执行后查表发现没数据,然后尝试以下方法:1、在第一行末尾增加一个字母a, 问题解决2、注释后增加一个空行,问题解决3、删除注释中的 -- 符,问题解决4、在注释末尾增加空格,问题依旧5、将注释改为“REM --”,问题依旧6、将注释改为“-- REM”,问题解决 很是奇怪,单行注释怎么会影响到下一行? REM --ADD BY XXX--insert into table(id, 1);

解决方案 »

  1.   

    查阅oracle规范,--是单行注释,不是连接符,为什么会被当做为连接符呢?REMARK
    参见:
    --, /* */
    语法:
    REM[ARK] [comment]
    变量:
    comment:你要包括在命令文件中的注释。
    例子:
    SQL
    REM
    REM Loan account information
      

  2.   

    我的意思是说说 写在 rem 后面 "-"被当做连接符了,“--”不过是两个连接符连用
    意思应该是 一行写不下换行的时候用的你把 -- 改成 - 效果是一样的。
      

  3.   

    按照你说的修改为 “REM - ”,sql报错,改为 “REM --”则不执行,改为“REM --R”,SQL执行成功SQL> @/opt/create.sql
    SQL> ;
    SP2-0223: No lines in SQL buffer.
      

  4.   

    SP2-0223: No lines in SQL buffer.这个错误是你脚本其他方面引起的,不是这里。你这样:
    建一个脚本写如下内容:rem -asd-
    select * from dual;然后你再试验。
      

  5.   

    经过测试,确实如此,看来sqlplus在解析时,REM 后带了特殊字符时,并不是当做注释的普通字符处理不知道算不算oracle的bug?