java.sql.SQLException: Parameter number 2 is not an OUT parameter

 
 
 
Сообщения:18
Доброго времени суток.

Возникла следующая проблема - при попытке зарегистрировать OUT параметр в вызываемой процедуре возникает исключение java.sql.SQLException: Parameter number 2 is not an OUT parameter

Программа в которой возникает ошибка:
public static void main(String[] args) throws SQLException {
    Driver driver1 = new FabricMySQLDriver();
    DriverManager.registerDriver(driver1);

    Connection connection = DriverManager.getConnection(URL_MYSQL, USER_MYSQL, PASSWORD_MYSQL);
    Statement statement = connection.createStatement();

    statement.executeUpdate("USE experiments;");
    statement.executeUpdate("DROP PROCEDURE IF EXISTS getEmployee2;");
    statement.executeUpdate("CREATE PROCEDURE getEmployee2(IN employeeId INT, " +
            "OUT employeeName VARCHAR(40)) " +
            "SELECT name INTO employeeName FROM employees WHERE id=employeeId");
    statement.close();

    CallableStatement callStat = connection.prepareCall("{CALL getEmployee2(?,?)}");
    callStat.setInt(1,1);
    callStat.registerOutParameter(2, Types.VARCHAR); //Исключение возникает в этой строчке
    ResultSet result = callStat.executeQuery();
    result.next();
    System.out.println(result.getString("name") + " " + result.getInt("salary"));
    callStat.close();

    connection.close();
}


Использую MySql 5.7.21, jdk1.8.0_181

Стек ошибки:
Exception in thread "main" java.sql.SQLException: Parameter number 2 is not an OUT parameter
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861)
at com.mysql.jdbc.CallableStatement.checkIsOutputParam(CallableStatement.java:630)
at com.mysql.jdbc.CallableStatement.registerOutParameter(CallableStatement.java:1807)
at Main.main(Main.java:27)


Пожалуйста, помогите понять - в чем может быть ошибка.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет