oracle存储函数简单介绍及实例
2012-03-22 21:26
429 查看
存储函数
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提供可以把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函数和存储过程简单实例
- (Oracle)存储过程、存储函数和包的相关知识与实例
- (Oracle)存储过程、存储函数和包的相关知识与实例
- Oracle的字符处理函数简单介绍
- c#调用ORACLE 存储过程和函数的简单样例
- 关于大小端的简单介绍以及使用C写一个函数判断当前系统是大端存储还是小端存储
- oracle中print_table存储过程实例介绍
- oracle简单的存储过程和函数以及触发器的使用
- oracle wm_concat函数简单实例(实现行转成用分隔符分隔的一列)
- oracle 最简单的学习笔记,增删改查,PLSQL基本语法,游标,函数,存储过程的实现
- MYSQL的存储过程、变量、函数及部分简单优化(非常有用,有存储过程+光标实例)
- oracle创建存储过程和函数的简单例子
- 使用Oracle函数索引简单介绍(一般)
- (Oracle)存储过程、存储函数和包的相关知识与实例
- ORACLE常用SQL、存储过程和函数
- ibatis调用oracle的函数,存储过程的方法 IN 和OUT /游标
- 常用oracle函数使用实例
- 原创:oracle中单行函数介绍 (五)
- Oracle Sales Cloud简单介绍
- oracle 存储过程实例