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> 

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