1,在公司进行预处理的时候,发现文件不能入库,而公司前辈使用的是sqlldr的技术将解析后的文件入库,前辈在测试的时候使用的是本机上的数据库(见图一),没有使用完整的远程连接oracle的正确方式,所以导致入库时在生成的日志wenj文件中报出TNS 连接标志错误的异常。
(图一:https://blog.csdn.net/a_222850215/article/details/80001501)
2,正确的远程连接oracle数据的方式:
(图二:http://blog.itpub.net/18922393/viewspace-709034/)
3,sqlldr的文件:
https://jingyan.baidu.com/article/22fe7ceddf732c3002617f2a.html
4,使用命令的方式
转至:https://blog.csdn.net/mark_lirenhe/article/details/82024775
5,使用java代码的方式
https://blog.csdn.net/u012557814/article/details/67636593
6,在使用sqlldr的过程中出现空格的情况需要注意:
转载下面的:http://blog.sina.com.cn/s/blog_701218960100l0gt.html(感谢,该为xion兄台解决了我的问题)
当我们的input file 有分隔符时,control file 中的 PRESERVE BLANKS 无效,因为 SQLLDR这时是保留空格的,这个时候只能在control file中针对每个字段做trim处理。
当我们的input file 是定长时, control file 中的 PRESERVE BLANKS 有效,因为 SQLLDR默认是去除空格的,如果不加这个参数,则自动去除空格,加则保留空格入库。
参考:1. Oracle SQL*Loader -- 英文,Sql Loader 的官方使用说明,包含多种类型的 Demo
2. sql loader的用法 -- 列出了 sql loader 的选择参数的中文说明
3. 使用SQL Loader导入大量数据,避免使用SQL频繁写库 -- 一个简单的例子,快带了解 Sql Loader 的用法
4. Oracle SQL Loader的详细语法
5. oracle sql loader全攻略 -- 还算名符其实。并讲了如何用 SQL *Plus 的 spool 或 UTL_FILE 包生成数据文件
6. SQL*Loader Control File Reference -- 英文,控制文件使用参考
7. 学习oracle sql loader 的使用
8. 用 sqlloader(sqlldr)装载LOB数据 -- LOB 的内类是一个外部文件,用 sql loader 导入到数据库
9. SQLLDR直 接加载几个参数的测试
10.Maximizing SQL*Loader Performance
11.sqlldr的用法详解:https://blog.csdn.net/stafen1/article/details/46785541