1、建立函数的语法:
CREATE [OR REPLACE] FUNCTION 函数名
[ (arg1 [mode] datatype[,........])] --当指定参数数据类型时,不能指定其长度。mode值:IN、OUT、IN OUT,当mode 未指定时,表示为IN
RETURN datatype --用于指定函数返回值的数据类型,不能指定其长度
IS|AS
pl/sql block; --当建立函数时,在函数头部必须要带有RETURN子句,在函数体内至少要包含一条RETURN语句。
例1、无参函数
SQL> CREATE OR REPLACE function HX_01 --创建HX_01函数
2 RETURN VARCHAR2
3 IS
4 v_name varchar2(20);
5 begin
6 select ename into v_name from emp where empno=7369;
7 return v_name;
8 end;
9 /
Function created
SQL> select hx_01 from dual; --执行函数
HX_01
--------------------------------------------------------------------------------
SMITH
例2、带有一个IN参数
SQL> CREATE OR REPLACE function HX_02 --创建HX_02函数
2 (v_no in emp.empno%type)
3 RETURN VARCHAR2
4 IS
5 v_name varchar2(20);
6 v_sal emp.sal%type;
7 v_dname dept.dname%type;
8 v_return varchar2(100);
9 begin
10 select a.ename,a.sal,b.dname into v_name,v_sal,v_dname from emp a,dept b where a.deptno=b.deptno and empno=v_no;
11 v_return:='姓名:'||rpad(v_name,8)||LPAD('工资:',6)||v_sal||lpad('部门',6)||v_dname;
12 return v_return;
13 end;
14 /
Function created
SQL> begin
2 dbms_output.put_line(hx_02(7566)); --执行函数
3 end;
4
5 /
PL/SQL procedure successfully completed
输出:姓名:JONES 工资:2975 部门RESEARCH
或:
SQL> select hx_02(7566) from dual;
HX_02(7566)
--------------------------------------------------------------------------------
姓名:JONES 工资:2975 部门RESEARCH
例3、带有IN、OUT参数
SQL> CREATE FUNCTION hx_03 --创建HX_03函数
2 (v_n1 emp.empno%type,v_n2 out emp.ename%type,v_n3 out emp.sal%type,v_n4 out dept.dname%type)
3 return emp.job%type
4 as
5 job emp.job%type;
6 begin
7 select a.job,a.ename,a.sal,b.dname into job,v_n2,v_n3,v_n4
8 from emp a,dept b
9 where a.deptno=b.deptno
10 and a.empno=v_n1;
11 return job;
12 end;
13 /
Function created
declare
v1 emp.job%type;
v2 emp.ename%type;
v3 emp.sal%type;
v4 dept.dname%type;
begin
v1:=hx_03(7566,v2,v3,v4); --使用刚才定义的变量接收函数的输出值
dbms_output.put_line('姓名:'||v2||' '||'职业:'||v1||' '||'薪水:'||v3||' '||'部门:'||v4);
end;
输出:姓名:JONES 职业:MANAGER 薪水:2975 部门:RESEARCH
例4、带有in out参数
CREATE OR REPLACE FUNCTION HX_04(v_name in out varchar2) --创建HX_04函数
RETURN VARCHAR2
AS
BEGIN
SELECT DEPT.DNAME INTO V_NAME FROM DEPT,EMP WHERE DEPT.DEPTNO=EMP.DEPTNO AND EMP.ENAME=V_NAME;
RETURN NULL;
END;
DECLARE --执行函数
A VARCHAR2(20);
B VARCHAR2(20);
BEGIN
A:='WARD';
B:=HX_04(A);
DBMS_OUTPUT.put_line('A:='||A||' B:='||B);
END;
输出:A:=SALES B:=
2、删除函数语法
drop function 函数名;
相关推荐
oracle函数大全笔记,记录了开发所用到系统函数(函数名+实例),简明扼要,通俗易懂。
Oracle数据库开发之函数概述,包括经常使用的数值函数、字符函数、日期函数、转换函数等。
Oracle 数据库开发管理所涉及的常用函数锦集
总结了开发中Oracle常用到的一些函数,希望对大家有所帮助。 1、单行函数:表的每行都会有一个结果(字符函数、数字函数、日期函数、转换函数) 单行函数可以嵌套。嵌套函数的执行顺序是由内到外。 2、多行函数:表...
3. 提高开发效率:递归函数可以提高开发效率,减少开发时间。 但是,递归函数也存在一些局限性,例如: 1. 性能问题:递归函数可能会导致性能问题,特别是在大规模数据集的情况下。 2. stack overflow 问题:递归...
Oracle开发的over函数
Oracle函数大全[定义].pdf
oracle 分析函数 开发必备 数据库开发工程师
1 Oracle开发专题之:分析函数 OVER 2 Oracle开发专题之:分析函数 Rank Dense rank row number 3 Oracle开发专题之:分析函数3 Top Bottom N First Last NTile 4 Oracle开发专题之:窗口函数 5 Oracle开发专题...
Oracle创建函数是通过PL/SQL自定义编写的,通过关键字function按照自己的需求把复杂的业务逻辑封装进PL/SQL函数中,函数提供一个返回值,返回给使用者。这样使用者就不需要去理解业务逻辑,把PL/SQL函数中的业务逻辑...
Oracle 内置函数PPT,可以方便查询Oracle内置函数,为开发人员的好助手。
所有的oracle内置函数,方便查找和使用开发。
很多很实用的oracle函数,在实际开发中肯定都会用到的。
适合开发人员,内含Oracle常用函数,以及语句实例!
比较全的Oracle函数及其简单说明,作为日常开发的一个参考!也是从网上下载的,借花献佛!
分析函数(OVER) Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) Oracle开发专题之:分析函数3(Top/Bottom N、First/Last、NTile) Oracle开发专题之:窗口函数 Oracle开发专题之:...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
Oracle常用函数实战总结.xlsx: 1.内容:总结了Oracle数据库中常用的函数及其实战应用。...Oracle开发实战经典,包含大量的实例案例和详细的视频教程,使得读者能够更好地理解和掌握Oracle数据库的开发知识。
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
Oracle常用函数收集,Oracle开发必备文档,详尽解析各函数用法。