具有默认参数的功能
==================================
CREATE OR REPLACE function weekdaysinmonth(mdate date default
sysdate-(to_char(sysdate,'dd')-1),weekday integer default 1) return varchar2
as
myexp exception;
cursor c1(dt date) is
with dtsun as (select dt + level-1 dm,
to_char(dt+ level-1,'d') dy
from dual connect by level <=to_char(last_day(dt),'dd'))
select count(dm) from dtsun where dy=weekday;
mcount number(4);
wkd varchar2(10);
begin
if weekday>7 or weekday<=0 then
raise myexp;
end if;
if to_char(mdate,'dd')<>1 then
raise myexp;
end if;
open c1(mdate);
fetch c1 into mcount;
close c1;
case weekday
when 2 then
wkd:='Mon';
when 3 then
wkd:='Tue';
when 4 then
wkd:='Wed';
when 5 then
wkd:='Thu';
when 6 then
wkd:='Fri';
when 7 then
wkd:='Sat';
else
wkd:='Sun';
end case;
return ('Number of '|| wkd || ' in '||to_char(mdate,'Month') || ' is ' || mcount);
exception
when myexp then
return ('supplied date should be first of the month and weekday should be between 1-7');
when others then
return null;
end;
功能不带参数
===========================
CREATE OR REPLACE FUNCTION out_func (outparm OUT VARCHAR2)
RETURN VARCHAR2 IS
BEGIN
outparm := 'out param';
RETURN 'return param';
END out_func;
执行
---------------------------
DECLARE
retval VARCHAR2(50);
outval VARCHAR2(50);
BEGIN
retval := out_func(outval);
dbms_output.put_line(outval);
dbms_output.put_line(retval);
END;
输入输出功能
=========================
--through the same variable the function accepts the value and returns the value.
CREATE FUNCTION ANSAL(ENO IN OUT NUMBER)
RETURN NUMBER
IS BEGIN
SELECT (SAL+NVL(COMM,0))*12 INTO ENO FROM EMP WHERE EMPNO=ENO;
RETURN ENO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO MATCHING DATA FOUND');
RETURN 0;
END;
执行
------------------------
--Since the procedure contains out mode it can't be called directly at SQL Prompt.
DECLARE
NO NUMBER(5):=&NO;
SALARY NUMBER(5);
BEGIN
SALARY:=ANSAL(NO);
DBMS_OUTPUT.PUT_LINE(SALARY);
END;
还要检查
Oracle技巧和窍门-PL / SQL-功能-1From: https://bytes.com/topic/oracle/insights/743255-pl-sql-functions-2-a
本文深入探讨了Oracle数据库中PL/SQL函数的创建与使用,包括具有默认参数的函数、输入输出功能函数以及执行过程示例。通过具体代码展示了如何定义函数,处理异常,以及如何在SQL提示符下调用带有输出模式的函数。
1840

被折叠的 条评论
为什么被折叠?



