Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

execute o procedimento armazenado no script do google apps


Talvez ler isso possa ajudá-lo:Chamando os procedimentos armazenados do MySQL do JDBC

É aqui que você erra:
mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

Você não usa o 'callstoredprocedure' declarado.

Leia o exemplo abaixo:
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());
    }
}

Deixe-me explicar:A consulta está definida, semelhante à sua chamada aceitando 1 parâmetro que não retorna nenhum valor. Então ele é usado em:conn.prepareCall() , e então o parâmetro é definido para a instrução e então ele é executado.

Como mencionei, você deve fazer isso:
mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Por favor, deixe-me saber, se isso resolveu seu problema.