问题描述
大家好,
我有这个CTL文件:
当我加载记录时,字段UNTERGESCHAEFT_ID总是为空
你有什么想法用空白代替NULL吗?
非常感谢你的帮助
我有这个CTL文件:
CREATE TABLE EXT_T_SI_EG_RAI_170630E1166A ( WAEHRUNG CHAR(3) ,GESCHAEFT_ID VARCHAR2(48) ,GESCHAEFTSKATEGORIE CHAR(1) ,UNTERGESCHAEFT_ID VARCHAR2(24) ,SL_MELDERECHT CHAR(4) ,SL_ANSATZ CHAR(3) ,SL_LAUF CHAR(3) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY DBDIR_TOE_170630E1166A ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE SKIP 1 TERRITORY "AMERICA" CHARACTERSET WE8ISO8859P1 LOGFILE 't_si_eg_rai.log' BADFILE 't_si_eg_rai.bad' FIELDS REJECT ROWS WITH ALL NULL FIELDS REJECT ROWS WITH ALL NULL FIELDS ( WAEHRUNG POSITION(2:4) CHAR LRTRIM ,GESCHAEFT_ID POSITION(5:52) CHAR LRTRIM ,GESCHAEFTSKATEGORIE POSITION(53:53) CHAR LRTRIM ,UNTERGESCHAEFT_ID POSITION(54:77) CHAR LRTRIM NULLIF UNTERGESCHAEFT_ID = BLANKS ,SL_MELDERECHT POSITION(78:81) CHAR LRTRIM ,SL_ANSATZ POSITION(82:84) CHAR LRTRIM ,SL_LAUF POSITION(85:87) CHAR LRTRIM) ) ) LOCATION (xxxxxxxx) ) REJECT LIMIT UNLIMITED
当我加载记录时,字段UNTERGESCHAEFT_ID总是为空
select * from TUKB100.T_si_EG_RAI PARTITION (TP_Si_EG_RAI_170630E1166A) EUR E1166 30-GIU-17 170630E1166A 000020000168704200001ACC F (null) EUR E1166 30-GIU-17 170630E1166A 0006297CG00000000061785 N (null) EUR E1166 30-GIU-17 170630E1166A 0006297CG00000000159960 N (null) EUR E1166 30-GIU-17 170630E1166A 0006297CG00000000232694 N (null)
你有什么想法用空白代替NULL吗?
非常感谢你的帮助
专家解答
您想将源文件中的null转换为 “空白”?
当您查询NVL/coalesce时,它将起作用:
如果您想在每次查询时保存一些键入,请在视图中进行转换并查询:
当您查询NVL/coalesce时,它将起作用:
declare
test_file utl_file.file_type;
begin
test_file := utl_file.fopen('TMP', 'test.txt', 'w');
utl_file.put_line(test_file, 'c1,,c3');
utl_file.fclose(test_file);
end;
/
create table t (
c1 varchar2(10),
c2 varchar2(10),
c3 varchar2(10)
) organization external (
default directory tmp
access parameters (
records delimited by newline
fields terminated by ',' (
c1, c2 , c3
)
)
location ('test.txt')
) reject limit unlimited;
select c1, nvl(c2, 'BLANK') c2, c3
from t;
C1 C2 C3
c1 BLANK c3 如果您想在每次查询时保存一些键入,请在视图中进行转换并查询:
create or replace view vw as select c1, nvl(c2, 'BLANK') c2, c3 from t; select * from vw; C1 C2 C3 c1 BLANK c3
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




