Oracle自定義函式例項

2021-08-29 17:20:31 字數 1261 閱讀 7985

--沒有引數的函式

create or replace function get_user return varchar2 is

v_user varchar2(50);

begin

select username into v_user from user_users;

return v_user;

end get_user;

--測試

方法一select get_user from dual;

方法二sql> var v_name varchar2(50)

sql> exec :v_name:=get_user;

pl/sql 過程已成功完成。

sql> print v_name

v_name

------------------------------

test

方法三sql> exec dbms_output.put_line('當前資料庫使用者是:'||get_user);

當前資料庫使用者是:test

pl/sql 過程已成功完成。

--帶有in引數的函式

create or replace function get_empname(v_id in number) return varchar2 as

v_name varchar2(50);

begin

select name into v_name from employee where id = v_id;

return v_name;

exception

when no_data_found then

end get_empname;

附:

函式呼叫限制

1、sql語句中只能呼叫儲存函式(伺服器端),而不能呼叫客戶端的函式

2、sql只能呼叫帶有輸入引數,不能帶有輸出,輸入輸出函式

3、sql不能使用pl/sql的特有資料型別(boolean,table,record等)

4、sql語句中呼叫的函式不能包含insert,update和delete語句

檢視函式院源**

oracle會將函式名及其源**資訊存放到資料字典中user_source

select text from user_source where name='get_empname';

刪除函式

drop function get_empname;

Oracle自定義函式

語法如下 create or replace function function name argment type,argment type return return type 返回資料的型別 變數的申明,比如 stryuan varchar2 150 begin function body 函...

oracle 自定義函式

下面是乙個前輩寫的判斷是否是手機號的函式 create or replace function ismobile pmsg varchar2 return number isvprefix varchar2 20 vlen number begin vlen lengthb pmsg if vlen...

Oracle自定義函式

二 刪除自定義函式 三 應用經驗 在oracle資料庫中,為了實現特定的功能,可以自定義函式,就像c c 語言,除了系統的庫函式,程式設計師還會編寫很多自定義的函式。create or replace function 函式名 引數1 模式 資料型別,return 資料型別 as 定義區域性變數。變...