首页 > 解决方案 > sql loader 需要 dat 文件来加载数据

问题描述

我有一个包含多个文件的文件夹,但它们不是 .dat。令我惊讶的是,我可以加载一个文件,但只有当我重命名为 .dat 时。我做错了什么或者我需要将所有文件重命名为 .dat ?我的文件没有扩展名

多谢你们

控制文件

load data 
infile 'D:\pageviews\year=2016\month=06\*' 
replace
into table test
fields terminated by whitespace
trailing nullcols
(
c1,
c2,
c3,
c4
)

标签: oraclesql-loader

解决方案


据我所知,INFILE您使用的子句是错误的。

您应该命名您正在加载的文件。当数据(即将加载)包含在控制文件本身(在BEGINDATA关键字之后)时,使用星号。

如果您不指定文件扩展名,则默认为 .dat(这就是您设法加载文件的原因)。

可能的情况(从文档中复制):

  • 控制文件本身包含的数据:INFILE *
  • 包含在名为 foo 的文件中的数据,默认扩展名为 .dat:INFILE foo
  • 包含在名为 datafile.dat 的文件中的数据,并指定了完整路径:INFILE 'c:/topdir/subdir/datafile.dat'

阅读文档;你应该(不)做什么会更清楚。


推荐阅读