0

Javaまたはデータベースで次の問題の解決策を探しています。助けてください。

ファイルを読み取り、レコードを oracle データベースに入れる必要があります。ファイルは、FTP の場所にある csv 形式 (列の値はパイプ | で区切られています) のようなものです。ファイル名が employee.txt で、対応するテーブル名が Employee であるとします。列を次のように仮定すると-

ID
name
Designation
Date_of_Joining  

txtファイルのレコードは次のようになります-

1234|saurabh srivastava|lead|06-0ct-1990
1235|a john|lead|09-nov-1992
1236|p kumar||10-dec-1991

ファイルには常に完全なレコードが含まれます。つまり、初めてファイルに 10 個のレコードがある場合、次回はこれらの 10 個のレコードと新しいレコードが含まれます。しかし、常にデータベースにのみ新しいレコードを保存する必要があります。JavaプログラムまたはDatabse(プロシージャ、クエリなど)を使用して、パフォーマンスへの影響を少なくする方法はありますか.

ありがとう。

4

1 に答える 1

0

あなたの最善の策は、混合アプローチかもしれません。最後に読み取った行をデータベースに保存できるファイルは、他に何も変更しないと仮定します。次に、Javaプログラムはファイルを開き、データベースから最後の行(または最後に読み取った行番号を持つ別のファイル)を取得して、次の行にスキップし(存在すると仮定)、値の解析/データベースへの挿入を開始できます。データベースのみのアプローチは、クライアントまたは別の「ログ」に分離するのではなく、可能であると仮定して、すべての解析処理をサーバーに配置するため、あなたにとって素晴らしいとは思いませんその部分のサーバー。

いずれにせよ、最後の行を何らかの形で保持する必要があります。そうしないと、毎回ファイル全体を処理してから、そこにないものを挿入するだけで効率的ではなく、時間の経過とともに時間がかかります。

于 2013-01-06T18:52:23.650 に答える