oracle自定义函数

[url]http://blog.csdn.net/smartsmile2012/article/details/8242841[/url]
创建函数语法如下:
CREATE[OR REPLACE]FUNCTION function_name (arg1 [ { IN | OUT | IN OUT }] type1 [DEFAULT value1], [arg2 [ { IN | OUT | IN OUT }] type2 [DEFAULT value1]], ...... [argn [ { IN | OUT | IN OUT }] typen [DEFAULT valuen]]) [ AUTHID DEFINER | CURRENT_USER ]
RETURN return_type IS|AS <类型.变量的声明部分>
BEGIN 执行部分
RETURN expression
EXCEPTION 异常处理部分
END function_name;

1.建立无参数的函数
CREATE OR REPLACE FUNCTION cur_datetime
RETURN VARCHAR2
IS
BEGIN
RETURN TO_CHAR(sysdate,
'YYYY"年"MM"月"DD"日"HH24"时"MI"分"SS"秒"');
END;

2.建立带有输入参数的函数

CREATE OR REPLACE FUNCTION get_yeardays(select_year varchar2)
RETURN NUMBER
AS
num_days number;
BEGIN
num_days := to_date(select_year || '1231', 'yyyymmdd') -
trunc(to_date(select_year, 'yyyy'), 'year');
return num_days;
END;
计算全年统计天数:selct get_yeardays(2014)from dual;

3.建立带有输出参数的函数
CREATE OR REPLACE FUNCTION get_info
(eno NUMBER,title OUT VARCHAR2)
RETURN VARCHAR2
AS
vname scott.emp.ename%TYPE;
BEGIN
SELECT ename,job INTO vname,title FROM scott.emp
WHERE empno=eno;
RETURN vname;
END;

4.建立带有输入输出参数的函数
CREATE OR REPLACE FUNCTION get_upd_info
(eno NUMBER,sal_chg IN OUT NUMBER) RETURN VARCHAR2
AS
name emp.ename%TYPE;
BEGIN
UPDATE emp SET sal=sal+sal_chg WHERE empno=eno
RETURNING ename,sal INTO name,sal_chg;
RETURN name;
END;

[url]http://www.cnblogs.com/dogxuefeng/archive/2012/11/22/2782593.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值