新聞中心
本篇文章重點(diǎn)為大家講解一下Oracle 函數(shù) Function的具體使用方法,有需要的小伙伴可以參考一下。

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出五寨免費(fèi)做網(wǎng)站回饋大家。
定義
函數(shù)用于計算和返回一個結(jié)果值,把經(jīng)常需要進(jìn)行的計算寫成函數(shù),函數(shù)的調(diào)用是表達(dá)式的一部分。 函數(shù)與過程在創(chuàng)建的形式上有些相似,也是編譯后放在內(nèi)存中供用戶使用。 函數(shù)必須有一個返回值,而過程沒有做強(qiáng)制的規(guī)定。 RETURN在聲明部分需要定義一個返回參數(shù)的類型,而在函數(shù)體中必須有一個RETURN語句。如果函數(shù)結(jié)束時還沒有遇到返回語句,就會發(fā)生錯誤。
創(chuàng)建
create or replace function Fn_First
return varchar2 --不需要長度
is
Result varchar2(100); --declare,長度定義。
begin
NULL;
return(Result);
end Fn_First;
調(diào)用方法一
declare
var_str varchar(100);
begin
var_str := fn_first();
dbms_output.put_line(var_str);
調(diào)用方法二
select fn_first() from dual;
項(xiàng)目應(yīng)用
帶輸入?yún)?shù)
CREATE OR REPLACE FUNCTION SF_PUB_STRMINUSINT
(p_beg in varchar2,
p_end in varchar2
)
return int
/**
AUTH
FUNC 兩個隨機(jī)號相減得數(shù)
**/
AS
v_ret int;
vs_geb varchar2(30);
vs_str varchar2(30);
vn_beg int;
vs_dne varchar2(30);
vn_end int;
begin
--反轉(zhuǎn)
select reverse(p_beg) into vs_geb from dual;
--正則
select regexp_substr(vs_geb,'[0-9]+',1,1) into vs_str from dual;
--取得隨機(jī)碼
select to_number(reverse(vs_str)) into vn_beg from dual;
--止號
select reverse(p_end) into vs_dne from dual;
--正則
select regexp_substr(vs_dne,'[0-9]+',1,1) into vs_str from dual;
--取得隨機(jī)碼
select to_number(reverse(vs_str)) into vn_end from dual;
v_ret:=vn_end-vn_beg+1;
return v_ret;
end SF_PUB_STRMINUSINT;
以對象返回數(shù)據(jù)列表
create or replace function fn_test
( pid in number
)
return
tabTEST
is
Result tabTEST =tabTEST();
USERID number(12);
VNAME varchar(200);
orgid number(12);
type tab is table of number;
tab_test1 tab;
/***
create or replace type ctest as object
(
cUser number(12), --不可注釋
cName varchar(200),
cOrg number(12)
)
create or replace type tabTEST is table of ctest
測試
select from table(cast(fn_test({0})as tabTEST))
***/
begin
select ID bulk collect into tab_test1 from tuser where id=pid;
Result =tabTEST();
for i in 1..tab_test1.count loop
select ID,name,belongorg into USERID,VNAME,orgid from tuser where ID=tab_test1(i);
Result.extend;
Result(Result.count)=ctest(NULL,NULL,NULL);
Result(Result.count).cUser=USERID;
Result(Result.count).cName=VNAME;
Result(Result.count).cOrg =orgid;
end loop;
return(Result);
end fn_test;
文章名稱:Oracle函數(shù)Function的具體使用方法
標(biāo)題來源:http://fisionsoft.com.cn/article/dpogope.html


咨詢
建站咨詢
