如何更改 sql 加载程序中字段的起始位置
how to change the beginning position of the field in sql loader
我有一个文件,我想使用 sql loader.the 加载示例文件如下。
1|Deepak|1|raj|Kumar|mcapatna|powerhouse
控制文件是
LOAD DATA
INFILE *
TRUNCATE
INTO TABLE Student WHEN (1:1)= '1'
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
nickName1 position(6) NULLIF nickName1=BLANKS ,
nickName2 NULLIF nickName2=BLANKS ,
class CONSTANT '10',
Address CONSTANT 'NA'
)
我想要的输出是nickName1=mcapatna nickName=powerhouse class=10 & Address=NA
。
我正在获取 nickName1=pak
和 nickName2= 1
的值
这意味着它是根据单个字符的顺序进行计数的..
通过在您的 ctl 文件中添加位置 (6),它从位置 6 开始直到下一个 |。所以 pak 是期望值。如果您删除位置 (6),它将自动从位置 1 开始。
我想像这样的东西可以完成这项工作(这没有经过测试,但给了你一个方向):
LOAD DATA
INFILE *
INTO TABLE Student
FIELDS OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
( nickName1 CHAR NULLIF nickName1=BLANKS TERMINATED BY "|"
, nickName2 CHAR NULLIF nickName2=BLANKS TERMINATED BY "|"
, class CHAR CONSTANT '10' TERMINATED BY "|",
, Address CONSTANT 'NA' TERMINATED BY "|"
)
控制文件是数据文件字段顺序。要跳过数据文件中您不需要的字段,您需要通过将它们定义为 FILLER 来 "consume" 它们。
...
(
skip_1 FILLER,
skip_2 FILLER,
skip_3 FILLER,
skip_4 FILLER,
skip_5 FILLER,
nickname1,
nickname2,
class CONSTANT '10',
Address CONSTANT 'NA'
)
有关更多信息,请参阅最近的 post:
我有一个文件,我想使用 sql loader.the 加载示例文件如下。
1|Deepak|1|raj|Kumar|mcapatna|powerhouse
控制文件是
LOAD DATA
INFILE *
TRUNCATE
INTO TABLE Student WHEN (1:1)= '1'
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
nickName1 position(6) NULLIF nickName1=BLANKS ,
nickName2 NULLIF nickName2=BLANKS ,
class CONSTANT '10',
Address CONSTANT 'NA'
)
我想要的输出是nickName1=mcapatna nickName=powerhouse class=10 & Address=NA
。
我正在获取 nickName1=pak
和 nickName2= 1
的值
这意味着它是根据单个字符的顺序进行计数的..
通过在您的 ctl 文件中添加位置 (6),它从位置 6 开始直到下一个 |。所以 pak 是期望值。如果您删除位置 (6),它将自动从位置 1 开始。
我想像这样的东西可以完成这项工作(这没有经过测试,但给了你一个方向):
LOAD DATA
INFILE *
INTO TABLE Student
FIELDS OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
( nickName1 CHAR NULLIF nickName1=BLANKS TERMINATED BY "|"
, nickName2 CHAR NULLIF nickName2=BLANKS TERMINATED BY "|"
, class CHAR CONSTANT '10' TERMINATED BY "|",
, Address CONSTANT 'NA' TERMINATED BY "|"
)
控制文件是数据文件字段顺序。要跳过数据文件中您不需要的字段,您需要通过将它们定义为 FILLER 来 "consume" 它们。
...
(
skip_1 FILLER,
skip_2 FILLER,
skip_3 FILLER,
skip_4 FILLER,
skip_5 FILLER,
nickname1,
nickname2,
class CONSTANT '10',
Address CONSTANT 'NA'
)
有关更多信息,请参阅最近的 post: