在sqlplus中這兩種方法都可以使用:?
exec pro_name(參數1..); call pro_name(參數1..);?
區別:?
1. 但是exec是sqlplus命令,只能在sqlplus中使用;call為SQL命令,沒有限制.?
2. 存儲過程沒有參數時,exec可以直接跟過程名(可以省略()),但call則必須帶上(). ?
Sql代碼?
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,且要帶上()的習慣。
?
-------------
請關注我的訂閱號? ?松門一枝花? ?
?
?