關於Oracle中執行儲存過程使用call和exec區別說明
阿新 • • 發佈:2019-01-27
在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,且要帶上()的習慣。