日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

oracle function详解,Oracle 函数 Function 解析

發布時間:2025/4/5 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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