Oracle--plsql函数

  • 一个存储函数是一个命名的PL/SQL 块,它可以接受参数并且可以被调用。一般来说,函数用于计算一个值。
  • 函数和过程有相似的结构,但函数必须返回一个值到主叫环境。反之,过程可以没有返回值,也可以由多个值返回到它的主叫环境。
  • 象过程一样,函数有一个头,一个声明部分,一个执行部分和一个异常处理部分。在函数的头中必须有一个RETURN 子句,并且在执行部分至少有一个 RETURN 语句。
  • 函数可以作为一个方案对象被存储在数据库中用于反复执行。
  • 函数可以作为一个SQL 表达式或 PL/SQL表达式的一部分被调用。

函数语法:
PL/SQL 块必须至少有一个RETURN语句

语法说明

参数  说明  

function_name   函数的名字  

parameter   一个 PL/SQL变量的名字,其值被传递到函数中  

mode  参数的类型;可以是 IN、out、inout 参数 ,一般使用IN参数

datatype   参数的数据类型  

RETURNdatatype  RETURN 值的数据类型  

PL/SQLblock   定义要由函数执行的动作的程序体   


使用步骤:
1.在一个编辑器中输入CREATE FUNCTION语句的文本并且将它保存为一个SQL 脚本文件

2.运行存储源代码的脚本文件并且编译函数

3.用SHOW ERRORS查看编译错误

在sql*plus创建函数并调用

VARIABLE g_sal NUMBER

EXEC :g_sal := get_sal(7369)

Print g_sal


调用用户定义函数的位置

SELECT语句的Select 列表中
WHEREHAVING子句的条件中
START WITHORDER BYGROUPBY子句中
INSERT语句的VALUES子句中
UPDATE语句的SET子句中

SELECT empno, tax(sal)

FROM  emp

WHERE tax(sal)>(SELECTMAX(tax(sal))

       FROM  emp

       WHERE deptno = 30)

ORDER BY tax(sal) DESC;


SQL中调用函数的限制

为了从SQL 表达式中调用函数,用户定义函数必须:

只接受IN参数
只接受有效的SQL 数据类型,而不接受PL/SQL特殊的类型

 作为参数

返回数据类型为有效的SQL数据类型,而非PL/SQL 特殊的

 类型

在一个表上的UPDATEDELETE语句中调用的函数不能查询及更新同一个表
SQL 语句中调用的函数不能包含结束事务的语句

函数删除:


过程与函数:




posted on 2012-03-29 23:12  android开发实例  阅读(2020)  评论(0编辑  收藏  举报

导航