【问题标题】:SQL Loader is not inserting data when NULLNULL 时 SQL 加载器不插入数据
【发布时间】:2014-08-13 14:04:34
【问题描述】:

我有下表:

Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
NAME                                               VARCHAR2(230)
TEST                                               VARCHAR2(230)
ID6                                                VARCHAR2(230)
ID4                                                VARCHAR2(230)
ID1                                                VARCHAR2(230)
ID2                                                VARCHAR2(230)
ID3                                                VARCHAR2(230)
ID5                                                VARCHAR2(230)
ID                                                 NUMBER(38)

案例一:

现在我尝试通过sqlldr 插入数据。它会在为所有列提供值时加载数据,如下所示:

a,b,c,d,e,f,g,1
a,b,c,d,e,f,g,1
a,b,c,d,e,f,g,1
a,b,c,d,e,f,g,1
a,b,c,d,e,f,g,1

案例 2:

当我尝试像这样加载数据时:

a,,,,,,,

数据未加载。

我也试过用这种方式:

a,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL

但得到消息:

已达到提交点 - 逻辑记录计数 1

当我计算那张桌子时,它仍然是 0。

谁能帮我加载案例 2 中的数据?

我的控制文件:

LOAD DATA INFILE 'temp.txt' 
BADFILE 'temp_log.txt' 
INTO TABLE a 
FIELDS TERMINATED BY "," (
name,
test,
id6,
id4,
id1,
id2,
id3,
id5,
id)

【问题讨论】:

  • 你能把你的控制文件贴出来吗?
  • LOAD DATA INFILE 'temp.txt' BADFILE 'temp_log.txt' INTO TABLE a FIELDS TERMINATED by "," (name,test,id6,id4,id1,id2,id3,id5,id)
  • 日志文件说什么? (不是badfile,它只会显示跳过的记录;实际的.log
  • 在哪里可以找到该日志文件.. 与 control.ctl 文件相同的文件夹??
  • 默认情况下,它与控制文件同名,但扩展名为.log,而不是.ctl。是的,在同一个目录中。

标签: oracle sql-loader


【解决方案1】:

试试下面的代码 我试过了。它的工作原理

在 temp.txt 中提取样本数据进行测试

a,,,,,,,

使用“trailing nullcols”在表中插入空数据

LOAD DATA 
INFILE 'temp.txt' 
BADFILE 'temp_log.txt' 
INTO TABLE a 
FIELDS TERMINATED BY "," 
trailing nullcols
(name,
test,
id6,
id4,
id1,
id2,
id3,
id5,
id)

编写控制文件。让控制文件保存为“samp.ctl”,数据文件保存为temp.txt。

在命令提示符下使用以下命令执行文件 语法将是

sqlldr 用户名/密码@database control=control_path_file log=log_path_file

sqlldr abc/abc@orcl123 control=samp.ctl log=log_samp.log

结果将是达到提交点 - 逻辑记录计数 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2018-04-13
    • 1970-01-01
    • 2016-01-16
    • 2019-03-04
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多