您的位置:首页 > 数据库 > Oracle

java jdbc调用oracle的函数或过程返回SQL语句查询的结果集

2014-03-29 09:56 781 查看
开发工具:oracle 11g
netbean7.4
问题描述:java语句调用一个数据库函数返回一个查询的数据集;
解决方法:使用动态游标ref cursor解决
例子: (1,2步在数据库执行,3在netbean中执行)
1.创建动态游标
create or replace package my_cursors --my_cursors为程序包名,里面可能创建多个游标

is type my_cursor is ref cursor; --my_cursors是包内的游标,可供函数或是过程使用

end my_cursors;
2.创建函数
create or replace function find_emp(emp_ID varchar2,emp_name varchar2)

return my_cursors.my_cursor

as

corsors my_cursors.my_cursor;

begin

open corsors for select * from 员工 where ID=emp_ID or 姓名=emp_name;

return corsors;

end;

3. java 中调用函数(这只是部分java代码,connection需成功连接数据库存,自己设置)
CallableStatement callableStatement = connection.prepareCall("{ ? = call find_emp(?,?)}");
callableStatement.setString(2, this.txtDelID.getText().toString());

callableStatement.setString(3, this.txtDelName.getText().toString());

callableStatement.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);

callableStatement.execute();

ResultSet rs = (ResultSet) callableStatement.getObject(1);
执行后,rs就包含了成功的返回数据库中查询到的数据集,通过rs.next(),取出数据,如何取出,请参考jdbc的resultSet的作用方法;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: