jsp调用存储过程的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
vcdll 2003-05-21 10:26:45 ccreate or replace package jutiPackage is
type test is ref cursor;
function get(sqlstr in varchar2) return test;
end jutiPackage;
/
create or replace package body jutiPackage is
function get(sqlstr in varchar2)
return test
is
mttest test;
str varchar2(80);
begin
if sqlstr = 'y' then ///////////////
open mttest for select * from test8;
else
open mttest for sqlstr;
end if;
return mttest;
end get;
end jutiPackage;
/
我在sqlplus里面的测试语句
declare
out_rs jutiPackage.test;
one test8.test1%type;
two test8.test2%type;
begin
out_rs := jutiPackage.get('y');
fetch out_rs into one ,two;
dbms_output.put_line(one);
dbms_output.put_line(two);
end;
/
测试语句输入后只会显示 :过程创建完毕
怎样才能在sqlpuls里面把结果显示出来
于是我又在JSP里面测试它:
String str = "{? = call jutiPackage.get(?)}";
callable = conn.prepareCall(str);
callable.registerOutParameter(1 , OracleTypes.CURSOR);
callable.setString(2 , "y"); //////////////
callable.execute();
rs = (ResultSet)callable.getObject(1);
while ( rs.next())
out.println(rs.getInt(1));
语句 rs = (ResultSet)callable.getObject(1);只能取出test8.test1列,(第一列)
rs = (ResultSet)callable.getObject ( 2 );会出现无效的列索引的异常
请问是我的存储过程有问题,还是JSP代码有问题
如何解决,我想要取出test8表的所有列(test8.test1,test8.test2)
谢谢