oracle 10g示例中如何通过sql loader将一个数据文件上载到多个表中

oracle 10g示例中如何通过sql loader将一个数据文件上载到多个表中,sql,oracle,sql-loader,Sql,Oracle,Sql Loader,控制文件 Create table emp (id varchar2(22), name varchar2(85),hire_date date,department_id varchar2(3)); create table emp_epfo as select id emp_id,name lname,hire_date,department_id dept_id from emp where 1=2; 可以使用SQLLDR使用单个控制文件将数据加载到多个表中。你需要记住的是 LOA

控制文件

Create table emp (id varchar2(22), name varchar2(85),hire_date date,department_id varchar2(3));



create table emp_epfo as select id emp_id,name lname,hire_date,department_id dept_id from emp where 1=2;

可以使用
SQLLDR
使用单个控制文件将数据加载到多个表中。你需要记住的是

LOAD DATA
INFILE   '/image/ExtTableData/OnlineClaims/member_master.csv'
TRUNCATE
INTO TABLE EMP
FIELDS TERMINATED BY "," 
(ID ,NAME ,
HIRE_DATE ,DEPARTMENT_ID)
INTO TABLE EMP_EPFO
FIELDS TERMINATED BY ","
TRAILING NULLCOLS
(EMP_ID,LNAME,HIRE_DATE,DEPT_ID)
在单独表的列之后指定
位置(1)
的原因是指示Oracle开始从第一行读取数据

引用Oracle文档:

不使用POSITION参数时,多个INTO TABLE子句 处理同一(分隔数据)输入记录的不同部分, 允许从一条记录加载多个表。当 使用POSITION参数,可以处理多个INTO TABLE子句 以不同的方式创建同一记录,允许使用多种格式 在一个输入文件中识别

 LOAD DATA
    INFILE   '/image/ExtTableData/OnlineClaims/member_master.csv'
    TRUNCATE
    INTO TABLE EMP
    FIELDS TERMINATED BY "," 
TRAILING NULLCOLS
    (ID POSITION(1),
      NAME,
      HIRE_DATE,
      DEPARTMENT_ID
    )
    INTO TABLE EMP_EPFO
    (EMP_ID POSITION(1),
     LNAME,
     HIRE_DATE,
     DEPT_ID
     )