存儲過程和函數是一種PL/SQL塊,是存入數據庫的PL/SQL塊。咱們一般將PL/SQL程序塊稱爲無名塊,而存儲過程和函數是以命名的方式存儲在數據庫中。它有以下優勢:數據庫
1>存儲過程的代碼不是保存在本地,而是在數據庫中,所以,用戶能夠在任何客戶機上登陸到數據庫,調用或者修改代碼。編輯器
2>存儲過程和函數的信息是寫入字典的,因此存儲過程能夠看作是一個公用模塊,用戶編寫的PL/SQL程序或者其餘存儲過程均可以調用它(可是存儲過程和函數不能調用PL/SQL程序)。一般,一個重複使用的功能,能夠設計成一個存儲過程。函數
3>存儲過程和函數都須要進行編譯,以排除語法錯誤,只有編譯過了才能調用。url
建立和刪除存儲過程
spa
create or replace procedure 存儲過程名[(參數1,參數2,……)]設計
{as|is}get
begin
io
執行部分編譯
[exception登錄
錯誤處理部分]
end[過程名];
參數類型有三種:IN、OUT和IN、OUT。
關鍵字AS也能夠寫成IS,後面能夠定義該存儲過程的局部變量。
編寫存儲過程能夠使用任何文本編輯器或直接在SQL *Plus環境下進行,編寫完後須要編譯成功,編譯成功後的存儲過程就能夠在Oracle環境下調用了。
若是一個存儲過程不須要在使用了,能夠使用以下語句刪除它:
drop procedure 存儲過程名;
執行或者調用存儲過程的方法以下:
1>方法1
exceute 模式名.存儲過程名[參數];
2>方法2
begin
模式名.存儲過程名[參數];
end;
若是是調用本帳號下的存儲過程,則模式名能夠省略,要調用其餘帳號編寫的存儲過程,則須要模式名。
打印信息
dbms_output.put_line(變量名);