日期:2014-05-17  浏览次数:20899 次

java调用存储过程返回rs.absolute(1)报错
1.package com.mypack.test;  
2.  
3.import java.sql.CallableStatement;  
4.import java.sql.Connection;  
5.import java.sql.DriverManager;  
6.import java.sql.ResultSet;  
7.import java.sql.SQLException;  
8.  
9.public class Test {  
10. public static void main(String[] args) {  
11. Connection conn = null;  
12. CallableStatement pstmt = null;  
13. ResultSet rs = null;  
14. try {  
15. Class.forName("oracle.jdbc.OracleDriver");  
16. conn = DriverManager.getConnection(  
17. "jdbc:oracle:thin:@localhost:1521:jeffrey", "scott", "tiger");  
18. pstmt = conn.prepareCall("{call sp_findemp(?,?)}",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);  
19. pstmt.setInt(1,20);  
20. pstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);  
21. pstmt.execute();  
22.  
23. rs=(ResultSet) pstmt.getObject(2);  
24.  
25. rs.absolute(1);  
26. System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));  
27.  
28.  
29. } catch (ClassNotFoundException e) {  
30. e.printStackTrace();  
31. } catch (SQLException e) {  
32. e.printStackTrace();  
33. } finally {  
34. if (rs != null) {  
35. try {  
36. rs.close();  
37. } catch (SQLException e) {  
38. e.printStackTrace();  
39. }  
40. }  
41. if (pstmt != null) {  
42. try {  
43. pstmt.close();  
44. } catch (SQLException e) {  
45. e.printStackTrace();  
46. }  
47. }  
48. if (conn != null) {  
49. try {  
50. conn.close();  
51. } catch (SQLException e) {  
52. e.printStackTrace();  
53. }  
54. }  
55. }  
56. }  
57.}  
package com.mypack.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
public static void main(String[] args) {
Connection conn = null;
CallableStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:jeffrey", "scott", "tiger");
pstmt = conn.prepareCall("{call sp_findemp(?,?)}",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
pstmt.setInt(1,20);
pstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
pstmt.execute()