バッチで挿入を実行するには、以下のコードを実行しています。各値のプリペードドステートメントの値を変更する方法
String idlist=1,2,3;
PreparedStatement stmt = conn
.prepareStatement("INSERT INTO TEST.SAMPLE VALUES"
+ " (?, ?, ?, ?, ?, ?, ?,?,ARRAY("+ idlist +"))";
for (int i = 1; i <= ITERATION_MAX; i++) {
idlist=listofdata.get(i).get_idlist();
stmt.setInt(1, listofdata.get(i).get_id());
stmt.setInt(2, listofdata.get(i).get_name());
stmt.setInt(3, listofdata.get(i).get_place());
stmt.setInt(4, listofdata.get(i).get_year());
stmt.setInt(5, listofdata.get(i).get_day());
stmt.setInt(6, listofdata.get(i).get_rollno());
stmt.setInt(7, listofdata.get(i).get_main_subject());
stmt.setArray(8, listofdata.get(i).get_elective());
stmt.addBatch();
}
stmt.executeBatch();
しかし、ここではidlist(設定できません)という文字列があり、そのたびにinsert文が連結されています。
しかしidlistの値はlistofdata.get(i).get_idlist();
データ型の競合の問題(HANAデータベース)があるので、私はパラメータとして設定することはできません。だから、私はどのようにこののみ.Butでなければならないことにより、各ループ内で更新されます各ステートメントのidlist値を変更しないでください。
私はSCHEMA.TABLEが、あなたが使用している名前ではなく、あなたの意図的な難読化であることを願っています。誰かがこれが非正規化スキーマであることをあなたに伝える必要があります。あなたのリストは、1:多くの親子の外部キー関係として、より正常化される可能性があります。 – duffymo
私は問題が親子関係のキーの関係であることはありません。問題は、各準備文でidlistの値を更新する方法です。 – RKR
正規化が何であるか分かりません。 – duffymo