Пожалуйста, помогите мне в вызове хранимой процедуры из JDBC - PullRequest
0 голосов
/ 23 июля 2011

Это моя программа JDBC

public class TestOCIApp {

    public static void main(String args[]) throws ClassNotFoundException,
            SQLException {

        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:orcle", "scott", "tiger");

            CallableStatement cs = conn.prepareCall("{call emp_name(?,?)}");

            cs.registerOutParameter(2, java.sql.Types.INTEGER);
            cs.setInt(1, 7934);

            ResultSet rs = cs.executeQuery();
                while (rs.next())
                System.out.println(rs.getString(1));
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Это моя хранимая процедура

 CREATE OR REPLACE PROCEDURE emp_name (id IN NUMBER, emp_name OUT NUMBER)
   IS

   BEGIN

      SELECT ename INTO emp_name

      FROM emp WHERE empno = id;

   END;

1 Ответ

0 голосов
/ 25 июля 2011

Вы должны вызвать вашу хранимую процедуру следующим образом:

            cs.execute();
            ResultSet rs = (ResultSet)cs.getObject(1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...