时间:2021-07-01 10:21:17 帮助过:25人阅读
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 Oracle数据库工作中常会遇到将TXT文件导入到Oracle中进行处理的问题,这样可以对TXT中数据进行分析处理。下面就将完整的导入及处理方法列出,当做参照吧。 大多来自其他部门的数据都是以.xls形式存
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
Oracle数据库工作中常会遇到将TXT文件导入到Oracle中进行处理的问题,这样可以对TXT中数据进行分析处理。下面就将完整的导入及处理方法列出,当做参照吧。
大多来自其他部门的数据都是以.xls形式存在的,首先我们需要将其中的列数据进行处理,存入TXT中。
可以直接将这列数据复制到Notepad++之类的文本编辑器中,这样的目的是为了防止产生DOS下的换行符的存在,否则在导入Oracle数据库的时候不会成功。
复制进来的这列数据的最后一行总会是空行,需要将其删除。
生成一个TXT文件,我们生成的是1.txt。
现在将1.txt通过FTP上传到Linux你所使用的脚本目录下,以方便我们的导入。
在导入的时候我们需要使用两个程序,一个是导入脚本daoru.sh一个是导入控制文件daoru.ctl。上图为导入脚本文件的全部程序,我们导入的列只有一个,所以只需要建立一列TABLE PHONE_NO,就可满足我们的需求,若是列数更多,可以自行添加。
上图为控制文件daoru.ctl。我们需要做的是执行daoru.sh脚本,以生成临时表hh_tmp1,并插入一列PHONE_NO char(11)的字段,手机号码为11位,我们取char(11)即可。
执行之后,很快,我们的1.txt文件已经导入到了数据库的临时表hh_tmp1中,由于在daoru.sh脚本中,我们已经对导入的数据进行了剔除重复的操作,所以下面只要按照我们的需要来提取出来我们想要的数据即可。
我们使用的是PLSQL Developer,PLSQL Developer所登录的数据库用户必须与你在脚本中所使用的数据库用户一致,通过于原有数据库表进行连接,以实现获取我们所需要的数据。
提取出两列分别为PHONE_NO,BELONG_CODE,其中BELONG_CODE升序排列,以区分来自区域。
还有一句就是想把1.txt转换为excel格式,然后在windows打开。但是在linux环境下执行的语句。
cat exp_imp_report.list|sed 's/|/\t/g' >1.xls