oracle存储函数简单介绍及实例

原创 2012年03月22日 21:26:42

存储函数

Oracle提供可以把PL/SQL程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数与其调用者交换信息。过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据。

一、函数(Function)为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个RETURN子句,用于返回函数值。函数说明要指定函数名、结果值的类型,以及参数类型等。

二、建立存储函数的语法:

CREATE [OR REPLACE] FUNCTION 函数名(参数列表)

RETURN  函数值类型

AS

PLSQL子程序体;

三、Java语言中调用存储函数

存储函数,代码:

create or replace function sumSal(emp_no number)--function(参数的值  必须有类型)

return number--必须有返回值

as

--声明变量

  emp_sal emp.sal%type;

  emp_comm emp.comm%type;

  total emp.sal%type;

begin

  select sal,comm into emp_sal,emp_comm from emp where empno=emp_no;

  total:=emp_sal*12+nvl(emp_comm,0);

  return total;--必须返回  返回值类型一定相同

end;

 

Java程序,代码:

         publicstaticvoid testProduceSumSal() throws SQLException{

       //存储函数

       //参数 in out 参数     通过占位符

       CallableStatement cas = conn.prepareCall("{?=call sumSal(?)}");

       //1开始

       int index=1;

       //为占位符赋值

       //输出参数

 cas.registerOutParameter(index++,oracle.jdbc.OracleTypes.NUMBER);

       cas.setInt(index++,7369);

       boolean flag = cas.execute();

      

       System.out.println(flag);

       System.out.println(cas.getInt(1));

    }

四、 什么时候用存储过程、存储函数?

原则:如果只有一个返回值,用存储函数;否则,就用存储过程。

 

Oracle中的函数和存储过程--真实项目示例

最近,在项目中写了数据库的函数和存储过程,趁此机会,整理了一下。 用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的参数有3种类型: (1)in参数类型:表示输入给函数的参数,该...
  • I_Am_Zou
  • I_Am_Zou
  • 2016年07月27日 11:16
  • 1197

编程实现哈希存储算法的简单实例

编程实现哈希存储算法的简单实现实例。 通过编写一个简单的哈希实例来加强对哈希算法的理解。下面实例包括存储与查找算法。拉链法解决冲突问题。 如果时间长了对哈希算法的理论知识不够了解,可以先阅读前面转载的...
  • hzhsan
  • hzhsan
  • 2014年05月11日 23:30
  • 3494

oracle存储过程实例

认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是...
  • G15738290530
  • G15738290530
  • 2016年07月05日 12:19
  • 5029

Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

  • 2010年12月29日 11:45
  • 22KB
  • 下载

MySQL 中的自定义函数和存储过程 简单实例

需要说明的是:MySQL中没有表变量, 一般是通过临时表来存贮结果集的。 那么 我们如何取出在储存过程中select出来的结果集呢?如果是其它存储过程中,你可以使用生成的临时表。如果是java程序中...
  • baoliangsheng
  • baoliangsheng
  • 2015年06月12日 16:37
  • 437

oracle wm_concat函数简单实例(实现行转成用分隔符分隔的一列)

主从表关联查询出从表某个字段的值用逗号连接起来 主表:故障单表 SP_PD_FAULT 从表:报障单表 SP_PD_FAULT_REPORT 目的:通过故障单关联查询出该故障单的报障单号,且用逗号分隔...
  • x2145637
  • x2145637
  • 2017年08月03日 17:46
  • 395

Oracle技术_5分钟会用存储过程_存储过程简单实例

  • 2014年11月17日 16:52
  • 2KB
  • 下载

Oracle存储过程基本语法介绍-实例

下面写一个简单的例子来对以上所说的存储过程的用法做一个应用:  现假设存在两张表,一张是学生成绩表(studnet) ,字段为:stdId,math,article,language,music,sp...
  • u012975700
  • u012975700
  • 2016年03月31日 09:50
  • 183

MYSQL的存储过程、变量、函数及部分简单优化(非常有用,有存储过程+光标实例)

MYSQL存储过程和函数,借鉴别人的文章和自己总结得出来的,非常有用的文章。...
  • qq_37718197
  • qq_37718197
  • 2017年10月26日 10:43
  • 157

oracle函数调用存储过程

  • 2012年06月26日 11:01
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle存储函数简单介绍及实例
举报原因:
原因补充:

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