-2

同じ構造を持つ 2 つの Oracle データベースがあります。あるテーブルの内容をあるデータベースから別のデータベースにコピーする必要があります。このタスクを処理するための Java プログラムを作成しています。テーブルの構造は将来変更される可能性があるため、プログラムは自動的に適応できる必要があります。次のコードを試しました:

try {
                ResultSet rsConfig = getConfigRows(srcDatabase); // this method returns SELECT * FROM TEST_TABLE
                ResultSetMetaData rsmd = rsConfig.getMetaData();
                int colCount = rsmd.getColumnCount();
                String columns = "";
                String values = "";
                for (int j = 1; j <= colCount; j++) {                       
                    columns += rsmd.getColumnName(j);
                    if (j <= colCount)
                        columns += ",";
                    values += "?";
                    if (j <= colCount)
                        values += ",";
                }

                String sql = "INSERT INTO TEST_TABLE(" + columns + ") VALUES("
                        + values + ")";
                PreparedStatement psDest = destDatabase.prepareStatement(sql);

                while (rsConfig.next()) {
                    for (int j = 1; j <= colCount; j++) {
                        psDest.setObject(j, (Object) rsConfig.getObject(rsmd
                                .getColumnName(j)));
                    }
                    psDest.executeUpdate();
                }

私のコードに何か問題がありますか? 助言がありますか ?何らかの理由で、外部ツールの使用が許可されていないことに注意してください。

4

2 に答える 2

3

時間を無駄にしないでください。データベース リンクを作成し、PL/SQL で数行を記述すれば完了です。

于 2013-02-28T22:12:58.047 に答える
1

このアプローチで問題を抱えていると思います。テーブル構造が実際に変更される頻度はどれくらいですか? この表のデータはどの程度重要ですか?

クエリと必要なその他の構成を外部化してから、エラー処理が適切であることを確認し、スキーマが期待どおりでなくなった場合は正常に終了することをお勧めします。

その後、スキーマが変更された場合、コードではなく構成を更新できます。

于 2013-02-28T21:50:50.897 に答える