想写一个存储过程,查询出所有的记录。
比如,这个select id,name,sex from A 返回的所有信息
帮忙写个过程,我要在Java程序中调用过程,并的到素有行id,nam,sex的数据
好像是要用到游标,会的朋友看看

解决方案 »

  1.   


    --直接在程序中获得结果集就可以了啊,干嘛还用上面过程?PreparedStatement pstmtDelete=NULL;
    ResultSet rs = null;
    try{
        if(pstmtDelete == null)
               pstmtDelete = aConnection.prepareStatement("select id,name,sex from A ");
        rs=pstmtDelete.executeUpdate();
        while(rs.next()){
         。
         。
        }
    } catch (Exception e) {
            .....;
    }finally{
          try{
              if(pstmtDelete != null){
              pstmtDelete.close();
              pstmtDelete = null;
              }
            if(rs != null){
              rs.close();
              rs = null;
          }
          }catch(Exception e ) {
            .....
          }
    }
      

  2.   

    -- i_address 是存储过程的输入参数,o_cur是存储过程的输出游标参数,用以获取返回的结果集!
    CREATE OR REPLACE PROCEDURE userinfo_proc(i_address VARCHAR2, o_cur OUT SYS_REFCURSOR)
    IS
      sqlstr VARCHAR2(200); -- 定义变量,用以存放SQL语句
    BEGIN
      sqlstr := 'SELECT Id, Name, Sex, Age, Address FROM userinfo WHERE Address = :i_address'; -- 给SQL变量赋值,其中 :i_address 是绑定变量,以提高执行效率!
      OPEN o_cur FOR sqlstr USING i_address; -- 给游标变量赋值
    END;
    /set serveroutput on;
    var c_cur refcursor;
    exec userinfo_proc('北京',:c_cur);
    print c_cur;
      

  3.   

    Oracle 开发之 REF_CURSOR