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、多行函数:表...
Oracle开发的over函数
你还在为如何调用oracle中的存储过程和函数而烦恼吗,请看看该文档。
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数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
Oracle常用函数收集,Oracle开发必备文档,详尽解析各函数用法。
里面有oracle的所有内置函数,并且有使用实例,适合各位开发人员作为查询资料。