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

テーブルデータベースからコンテンツを継続的に取得する

    制限を使用して答えを見つけ、すべての制限行をファイルに保存し、すべての毎日のファイルに日付を使用します。...

                  if(vardbtype.equals("MYSQL")){
                        Class.forName("com.mysql.jdbc.Driver");
                        System.out.println("----------------------------");
                        int limitrowmysql = 0;
                        LocalDate now = LocalDate.now();
                        Path path = FileSystems.getDefault().getPath("C:\\Users\\NN\\Documents\\Test\\RowMYSQL\\RowIDMYSQL_" + now.format(DateTimeFormatter.ISO_LOCAL_DATE) + ".txt");
                        if (Files.exists(path)) {
                            String latestRowIdFromFile  = Files.lines(path).max((e1, e2) -> {
                            if (((String)e1).isEmpty() || ((String)e2).isEmpty()) {
                                return -1;
                            }
                            return new Long(e1).compareTo(new Long(e2));
                            }).get(); // read latestRowId from file
                            if (latestRowIdFromFile != null && !latestRowIdFromFile.isEmpty()) {
                                limitrowmysql = Integer.valueOf(latestRowIdFromFile);
                            }
                        } else {
                            limitrowmysql = 0;
                        }
                        Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+ vardbserver, vardbuser, vardbpassword);
                        while(true) {
                            Statement stmts = c.createStatement();
                            int countrowmysql = 0;
                            String sql = ("SELECT * FROM "+ vardbname +" LIMIT "+ limitrowmysql +", 18446744073709551615");
                            ResultSet rss = stmts.executeQuery(sql);
                            while(rss.next()) {
                                String  message = rss.getString("MESSAGE");
                                System.out.println("Message = " + message);
                                TextMessage mssg = session.createTextMessage(message);
                                System.out.println("Sent: " + mssg.getText());
                                producer.send(mssg);
                                countrowmysql = countrowmysql + 1;
                            }
    
                            rss.close();
                            stmts.close();
                            Thread.sleep(batchperiod2);
    
                            limitrowmysql = limitrowmysql + countrowmysql;
                            Files.write(path, ("\n" + limitrowmysql).getBytes()); // write latestRowId to file
                        }
                    }
    



    1. mysqlの一時テーブルをクリーンアップするにはどうすればよいですか?

    2. チェコ語のPostgresql全文検索(デフォルトの言語設定なし)

    3. LIKE式で安全に使用できるように、SQLServerで文字列をエスケープします

    4. PostgreSQLの1行のウィンドウ関数の最初と最後の値