CallableStatement storedoc=conn1.prepareCall("{call  name(parameter)}");
ResultSet rs=storedoc.executeQuery();

解决方案 »

  1.   

    比如说,有三个参数,两个入参,分别是VARCHAR2,和NUMBER,有一个出参,是NUMBER,该怎么弄,请举例说明,帮帮忙吧,我急呀
      

  2.   

    try{
        CallableStatement orderCounter;
        orderCounter=conn.prepareCall("{ call ?=函数名[?,?]}  ");//对于一个oracle的函数调用
        //或 orderCounter=conn.prepareCall("{call 过程名[?]}");//对于一个oracle的过程
        orderCounter.registerOurParameter(1,java.sql.Types.NUMBER);//声明返回值类型
        orderCounter.setString(2,值);
        orderCounter.setInt(3,值);
        orderCounter.execute();
        number=orderCounter.getFloat(1);//接收返回数据
    }catch(Exception ex){}conn.commit();
    orderCounter.close();
      

  3.   

    CallableStatement cstmt=conn.prepareCall("{call  Produrc_name(?,?,?)}");
    cstmt.setString(1,"param1 value");
    cstmt.setString(2,"param2 value");
    cstmt.registerOutParameter(3,java.sql.Types.NUMERIC);
    cstmt.execute();
      

  4.   

    不行呀,主要是出参,我用它cstmt.registerOutParameter(3,java.sql.Types.NUMERIC);
    编译时总是出错:"jsp1.jsp": Error #: 300 : method registerOurParameter(int, int) not found in interface java.sql.CallableStatement at line 35
      

  5.   

    Connection conn=null;
    CallableStatement cstmt=null;
    ResultSet rs=null;try
    {
        //建立数据库连接,并调用存储过程取得结果集
       Class.forName("oracle.jdbc.driver.OracleDriver") ;
       temp = DBConnectionManager.getInstance();
       conn = temp.getConnection("oracle_ets");
       String procedure = "{Call PKG_ACTSALESALARYSUM.getActSaleSalarySum(?,?,?,?,?,?,?)}";
       cstmt = conn.prepareCall(procedure);
       cstmt.setString(1,year);
       cstmt.setString(2,month);
       cstmt.setString(3,filialeid);
       cstmt.setString(4,officeid);
       cstmt.setString(5,staffname);
       cstmt.setString(6,account);
       cstmt.registerOutParameter(7,oracle.jdbc.driver.OracleTypes.CURSOR);
       cstmt.execute();
       rs = (ResultSet)cstmt.getObject(7);