本帖最后由 awpsm4a1 于 2009-10-21 10:22:03 编辑

解决方案 »

  1.   

    参考如下代码:
    javax.sql.DataSource ds = (javax.sql.DataSource) ctx
    .lookup("mslv/oms/oms1/internal/jdbc/DataSource");
    conn = ds.getConnection();
    String sql = "{call PAL_ACTIVATION_ADAPT.GET_97_USERID_SERIALID(?,?,?,?,?)}";
    cstmt = conn.prepareCall(sql);
    cstmt.setString(1, this.serialNoRA);
    cstmt.registerOutParameter(2, Types.VARCHAR);
    cstmt.registerOutParameter(3, Types.VARCHAR);
    cstmt.registerOutParameter(4, Types.INTEGER);
    cstmt.registerOutParameter(5, Types.VARCHAR);
    cstmt.execute();
    this.userId = (cstmt).getString(2);
    this.serialNo97 = (cstmt).getString(3);
    this.nerr_Statement = (cstmt).getInt(4);
    this.serr_Statement = (cstmt).getString(5);
      

  2.   

    你的JSP,是不是直接用的JDBC连的库,如果是,你就按照JDBC的调用存储过程的方法不就可以了吗??
      

  3.   

    http://blog.csdn.net/moonsbird/archive/2007/10/11/1819513.aspx
      

  4.   

    String sql = "{call PAL_ACTIVATION_ADAPT.GET_97_USERID_SERIALID(?,?,?,?,?)}"; 
    PAL_ACTIVATION_ADAPT.GET_97_USERID_SERIALID 这个是存储过程名 例子是在PAL_ACTIVATION_ADAPT包下面的存储过程,如果你的存储过程不在特定的包下 可以直接写GET_97_USERID_SERIALID 
    cstmt.setString(1, this.serialNoRA); 设置输入参数
    cstmt.registerOutParameter(2, Types.VARCHAR);设置输出参数
    this.nerr_Statement = (cstmt).getInt(4); 获取存储过程返回值