Oracle中执行存储过程call和exec区别
在sqlplus中這兩種方法都可以使用:?
exec pro_name(參數(shù)1..); call pro_name(參數(shù)1..);?
區(qū)別:?
1. 但是exec是sqlplus命令,只能在sqlplus中使用;call為SQL命令,沒有限制.?
2. 存儲過程沒有參數(shù)時,exec可以直接跟過程名(可以省略()),但call則必須帶上(). ?
Sql代碼?
SQL> --創(chuàng)建過程 插入數(shù)據(jù) ??
SQL> create or replace procedure pro1 is ? ??
2 ?begin --執(zhí)行部分 ??
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: 不是有效的函數(shù)或過程名 ? ? ?
SQL> call pro1(); ? ? ??
Method called?
總結(jié):在調(diào)用過程時,應(yīng)該養(yǎng)成使用call,且要帶上()的習(xí)慣。
?
-------------
請關(guān)注我的訂閱號? ?松門一枝花? ?
?
?
總結(jié)
以上是生活随笔為你收集整理的Oracle中执行存储过程call和exec区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android MediaPlayer使
- 下一篇: jquery mobile用代码弹出di