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 回答