私はこのコードを実行していましたが、奇妙なことが起こりました。外部ファイルから一括挿入します。しかし、その結果、断片化されているか、破損している可能性があります。
cnx=factoryInstace.getConnection();
pstmt = cnx.prepareStatement("DELETE FROM TEMPCELULAR");
pstmt.executeUpdate();
pstmt = cnx.prepareStatement("EXECUTE BLOCK AS BEGIN if (exists(select 1 from rdb$relations where rdb$relation_name = 'EXT_TAB')) then execute statement 'DROP TABLE EXT_TAB;'; END");
pstmt.executeUpdate();
pstmt = cnx.prepareStatement("CREATE TABLE EXT_TAB EXTERNAL '"+txtarchivoProcesar.getText()+"'(CELULAR varchar(11))");
pstmt.executeUpdate();
pstmt = cnx.prepareStatement("INSERT INTO TEMPCELULAR (CELULAR)SELECT CELULAR FROM EXT_TAB");
pstmt.executeUpdate();
pstmt = cnx.prepareStatement("SELECT CELULAR FROM TEMPCELULAR");
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
System.out.println("::"+rs.getString(1));
}
そして今、突然、テーブルの行が次のようになります。
::c@gmail.com
::abc2@gmail.
::m
abc3@gma
::.com
abc4@
::ail.com
ab
::@gmail.com
::bc6@gmail.c
::abc7@gmai
::com
abc8@g
::il.com
abc
::gmail.com
::c10@gmail.c
::
結果の間の空白は私が作ったものではありません。そのままの結果です。
外部テーブルのソース ファイル:
abc@gmail.com
abc2@gmail.com
abc3@gmail.com
abc4@gmail.com
abc5@gmail.com
abc6@gmail.com
abc7@gmail.com
abc8@gmail.com
abc9@gmail.com
abc10@gmail.com
sneciosup@hotmail.com
私のコードの何が問題なのですか?
私はこの奇抜な結果を何年も見たことがありません。データベースは、最初の実行時にユーザーの PC から作成されます。したがって、プログラムを実行するたびに本番環境にいます。
どんな助けでも大歓迎です。