Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Führen Sie eine gespeicherte Prozedur im Google Apps-Skript aus

Vielleicht hilft Ihnen das Lesen dieses Artikels:Calling MySQL Stored Procedures from JDBC

Hier machen Sie einen Fehler:

mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

Sie verwenden nicht die deklarierte 'callstoredprocedure'.

Lesen Sie das Beispiel unten:

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

Lassen Sie mich erklären:Die Abfrage ist definiert, ähnlich wie bei Ihrem Anruf, der 1 Parameter akzeptiert, der keinen Wert zurückgibt. Dann wird es verwendet in:conn.prepareCall() , und dann wird der Parameter auf die Anweisung gesetzt und dann ausgeführt.

Wie ich bereits erwähnt habe, sollten Sie Folgendes tun:

mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Bitte lassen Sie mich wissen, ob dies Ihr Problem behoben hat.