sql >> Databasteknik >  >> RDS >> Mysql

exekvera lagrad procedur i Google Apps-skript

Att läsa det här kanske kan hjälpa dig:Anropa MySQL Stored Procedures från JDBC

Det är här du gör fel:

mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

Du använder inte den deklarerade 'callstored procedure'.

Läs exemplet nedan:

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

Låt mig förklara:Frågan är definierad, liknande ditt anrop som accepterar 1 parameter som inte returnerar något värde. Sedan används den i:conn.prepareCall() , och sedan ställs parametern till satsen och sedan körs den.

Som jag nämnde bör du göra så här:

mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Meddela mig om detta löste ditt problem.




  1. Maximalt antal fungerande tabeller i SQL Server och MySQL

  2. Begränsning av samtidiga användarsessioner för en specifik inloggning i SQL Server

  3. MySQL Välj efter senaste tidsstämpel

  4. Det går inte att ansluta till AWS RDS via PDO