龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

通过sqllder从csv导入数据到Oracle的方法

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
在初学Oracle时,我们需要导入数据到Oracle数据库,方法有很多种。在这里主要介绍通过sqllder从csv导入数据到Oracle的方法。让我们一起学习下。 一、关于CSV文件添加到Oracle的方法。我有

在初学Oracle时,我们需要导入数据到Oracle数据库,方法有很多种。在这里主要介绍通过sqllder从csv导入数据到Oracle的方法。让我们一起学习下。
一、关于CSV文件添加到Oracle的方法。我有一个EXCEL的文件Prize_VS.xls,由姓名、身份证编号、通信地址、邮政编码四列组成,在EXCEL中将Prize_VS.xls另存为Prize_VS.csv,现在来向我的Oracle服务器上的表增加数据。进行最后操作前,在Prize_VS.csv所在的目录下新建文本文件input.ctl,内容为:   

  1. load   data     
  2. infile   'Prize_VS.csv'     
  3. append   into   table   方案名.Prize_VS     
  4. trailing   nullcols     
  5. (NAME   terminated   by   ",",     
  6. IDCARD   terminated   by   ",",     
  7. ADDREASS   terminated   by   ",",     
  8. POSTALCODE   terminated   by   ",")     
  9.      

保存后在DOS方式进入input.ctl所在的目录下执行sqlldr命令:  

  1. sqlldr   用户名/密码@服务名   control=input.ctl    
  2.  

OK后可以在input.log文件中看到执行的具体记录,有问题的数据则集中在Prize_VS.bad,你可以在修改后继续上一步的操作,直到你满意为止。  

二、使用sqllder导csv文件时,如果某一栏位的值来源于sequence,在导入时该如何指定该栏位的值?

比如,现在是使用sqllder从csv文件向表test导入数据,其中test有field_a, field_b, field_c三个栏位,并且field_c的值来源于sequence_field_c;那么控制文件可这样写:

  1. LOAD DATA   
  2. INFILE 'C:\test.csv '   
  3. TRUNCATE INTO TABLE test  
  4. FIELDS TERMINATED BY ', '   
  5. (field_a, field_b, field_c "sequence_field_c.nextval")   

以上就是有关sqllder从csv导入数据到Oracle的方法,希望能对你录入数据有所帮助。

  1. 修改Oracle存储过程所需代码
  2. 对Oracle存储过程的总结
  3. 实现Oracle存储过程的实际应用的代码 
  4. 深入高性能的Oracle动态SQL开发 
  5. Oracle SQL的优化规则解析 
精彩图集

赞助商链接