【发布时间】:2017-10-19 15:42:03
【问题描述】:
我有一个包含制表符分隔数据的文件。类似于以下内容
id f_name l_name m_name dob add_date
100 john smith r 19880212 20161010
102 micheal ford 19920707 20161010
我使用如下脚本通过external table加载数据
CREATE TABLE student_info(ID NUMBER, F_NAME VARCHAR2(200 BYTE),
L_NAME VARCHAR2(200 BYTE),
M_NAME VARCHAR2(200 BYTE),
DOB DATE, ADD_DATE DATE)
ORGANIZATION EXTERNAL(TYPE ORACLE_LOADER
DEFAULT DIRECTORY DATA_FILE_DIR
ACCESS PARAMETERS(RECORDS DELIMITED BY NEWLINE
BADFILE bad_file_dir: 'STUDENT_COMP_INFO.bad'
LOGFILE log_file_dir: 'STUDENT_COMP_INFO.log'
SKIP 1 FIELDS TERMINATED BY 0X '09'
OPTIONALLY ENCLOSED BY '"'
LRTRIM MISSING FIELD VALUES ARE NULL) LOCATION(FILE_DIR: 'STUDENT_COMP_INFO.txt')) REJECT
LIMIT
UNLIMITED;
在数据中成功加载数据,但是当我从表中选择数据时,我得到以下输出。
SELECT * FROM STUDENT_INFO
'ID' 'F_NAME' 'L_NAME' 'M_NAME' 'DOB' 'ADD_DATE'
'100' 'john' 'smith' 'r' '19880212' '20161010'
'102' 'micheal' 'ford' '19920707' '20161010'
所以基本上它不会考虑Null 值。即使是Null,如何正确加载每个字段中的值?提前致谢。
【问题讨论】:
-
请在每行代码/数据/错误消息的前面使用4个空格或突出显示一个文本块并使用编辑框左上角的
{}格式工具格式化为代码/数据/输出。另外,请不要发布文本图像,这会使人们难以搜索和复制粘贴来帮助您。您的问题应该是自包含的,并且不需要用户访问外部站点来获取所有信息。祝你好运。
标签: sql oracle external-tables