我目前有一个每日进程,使用调用sql_loader的
shell脚本将大量数据从TXT文件加载到ORACLE数据库.我想将它迁移到.NET服务,但不想依赖从我的服务执行sql_loader.
实现这一目标的最佳(最快)方法是什么?
解决方法
我假设你不喜欢SQLLoader,因为它的命令行界面,以及(有些)笨重的控制文件.但这不是使用“SQLLoader”的唯一方法
Oracle现在有一种称为外部表的东西.您可以看到示例here.
简单地说,您将文件放入目录(定义文件系统目录的数据库对象),定义表参数等…只需查看示例.现在突然间你的flatfile看起来像是Oracle的一个表.
执行“INSERT INTO perm_Table SELECT * FROM external_table”.
所以现在你的.net应用程序只是将文件重命名为外部表指向的文件,然后执行INSERT,然后重新命名文件.
瞧.
您已加载数据.这一切都使用SQL完成,比ADO或任何其他可以访问的库快得多.没有更笨重的命令行界面.