Csv 告诉sqlldr控制文件将缺少的值加载为NULL

Csv 告诉sqlldr控制文件将缺少的值加载为NULL,csv,sql-loader,Csv,Sql Loader,我有一个CSV文件。如何告诉sqlldr控制文件将缺少的值加载为NULL。(即表架构允许某些列为NULL) CSV示例 1,Name1 2,Name2 3, 4,Name3 您能帮我在这里编辑我的控制文件吗?这样,第3行,缺失的值就会作为NULL插入到我的表中 桌子 控制文件 LOAD DATA INFILE '{path}\CSVfile.txt' INSERT INTO test FIELDS TERMINATED BY ',' (id CHAR, name CHAR ) 我相信你所要

我有一个CSV文件。如何告诉sqlldr控制文件将缺少的值加载为NULL。(即表架构允许某些列为NULL)

CSV示例

1,Name1
2,Name2
3,
4,Name3
您能帮我在这里编辑我的控制文件吗?这样,第3行,缺失的值就会作为NULL插入到我的表中

桌子

控制文件

LOAD DATA INFILE '{path}\CSVfile.txt'
INSERT INTO test
FIELDS TERMINATED BY ','
(id CHAR,
 name CHAR
)

我相信你所要做的就是:

name  CHAR(10) NULLIF(name=BLANKS)

我相信你所要做的就是:

name  CHAR(10) NULLIF(name=BLANKS)

我发现使用尾随的null行可以完成这项工作,但必须用于记录行末尾的“空格”

LOAD DATA INFILE {path}\Your_File
INSERT INTO TABLE Your_Table
TRAILING NULLCOLS
FIELDS TERMINATED BY ","
(
 ... your fields
)

我发现使用尾随的null行可以完成这项工作,但必须用于记录行末尾的“空格”

LOAD DATA INFILE {path}\Your_File
INSERT INTO TABLE Your_Table
TRAILING NULLCOLS
FIELDS TERMINATED BY ","
(
 ... your fields
)

您必须向SQL*Loader提示数据中可能存在空值

向SQL*加载器提供该提示的两种方法

  • 使用尾随空列选项
加载数据填充“{path}\CSVfile.txt”
插入测试
以“,”结尾的字段 尾随零线 (id CHAR, 名称字符 )
  • 重新创建带有封闭字段的CSV文件,然后使用“”(可选)封闭“”,这样SQL*Loader可以清楚地看到数据中的空值(引号之间没有任何内容),看起来像“
    ”abcd“,”
加载数据填充“{path}\CSVfile.txt”
插入测试
字段以“,”结尾,也可以用“,”括起 (id CHAR, 名称字符 )
您必须向SQL*Loader提示数据中可能存在空值

向SQL*加载器提供该提示的两种方法

  • 使用尾随空列选项
加载数据填充“{path}\CSVfile.txt”
插入测试
以“,”结尾的字段 尾随零线 (id CHAR, 名称字符 )
  • 重新创建带有封闭字段的CSV文件,然后使用“”(可选)封闭“”,这样SQL*Loader可以清楚地看到数据中的空值(引号之间没有任何内容),看起来像“
    ”abcd“,”
加载数据填充“{path}\CSVfile.txt”
插入测试
字段以“,”结尾,也可以用“,”括起 (id CHAR, 名称字符 )
不,不是那样的。您提供的内容将忽略该记录,并将其视为要丢弃的记录。我发现追踪无尾蛇会奏效的。哦,当然。我的控制文件里也有。不,不是那样的。您提供的内容将忽略该记录,并将其视为要丢弃的记录。我发现追踪无尾蛇会奏效的。哦,当然。我的控制文件里也有。我不明白你的意思<代码>NVL(:home\u points,0)将用
0
替换
home\u points
中遇到的
null
。这不是我想做的。我希望将未定义的值记录为
NULL
,即
home\u points
列可为NULL
0
不是
NULL
值我不明白你的意思<代码>NVL(:home\u points,0)将用
0
替换
home\u points
中遇到的
null
。这不是我想做的。我希望将未定义的值记录为
NULL
,即
home\u points
列可为NULL
0
不是一个
NULL
值。外部表的DDL接受“
缺少的字段值为NULL
”-但是SQLLDR控制文件似乎不支持这种情况。@YoYo我希望能告诉你一些关于它的事情,但我不能。我从未将该选项用于外部表。试着问一下,我打赌如果你在这里查询或在这里启动一个新线程,他们会回答得更好。令人困惑的是,外部表的DDL接受“
缺少的字段值为空”
”-但是SQLLDR控制文件似乎不支持这一点。@YoYo我希望我能告诉你一些事情,但我不能。我从未将该选项用于外部表。试着问一下,我打赌他们能更好地回答你的问题,或者在这里开始一个新的线程。