1

在 Oracle 中批量导入

我已经创建了表 emp,我需要将批量数据从文件导入到 emp

对于前

CREATE TABLE emp

( c1 NUMBER,

  c2 VARCHAR2(30)

)

文件路径 : 'C:\Documents and Settings\TestUser\My Documents\LearnOracle\reports.csv'

4

2 回答 2

1

写一个控制文件,比如说emp.ctl

load data
 options(direct=true)
insert
 into table emp
fields terminated by ',' optionally enclosed by '"' TRAILING NULLCOLS
 ( 
    c1 DECIMAL EXTERNAL,
    c2
)

如下执行SQL*Loader

sqlldr userid=user/pass@db data=reports.csv control=emp.ctl 

如果您总是想用您的数据完全刷新表格。TRUNCATE表,然后加载。

SQL*Loader是一个很好的实用程序,提供了许多性能选项。请仔细阅读有关DIRECT 和 CONVENTIONAL加载的文档。

有一种叫做EXTERNAL 表的东西,你可能也会感兴趣。他们将平面文件用于表数据。

于 2014-03-07T04:40:55.623 回答
1

您必须使用内置工具 sql*loader 将数据从外部平面文件加载到 oracle。
1.创建控制文件control.ctl

  load data
  infile 'reports.csv' 
  into table emp
  fields terminated by ',' optionally
  enclosed by '"'
  c1,c2

2.数据文件是你的reports.csv

3.invoke sql*loader: $ sqlldr scott/tiger control=control.ctl
注意:这是你制作的控制文件的名字

于 2014-03-07T04:42:55.540 回答