oracle中;和 / 的区别

来源:互联网 发布:win10 windows updata 编辑:程序博客网 时间:2024/04/29 05:06

在sqlplus中, oracle 用/ 或者 ; 作为sql语句的终结符。 注意一个符号就可以终结! 而在plsql中, 终结符就只有/,因此如

begin

  dbms_output.put_line('Hello!');

end;

 

这段代码不会运行。 而正确的写法是

begin

  dbms_output.put_line('Hello!');

end;

/

 

之所以要把这个问题提出来, 是因为在项目中碰到很多sql脚本这么写, 如:

insert into ...;

/

update...;

/

 

如果在sql developer 或toad里运行不会有什么问题, 但如果在sqlplus中运行, 以上语句会运行两遍。 特别是insert, 如果表没有主码约束, 很可能插入两条重复记录。 而且这些脚本一般被dba运行于linux下, 工作于sqlplus的可能性极大。

所以在这些代码中我都用/终结.