日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle function详解,Oracle 函数 Function 解析

發布時間:2025/4/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle function详解,Oracle 函数 Function 解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義

函數用于計算和返回一個結果值,把經常需要進行的計算寫成函數,函數的調用是表達式的一部分。

函數與過程在創建的形式上有些相似,也是編譯后放在內存中供用戶使用。

函數必須有一個返回值,而過程沒有做強制的規定。

RETURN在聲明部分需要定義一個返回參數的類型,而在函數體中必須有一個RETURN語句。如果函數結束時還沒有遇到返回語句,就會發生錯誤。

創建

create or replace function Fn_First

return varchar2? ? --不需要長度

is

Result varchar2(100);? ? --declare,長度定義。

begin

NULL;

return(Result);

end Fn_First;

調用方法一

declare

var_str varchar(100);

begin

var_str := fn_first();

dbms_output.put_line(var_str);

調用方法二

select? fn_first() from dual;

項目應用

帶輸入參數

CREATE OR REPLACE FUNCTION SF_PUB_STRMINUSINT

(p_beg in varchar2,

p_end in varchar2

)

return int

/**

AUTH

FUNC? 兩個隨機號相減得數

**/

AS

v_ret? int;

vs_geb? varchar2(30);

vs_str? varchar2(30);

vn_beg? int;

vs_dne? varchar2(30);

vn_end? int;

begin

--反轉

select reverse(p_beg) into vs_geb from dual;

--正則

select regexp_substr(vs_geb,'[0-9]+',1,1) into vs_str from dual;

--取得隨機碼

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;

--取得隨機碼

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;

以對象返回數據列表

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 function详解,Oracle 函数 Function 解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。