5 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
16.自定義函數(shù)
自定義函數(shù)語(yǔ)法:
CREATE OR REPLACE FUNCTION 函數(shù)名
RETURN 返回值類型
IS
聲明部分;
BEGIN
函數(shù)體;
RETURN 變量;
END;
函數(shù)與存儲(chǔ)過(guò)程的區(qū)別:
(1)語(yǔ)法上除了創(chuàng)建對(duì)象的關(guān)鍵字不同之外,函數(shù)還多了一個(gè)RETURN關(guān)鍵字,它確定了該函數(shù)返回值的數(shù)據(jù)類型.
(2)存儲(chǔ)過(guò)程可以沒(méi)有返回值,但函數(shù)必須有返回值,即使發(fā)生異常也要返回.
(3)函數(shù)與標(biāo)準(zhǔn)SQL結(jié)合性更好,帶OUT型參數(shù)的存儲(chǔ)過(guò)程必須用PL/SQL方式調(diào)用,而函數(shù)均可以通過(guò)標(biāo)準(zhǔn)SQL調(diào)用.
注: (1)函數(shù)返回值只提供返回值類型,不允許有長(zhǎng)度.
(2)使用函數(shù)必須接收返回值.
樣例:
create or replace function getSal(v_empno varchar)
return number
is
v_sal number(4);
begin
select sal into v_sal from emp where empno=v_empno;
return v_sal;
end;
調(diào)用: (1) select getsal(7499) from dual;
(2) declare
v_sal number(4);
begin
v_sal:=getsal(7499);
dbms_output.put_line(v_sal);
end;
17.函數(shù)的刪除
語(yǔ)法: DROP FUNCTION 函數(shù)名;

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
create or replace function my_fun return number is
i number := 1;
total number := 1;
begin
while i<=20 loop
total := total*i;
i := i+1;
end loop;
return total;
end my_fun;
- 5 回答
- 0 關(guān)注
- 556 瀏覽
添加回答
舉報(bào)