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的作用方法;
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的作用方法;
相关文章推荐
- JAVA调用ORACLE的存储过程、函数的返回结果集
- Oracle 在函数或存储过程中执行sql查询字符串并将结果值赋值给变量
- oracle 存储过程执行可输入sql语句并返回结果集
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】
- JAVA调用ORACLE的存储过程、函数的返回结果集例子
- oracle调用存储过程和函数返回结果集
- Java程序和Oracle数据库调用相同的SQL查询语句,结果却不同
- oracle调用存储过程和函数返回结果集
- 【传智播客郑州校区】Java,PL/SQL调用 ORACLE存储函数以及存储过程
- 最完整的:JAVA调用ORACLE的存储过程、函数的返回结果集例子
- Java通过JDBC连接Oracle之后查询结果和在sqlplus查询结果不一样
- oracle 调用存储过程和函数返回结果集
- oracle调用存储过程和函数返回结果集
- 最完整的:JAVA调用ORACLE的存储过程、函数的返回结果集例子
- oracle调用存储过程和函数返回结果集
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- java调用ORACLE函数返回结果集
- Java 调用 Oracle 存储过程返回结果集
- java下实现调用oracle的存储过程和函数
- java调用存储过程,返回结果集