Oracle的存储过程和函数区别 1、都可以使用out参数返回多个值,一般原则是有多个返回值使用过程;如果只有一个返回值,使用函数 2、过程调用本身就是一条pl/sql语句,而函数只能作为表达式的一部分进行调用以获得user_objects表的object_name为例,由于只返回一个字段,所以使用Oracle函数,第一种方式返回标量数据类型,第二种方式返回游标类型。标量只包含一个值,而游标可以代表一个查询结果集。 一、返回标量的函数 1、在Oracle中定义函数 create function getObjectsName(obj_type varchar2) return varchar2 is o_name user_objects.OBJECT_NAME%type; o_names long; cursor objs_cursor(o_type varchar2) is select object_name from user_objects where object_type=o_type and rownum<11; begin open objs_cursor(obj_type); --打开游标 loop fetch objs_cursor into o_name; o_names:=o_names || '_' ||o_name;--使用一个变量合并所有值 exit when objs_cursor%NOTFOUND ; end loop; close objs_cursor; return o_names; end; 2、在java中调用 String function= "{?=call getObjectsName(?)}";//比调用存储过程多了一部分:“?=” cstmt = conn.prepareCall(function); //注册返回类型(或out类型)参数 cstmt.registerOutParameter(1, Oracle.jdbc.OracleTypes.VARCHAR); //注册传入(in类型)参数 cstmt.setString(2, "TABLE"); cstmt.execute(); //从输出参数中获取值 String values = cstmt.getString(1); System.out.println(values); 二、返回游标类型 首先定义返回类的类型,以便函数返回,有一些类型可以直接create定义,如嵌套表、varray,但是有一些类型不可以使用create,如索引表、游标,如果想返回不可create的类型,可以先创建package,再创建想返回的类型,如: 1、创建包规范 create or replace package yulee is type objNames_cur is ref cursor;--创建想返回的类型,以便function返回 function getObjNames(objType varchar2)return objNames_cur ; end yulee; 2、创建包体 create or replace package body yulee is function getObjNames(objType varchar2) return objNames_cur is objNames objNames_cur; begin OPEN objNames FOR select object_name from user_objects where object_type=objType and rownum<11; return objNames; close objNames;--不可以在return前关闭,否则java获得无效的游标 end getObjNames; end yulee; 3、java程序调用 String procedure = "{?=call yulee.getObjNames(?)}"; cstmt = conn.prepareCall(procedure); //注册返回参数 cstmt.registerOutParameter(1, Oracle.jdbc.OracleTypes.CURSOR); //传入参数 cstmt.setString(2, "TABLE"); cstmt.execute(); //打印返回值 rs = (ResultSet)cstmt.getObject(1); while(rs.next()){ System.out.println(rs.getString("object_name")); }
分享到:
- 2009-09-22 15:47
- 浏览 911
- 评论(0)
- 论坛回复 / 浏览 (0 / 2250)
- 查看更多
相关推荐
Oracle基本函数,Oracle常用经典SQL查询,有利于入门学习及供日常的使用。
ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...
常用 oracle函数汇总大全,很实用,基本都是常用到的
长度函数length 替换函数 replace 子串函数 substr sqlplus 基本命令
学习ORACLE PLSQL开发的可以下载来学习下,都是常用方法,挺好的,适合基础不是很好的开发者。
ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...
Oracle函数详解,内涵Oracle常用基本函数的详细解读
Oracle 常用函数练习含答案,里面有最基本的查询语句使用,各种函数练习
110个oracle常用函数总结,oracle中常用的函数基本上都有。
Oracle常用函数实战总结.xlsx: 1.内容:总结了Oracle数据库中常用的函数及其实战应用。这些函数可能包括字符串处理函数、数值计算函数、日期和时间函数、转换函数等。 2.用途:对于Oracle数据库的使用者来说,这...
Oracle基本函数总结,包括常用的函数,并带例子。很好的!
本文档主要对初学Oracle时的一些常用的基本函数进行一些介绍,也可作为教学教案的参考性文档,希望可以帮到你们,如有任何问题,请联系我进行沟通说明.
oracle 所有基本函数..........
比较常用的oracle函数及语句的实用文档,基本能否满足日常实用,对于初学者很有参考价值,可以作为工具书实用
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
oracle SQL查询和SQL函数手册 基本涵盖了常用的 自己学习收集的 拿出来共享
oracle中一些常用的函数以及创建触发器、存储过程、序列等一些语法;还有就是数据被删除后怎样恢复被删除的数据的方法
oracle 常用函数 最基本的 有示例,对初学者很有帮助。
本资料是oracle一些常用的语句,函数及常用的操作,希望能与大家分享
该文档里整理了oracle常用的一些函数,基本包含了所有的oracle内置函数.感觉还是不错的入门手册.和参考手册.