sql >> Base de Datos >  >> RDS >> Mysql

ejecutar el procedimiento almacenado en el script de aplicaciones de Google

Quizás leer esto podría ayudarlo:Llamar a los procedimientos almacenados de MySQL desde JDBC

Aquí es donde te equivocas:

mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

No utiliza el 'procedimiento de llamada almacenado' declarado.

Lea el ejemplo a continuación:

public static void getSkills(int candidateId) {
    // 
    String query = "{ call get_candidate_skill(?) }";
    ResultSet rs;

    try (Connection conn = MySQLJDBCUtil.getConnection();
            CallableStatement stmt = conn.prepareCall(query)) {

        stmt.setInt(1, candidateId);

        rs = stmt.executeQuery();
        while (rs.next()) {
            System.out.println(String.format("%s - %s",
                    rs.getString("first_name") + " "
                    + rs.getString("last_name"),
                    rs.getString("skill")));
        }
    } catch (SQLException ex) {
        System.out.println(ex.getMessage());
    }
}

Me explico:la consulta está definida, similar a su llamada que acepta 1 parámetro que no devuelve ningún valor. Luego se usa en:conn.prepareCall() , y luego el parámetro se establece en la declaración y luego se ejecuta.

Como mencioné, deberías hacer esto:

mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Por favor, hágamelo saber si esto solucionó su problema.