0

2 つのデータベースからクエリを呼び出すコードがありますが、同時にコンパイルする必要があります。これが私のコードです

public void SummTEkspor(){
        TEkspor ti = new TEkspor();
        TEksporDAOImpl impd = new TEksporDAOImpl (DBConnection.getInstance().getCon());
        String sql1 ="DELETE FROM a.dbo.t_export\n" +
                     "INSERT INTO a.dbo.t_export\n" +
                     "SELECT * FROM b.dbo.export x WHERE x.sk_batch IN \n" +
                     "(SELECT sk_batch from batch_hdr WHERE 

                          mth="+cmbBln.getSelectedItem()+
                         "AND year="+cmbThn.getSelectedItem();


        try {
            Statement st = kon.conn.createStatement();
            Statement st2 = kon.secCon.createStatement();
            ResultSet rs = st.executeQuery(sql1);
            while (rs.next()) {
                System.out.println("success");
            }
        } catch (Exception x) {
            System.out.println("error");
        }
    }

しかし、実行すると出力は問題ありませんが、クエリが正しく実行されず、テーブル内にデータがなく、そのテーブルにいくつかのデータがあります。

それを解決する解決策はありますか?返信ありがとうございます

4

3 に答える 3

0

取得する場合は executequery を呼び出す必要があり、削除または挿入する場合は executeUpdate メソッドを呼び出す必要があるため、1 行ですべてのステートメントを使用しないことをお勧めします。また、使用を避けてstatement使用するPreparedStatement

于 2013-10-03T04:45:45.777 に答える
0

データ更新のexecuteUpdate代わりに使ってみてください。executeQuery選択クエリを分離し、それを使用して実行しexecuteQuery、結果セットを取得します。

于 2013-10-03T04:31:49.690 に答える
0

executeUpdateの代わりに使用しexecuteQueryて、クエリをいくつかのクエリに分割してみてください。

于 2013-10-03T04:44:15.967 に答える