在 Oracle 中批量导入
我已经创建了表 emp,我需要将批量数据从文件导入到 emp
对于前
CREATE TABLE emp
( c1 NUMBER,
c2 VARCHAR2(30)
)
文件路径 :
'C:\Documents and Settings\TestUser\My Documents\LearnOracle\reports.csv'
在 Oracle 中批量导入
我已经创建了表 emp,我需要将批量数据从文件导入到 emp
对于前
CREATE TABLE emp
( c1 NUMBER,
c2 VARCHAR2(30)
)
文件路径 :
'C:\Documents and Settings\TestUser\My Documents\LearnOracle\reports.csv'
写一个控制文件,比如说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 表的东西,你可能也会感兴趣。他们将平面文件用于表数据。
您必须使用内置工具 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
注意:这是你制作的控制文件的名字