怎么没人帮我呀?我把代码写出来,请高手们帮忙!
这是我建的包和存储过程:
SQL> create package task_search
2 as
3 type ta_search is ref cursor;
4 procedure gettask(ta_id varchar2,ts_sor out ta_search);
5 end task_search;
6 /程序包已创建。SQL> create package body task_search
2 as
3 procedure gettask(ta_id varchar2,ts_sor out ta_search)
4 is
5 begin
6 open ts_sor for
7 select * from tasks where task_id=ta_id;
8 end gettask;
9 end task_search;
10 /程序包主体已创建。在java中调用该存储过程返回结果集时出现错误:
…………
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:datamy","system","pqh0720");
…………String procedure = "{?=call tasksearch.gettask(?,?)}";
CallableStatement cstmt = conn.prepareCall(procedure);
cstmt.registerOutParameter(2,java.sql.Types.Cursor);//这行该如何写?
cstmt.setString(1,searchTaskID);
cstmt.execute();
ResultSet rs=(ResultSet)cstmt.getObject(2);
while(rs.next()){
System.out.println(rs.getString(2));
…………错误提示cannot resolve symbol
symbol : variable Cursor
这是我建的包和存储过程:
SQL> create package task_search
2 as
3 type ta_search is ref cursor;
4 procedure gettask(ta_id varchar2,ts_sor out ta_search);
5 end task_search;
6 /程序包已创建。SQL> create package body task_search
2 as
3 procedure gettask(ta_id varchar2,ts_sor out ta_search)
4 is
5 begin
6 open ts_sor for
7 select * from tasks where task_id=ta_id;
8 end gettask;
9 end task_search;
10 /程序包主体已创建。在java中调用该存储过程返回结果集时出现错误:
…………
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:datamy","system","pqh0720");
…………String procedure = "{?=call tasksearch.gettask(?,?)}";
CallableStatement cstmt = conn.prepareCall(procedure);
cstmt.registerOutParameter(2,java.sql.Types.Cursor);//这行该如何写?
cstmt.setString(1,searchTaskID);
cstmt.execute();
ResultSet rs=(ResultSet)cstmt.getObject(2);
while(rs.next()){
System.out.println(rs.getString(2));
…………错误提示cannot resolve symbol
symbol : variable Cursor
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货