`
slbszq
  • 浏览: 264064 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Oracle中执行存储过程call和exec区别

阅读更多

Oracle中执行存储过程callexec区别

sqlplus中这两种方法都可以使用:

exec pro_name(参数1..);

call pro_name(参数1..);

区别:

1. 但是execsqlplus命令,只能在sqlplus中使用;callSQL命令,没有限制.

2. 存储过程没有参数时,exec可以直接跟过程名(可以省略()),但call则必须带上().

 

SQL> --创建过程 插入数据
SQL> create or replace procedure pro1 is
  2  begin --执行部分
  3        insert into mytest values('张三', 'mm');
  4  end;
  5  /
 
Procedure created
 
SQL> exec pro1;
 
PL/SQL procedure successfully completed
 
SQL> call pro1;
 
call pro1
 
ORA-06576: 不是有效的函数或过程名

SQL> call pro1();
 
Method called

 

总结:在调用过程时,应该养成使用call,且要带上()的习惯。

分享到:
评论
1 楼 hanmiao 2014-01-20  
学习了,以前认为这两個命令是完全壹样的,看来还是有些差异的。

相关推荐

Global site tag (gtag.js) - Google Analytics