sql >> データベース >  >> RDS >> Mysql

GoogleAppsScriptでストアドプロシージャを実行する

    おそらくこれを読むと役立つかもしれません:JDBCからのMySQLストアドプロシージャの呼び出し

    これはあなたが間違っているところです:

    mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);
    

    宣言された「callstoredprocedure」は使用しません。

    以下の例をお読みください:

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

    説明させてください:クエリは、値を返さない1つのパラメータを受け入れる呼び出しと同様に定義されています。次に、conn.prepareCall()で使用され、パラメータがステートメントに設定されてから実行されます。

    私が言ったように、あなたはこれをするべきです:

    mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);
    

    これで問題が解決した場合は、お知らせください。




    1. GROUPBYおよびHAVING結果セットを展開します

    2. FLOSSUK春の会議

    3. postgresでテーブル用に作成されたインデックスを一覧表示する方法

    4. OracleCloudInfrastructureのコンパートメントについて知っておくべき7つのこと