- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0 |
函数是一个能够计算结果值的子程序,函数除了有一个RETURN子句之外,其它结构跟过程类似。值得注意的是,Oracle中的函数必须提供返回值,如果你定义的子程序没有返回值,那么你不应该把它定义成函数,而应该定义成过程。
一、函数
示例1:创建不带参数的函数
CREATE OR REPLACE FUNCTION currentTime --没有参数,不能加括号
RETURN VARCHAR2
AS
BEGIN
RETURN TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日"HH24"时"MI"分"SS"秒"');
END;
既然函数有返回值,那么函数就可以在允许有表达式的地方出现(带有输出参数或输入输出参数的函数除外)如:
DECLARE
myStr VARCHAR2(30);
BEGIN
myStr:=currentTime;
DBMS_OUTPUT.PUT_LINE(myStr);
END;
也可以使用SELECT语句查看函数的返回值:
SELECT currentTime FROM DUAL;
示例2:创建带有输入参数的函数
CREATE OR REPLACE FUNCTION getEmpNameByEmpNo(no [IN] NUMBER)
RETURN VARCHAR2
AS
name VARCHAR2(20);
BEGIN
SELECT eName INTO name FROM EMP WHERE empNo=no;
RETURN name;
EXCEPTION
WHEN NO_DATA_FOUND THEN
name:='无此员工';
RETURN name;
END;
示例3:创建带有输出参数的函数
CREATE OR REPLACE FUNCTION getEmpNameAndJobByEmpNo(no NUMBER,job OUT VARCHAR2)
RETURN VARCHAR2
AS
name VARCHAR2(20);
BEGIN
SELECT eName,job INTO name,job FROM EMP WHERE empNo=no;
RETURN name;
END;
调用方式如下:
DECLARE
job emp.job%TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE(getEmpNameAndJobByEmpNo(7788,job));
DBMS_OUTPUT.PUT_LINE(job);
END;
示例4:创建带有默认值的函数
CREATE OR REPLACE FUNCTION getEmpNameAndJobByEmpNo(no NUMBER DEFAULT 7788,job OUT VARCHAR2)
RETURN VARCHAR2
AS
name VARCHAR2(20);
BEGIN
SELECT eName,job INTO name,job FROM EMP WHERE empNo=no;
RETURN name;
END;
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |