tjli
asked on
a question of sqlldr
there is a table tmp(a varchar2(3),b varchar2(3),rmk varchar2(6))
the content of tmp.txt is:
a|a
b|b
the content of tmp.ctl is:
LOAD DATA
INFILE 'tmp.txt'
INTO TABLE tmp append
FIELDS TERMINATED BY '|'
(sn,
agent,
rmk "to_char(sysdate,'yyyymm') ")
Run "sqlldr ltj/intelL control=tmp log=log.txt " ,then show :
“SQL string for column : "to_char(sysdate,'yyyymm') "
Record 1: Rejected - Error on table TMP, column RMK.
Column not found before end of logical record (use TRAILING NULLCOLS)”
why??
the content of tmp.txt is:
a|a
b|b
the content of tmp.ctl is:
LOAD DATA
INFILE 'tmp.txt'
INTO TABLE tmp append
FIELDS TERMINATED BY '|'
(sn,
agent,
rmk "to_char(sysdate,'yyyymm')
Run "sqlldr ltj/intelL control=tmp log=log.txt " ,then show :
“SQL string for column : "to_char(sysdate,'yyyymm')
Record 1: Rejected - Error on table TMP, column RMK.
Column not found before end of logical record (use TRAILING NULLCOLS)”
why??
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SQL loader is expecting data as a|a|a. If last column/columns is null you have to use trailing nullcols.