本教程介紹瞭如何使用函數的語法,並演示如何在 Oracle/PLSQL 中建立、使用和刪除函數。html
注:在Oracle中,函數與過程有什麼不一樣? 函數有返回值,而過程沒有返回值。sql
就像在其餘語言中同樣,您能夠在Oracle中建立本身的函數。數據庫
語法oracle
在Oracle中建立函數的語法是:app
CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatype IS | AS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [function_name];
建立過程或函數時,能夠定義參數。 有三種類型的參數能夠聲明:函數
示例fetch
咱們來看一下如何在Oracle中建立一個函數的例子。如下是Oracle函數的簡單示例:code
CREATE OR REPLACE Function FindCourse ( name_in IN varchar2 ) RETURN number IS cnumber number; cursor c1 is SELECT course_number FROM courses_tbl WHERE course_name = name_in; BEGIN open c1; fetch c1 into cnumber; if c1%notfound then cnumber := 9999; end if; close c1; RETURN cnumber; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM); END;
此函數稱爲FindCourse
。 它有一個名爲name_in
的參數,它返回一個數字。 若是找到基於課程名稱(course_name
)的匹配項,該函數將返回課程編號,不然返回99999
。htm
在上面函數定義完成後,您能夠在SQL語句中引用這個函數了,以下所示:教程
SELECT course_name, FindCourse(course_name) AS course_id FROM courses WHERE subject = '數學';
在Oracle中建立函數後,您可能會根據須要將其從數據庫中刪除。
語法
在Oracle中刪除函數的語法是:
DROP FUNCTION function_name;
function_name
- 要刪除的功能的名稱。示例
咱們來看一下如何在Oracle中刪除一個函數的例子。
DROP FUNCTION FindCourse;
執行上面代碼後將刪除FindCourse
函數。