1. 程式人生 > >Oracle中執行儲存過程call和exec區別

Oracle中執行儲存過程call和exec區別

在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,且要帶上()的習慣。