Oracle Function详解

原创 2016年05月30日 21:58:53

一、概述

1、函数与存储过程的不同点
(1)、函数就是一个有返回值的过程,且是必须。
(2)、存储过程只能作为一个plsql语句调用,而函数不但可以作为plsql语句调用,符合约束的函数还可以作为sql表达式的一部分使用。
(3)、对于无参函数的定义和调用都没有圆括号,但无参存储过程需要。

2、函数与存储过程的相同点
(1)、都存储在数据库中,并且可在块中调用,代码都有定义部分、可执行部分、异常处理部分。
(2)、都有in,out,in out三种参数,都可以使用缺省值,都可以通过out模式返回一个或多个值。
(3)、都可以使用位置表示法和名称表示法。


二、函数参数的传递方式

1.无参函数
create or replace function fun_dtime return varchar2
as
begin
return to_char(sysdate,'yyyy"年"mm"月"dd"日"');
end;

调用
begin
dbms_output.put_line(fun_dtime);
end;

2.带输入输出参数的函数
create or replace function fun_info(i_eno number,o_title out varchar2,salch in out number) return varchar2
as
name emp.ename%type;
begin
select ename into name from emp where empno=i_eno;
update emp set sal=sal+salch where empno=i_eno returning job,sal into o_title,salch;
return name;
end;

调用
declare
v_eno number:=7369;
vn emp.ename%type;
vj emp.job%type;
vs emp.sal%type;
begin
vs:=100;
vn:=fun_info(v_eno,vj,vs);
dbms_output.put_line('姓名' || vn || '岗位' || vj || '新工资' || vs);
end;

3.删除函数
drop function fun_info;


三、return语句

在函数内,是通过return语句来返回值的。函数体可以有多条return语句,但只能有一条被执行。函数结束时,还没有执行return语句会产生错误。
另外,return语句也可以使用在存储过程中,这种情况下它没有参数,当执行不带参数的return语句后,立刻结束并跳出存储过程,将out,in out形式的形参的当前值传给实参,并将控制权返回到调用环境。


四、函数在PLSQL中的使用


1、函数可在sql中的以下部分被调用:
select、where、having、connect by、start with、order by、group by、insert的values中、update的set中

2、被调用的函数满足以下限制:
1)、只能调用服务端函数,即是不能作为块的一部分。
2)、函数只能有输入参数,不能有out\in out。
3)、函数只能使用sql支持的标准数据类型,不能使用PL/SQL特有的数据类型。
4)、函数内不能包含DML语句。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle Function 函数

Oracle Function 一、概述 1、函数与存储过程的不同点 (1)、函数就是一个有返回值的过程,且是必须。 (2)、存储过程只能作为一个plsql语句调用,而函数不但可以作为plsql语句...
  • bbliutao
  • bbliutao
  • 2012年08月06日 08:39
  • 17599

oracle function用法

函数调用限制 1、SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数 2、SQL只能调用带有输入参数,不能带有输出,输入输出函数 3、SQL不能使用PL/SQL的特有数据类型(bo...
  • jumtre
  • jumtre
  • 2014年07月24日 21:14
  • 28256

oracle常用函数详解(详细)

Oracle SQL 提供了用于执行特定操作的专用函数。这些函数大大增强了 SQL 语言的功能。函数可以接受零个或者多个输入参数,并返回一个输出结果。 Oracle 数据库中主要使用两种类型的函数: ...

oracle function开发

ORACLE 函数开发1、建立函数的语法:  CREATE [OR REPLACE] FUNCTION 函数名   [ (arg1 [mode] datatype[,........])]  --当指...

Oracle的几个Function实例

create or replace function str_list2( key_name in varchar2, key in varchar2, ...
  • jumtre
  • jumtre
  • 2014年07月24日 21:19
  • 6280

oracle之FUNCTION拙见

oracle的function: 1、如何定义 2、调用方式 3、在function中使用utl_dbws调用webservice...
  • zxnlmj
  • zxnlmj
  • 2014年03月25日 23:20
  • 1180

oracle function.rar

  • 2011年01月04日 16:46
  • 3.29MB
  • 下载

Oracle SQL function

  • 2007年08月21日 11:44
  • 269KB
  • 下载

Oracle创建一个type、package、body、function、procedure及常用系统函数。

捕获代码 begin null;--逻辑代码 exception when others then null;--异常处理代码 end;...
  • mycn027
  • mycn027
  • 2014年03月07日 08:49
  • 521

Oracle SQL function

  • 2008年07月11日 17:19
  • 35KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle Function详解
举报原因:
原因补充:

(最多只允许输入30个字)