Mysql
 sql >> Base de données >  >> RDS >> Mysql

exécuter la procédure stockée dans le script google apps

Peut-être que lire ceci pourrait vous aider :Appeler des procédures stockées MySQL depuis JDBC

C'est là que vous vous trompez :

mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

Vous n'utilisez pas la 'callstoredprocedure' déclarée.

Lisez l'exemple ci-dessous :

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());
    }
}

Laissez-moi vous expliquer :la requête est définie, similaire à votre appel acceptant 1 paramètre ne renvoyant aucune valeur. Ensuite, il est utilisé dans le :conn.prepareCall() , puis le paramètre est défini sur l'instruction, puis il est exécuté.

Comme je l'ai mentionné, vous devriez faire ceci :

mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Veuillez me faire savoir si cela a résolu votre problème.