oracle 里面如何返回一个结果集信息?

解决方案 »

  1.   

    游标create or replace package test is---包头 
      type cursorref is ref cursor;---定义游标 
      function getTodoList(userid    varchar2, username  varchar2) return cursorref;--函数 
    end test ; create or replace package body test is-----包体 
    function getTodoList 
           (userid   varchar2, 
            username varchar2) 
      return cursorref 
      is 
        vs_userid  varchar2(200); 
        vs_sql     varchar2(2000); 
        p_cursor   cursorref; 
      begin 
       vs_sql :='select Email,School,Address from userInfo where id='||userid||' name='||username; 
        open p_cursor for vs_sql; 
        return p_cursor; 
    end; 
    end test;CallableStatement callsta=conn.prepareCall("{?=call pkg_flow.getTodoList(?,?)}"); 
                callsta.setString(2, "001"); 
                callsta.setString(3, "laozhang"); 
                callsta.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR); 
                callsta.execute(); 
                ResultSet rs=(ResultSet)callsta.getObject(1); 
      

  2.   

    当然是要返回游标了,然后类型转换就得到了ResultSet对象了
      

  3.   

    SQL codecreateorreplace package testis---包头  type cursorrefis refcursor;---定义游标function getTodoList(useridvarchar2, usernamevarchar2)return cursorref;--函数end test ;createorreplace package body testis-----包体function getTodoList 
           (useridvarchar2, 
            usernamevarchar2)return cursorrefis 
        vs_useridvarchar2(200); 
        vs_sqlvarchar2(2000); 
        p_cursor   cursorref;begin 
       vs_sql :='select Email,School,Address from userInfo where id='||userid||' name='||username;open p_cursorfor vs_sql;return p_cursor;end;end test;Java code
    CallableStatement callsta=conn.prepareCall("{?=call pkg_flow.getTodoList(?,?)}"); 
                callsta.setString(2,"001"); 
                callsta.setString(3,"laozhang"); 
                callsta.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR); 
                callsta.execute(); 
                ResultSet rs=(ResultSet)callsta.getObject(1);
    [/Quote]