一、dmp文件和dat文件的区别

  1. dmp文件包含的信息有数据库的版本信息、数据文件的字符集、数据文件导出路径信息、数据库用户信息、数据库导出的表的信息、索引信息、表空间信息等数据库的详细信息。dat文件只是导入的表的数据信息。
  2. oracle可以一次性导入多张表到dmp文件中,但是只能导一张表到dat文件中。
  3. dmp文件可以包括表空间、索引、用户、表、序列、存储过程、视图等数据库的所有信息,并可以用这些信息还原整个数据库,但是dat文件只是用来存放表的数据信息,只能还原表的数据信息。
  4. 对于单张表的数据导入(即不需要创建表、创建表索引等信息)时,dat文件的导入要比dmp文件导入快很多,由其是对于数据量非常大的表。
  5. dmp文件主要用于数据库备份、数据迁移等需要多张表操作或需要创建表信息的操作。dat文件主要用于纯数据的迁移和备份。


二、环境信息

系统:windows 7 数据库版本:oracle 11g


三、导入.dat文件步骤

1、生成.ctl文件控制文件

按照如下格式配置.ctl控制文件,将文件保存在本地指定目录备用(脚本使用时,应删掉注释部分)

  1. LOAD DATA
  2. INFILE 'D:\\files\\BCS_CUMI.dat' --dat文件路径
  3. APPEND INTO TABLE SMARTC168.BCS_CUMI -- 表名
  4. FIELDS TERMINATED BY ',' -- 字段终止符
  5. OPTIONALLY ENCLOSED BY '"' -- 字段包围符
  6. TRAILING NULLCOLS (ZHDH,JYRQ,ZJLSH,QXRQ,JXRQ) -- 字段名

2、打开CMD,执行:

  1. sqlldr userid=username/password control=D:\files\test.ctl log=D:\\files\logs.log direct=true;

Oracle导入.dat文件 - 图1

注:在windows环境下,在cmd窗口执行生成控制文件的语句时,由于设置了sqlplus,在.ctl控制文件中,可能会存在时间信息,这是需要手工删除这些信息,否则在执行数据文件导入时会报错。
Oracle导入.dat文件 - 图2