操作系统:WIN 数据库目标:Oracle 12c 源是文件。 使用:sqlldr使用sqlldr时需要检测列
我有这种格式的文本数据。我已经在描述中粘贴了示例数据(请将其复制到记事本++)我有这种方式的大量数据,我想用sqlldr将它加载到数据库表中。
让我给你简要的数据TRN是交易开始的地方,TRNEND是结束的地方。
问题是 - TRN1111111119134记录行中我们有一列丢失,但是在事务TRN1111111117134列114115中存在,但我的要求是在处理第一个事务时将空值插入到对应于114115的列中第二个事务但这里的所有内容都由空格分隔(我们是否可以将空格分隔符动态地转换为固定分隔符或其他分隔符?)。 任何建议真的会有所帮助。非常感谢。
TRN1111111117134 211712221635361341111576114115 114115 CLOSE CT J J J JOS
TRNEND11111111181111111111
TRN1111111119134 21171222163536 TOTAL CTT VOUCH J11111111111115221111 J J JOS
TRNEND11111111111111111111
我想在sqlldr控制文件命令下面使用,我在这里丢失了什么吗?
infile 'D:\Source_files\LOG_07117_2017.DAT'
truncate into table RAW_FILE
fields terminated by WHITESPACE optionally enclosed by '#'
TRAILING NULLCOLS
( col1 ,
col2 "nvl(:col2,'')",
col3 "nvl(:col3,'')",
col4 "nvl(:col4,'')",
col5 "nvl(:col5,'')",
col6 "nvl(:col6,'')",
col7 "nvl(:col7,'')",
col8 "nvl(:col8,'')",
col9 "nvl(:col9,'')",
col10 "nvl(:col10,'')",
col11 "nvl(:col11,'')",
col12 "nvl(:col12,'')",
col13 "nvl(:col13,'')",
col14 "nvl(:col14,'')",
col15 "nvl(:col15,'')",
col16 "nvl(:col16,'')",
col17 "nvl(:col17,'')",
col18 "nvl(:col18,'')",
col19 "nvl(:col19,'')",
col20 "nvl(:col20,'')",
col21 "nvl(:col21,'')",
col22 "nvl(:col22,'')",
col23 "nvl(:col23,'')",
col24 "nvl(:col24,'')",
col25 "nvl(:col25,'')",
col26 "nvl(:col26,'')",
col27 "nvl(:col27,'')",
col28 "nvl(:col28,'')",
col29 "nvl(:col29,'')",
col30 "nvl(:col30,'')")
对于这种情况
CREATE TABLE "RAW_FILE" (
"COL1" VARCHAR2(4000 BYTE),
"COL2" VARCHAR2(4000 BYTE),
"COL3" VARCHAR2(4000 BYTE),
"COL4" VARCHAR2(4000 BYTE),
"COL5" VARCHAR2(4000 BYTE),
"COL6" VARCHAR2(4000 BYTE),
"COL7" VARCHAR2(4000 BYTE),
"COL8" VARCHAR2(4000 BYTE),
"COL9" VARCHAR2(4000 BYTE),
"COL10" VARCHAR2(4000 BYTE),
"COL11" VARCHAR2(4000 BYTE),
"COL12" VARCHAR2(4000 BYTE),
"COL13" VARCHAR2(4000 BYTE),
"COL14" VARCHAR2(4000 BYTE),
"COL15" VARCHAR2(4000 BYTE),
"COL16" VARCHAR2(4000 BYTE),
"COL17" VARCHAR2(4000 BYTE),
"COL18" VARCHAR2(4000 BYTE),
"COL19" VARCHAR2(4000 BYTE),
"COL20" VARCHAR2(4000 BYTE),
"COL21" VARCHAR2(4000 BYTE),
"COL22" VARCHAR2(4000 BYTE),
"COL23" VARCHAR2(4000 BYTE),
"COL24" VARCHAR2(4000 BYTE),
"COL25" VARCHAR2(4000 BYTE),
"COL26" VARCHAR2(4000 BYTE),
"COL27" VARCHAR2(4000 BYTE),
"COL28" VARCHAR2(4000 BYTE),
"COL29" VARCHAR2(4000 BYTE),
"COL30" VARCHAR2(4000 BYTE))
请包括一个表定义 –