我即将开发一个应用程序,用于将数据从文件加载到数据库中。 我已经使用sqlLoader通过命令行执行此操作并且它运行良好,但现在我想为该进程设置GUI。
我正在考虑使用Runtime.exec()从java调用sqlLoader,但我想我会将我的程序限制为仅限Windows,因此不具备可移植性。
我想知道是否有更高效/本地的方式将数据从文件通过java加载到数据库中。类似的东西:
文件 - > JAVA - > ORACLE。
欢迎任何建议!
干杯,
答案 0 :(得分:1)
您可以使用JDBC连接到Oracle并管理来自该文件的数据。这是关于JDBC的教程:http://www.cs.ubc.ca/~ramesh/cpsc304/tutorial/JDBC/jdbc1.html
回复后编辑:
答案 1 :(得分:1)
管理远程进程并使其依赖于Oracle Utility OS安装是一项维护上的麻烦。我使用了关联数组和包函数。在包中为VARCHAR2,NUMBER等输入数组定义类型。然后(基本上!)在输入文件上使用readline()。split(“,”)为每一列构建并行数组。将数组传递给打包函数,该函数在一次往返中使用Oracle批量处理:
my_package.do_my_insert( field1_array, field2_array, field3_array ... )
forall idx in field1_array.first .. field1_array.last
insert into table1 ( field 1, field2, field3 ... )
values ( field1_array(idx), field2_array(idx), field3_array(idx) ... );
(上面缺少有关如何在JDBC中创建Oracle数组类型的大量代码,但是Oracle在其他地方对此进行了记录)
轻松将SQL批处理的性能提高10倍
答案 2 :(得分:0)
有多种方法可以通过Java将文件加载到DB。
INSERT ALL into table name (col1,col2,..) values (val1,val2,..) select * from dual;
之类的查询并批量插入。