partial record error with sqlldr

Philip Greenspun's Homepage : Philip Greenspun's Homepage Discussion Forums : 6916 : One Thread
Notify me of new responses
can't seem to figure out the partial record error that i am getting while using sqlldr for pset1 oraex1.

my data looks like
qcom 100 01/05/98

and my ctl file looks like

LOAD DATA
INFILE 'stocks.dat'
INTO TABLE my_stocks
fields terminated by whitespace
(symbol,
n_shares,
date_acquired DATE 'MM/DD/YYYY')


-- Orton Huang, February 3, 2000

Answers

Hint:

qcom 100 01/05/98 -and- DATE 'MM/DD/YYYY'

This is a classic Y2K bug as well. Oracle defaults the century to the current century, so if you insert xx/xx/98 in 1999, the data will be: xx/xx/1998 internally. But if you run the same program with the same data today, the internal representation will be xx/xx/2098!

-- Kerry Kurasaki, February 4, 2000


By specifying "MM/DD/YYYY" you are telling Oracle that your data file has four digits for the year. I would be surprised if Oracle would ever accept that data file if you don't specify "MM/DD/YY" as your date signature.

Edit your data file to include four year dates (as specified in the problem set). Additionally, check to make sure that your control file does not end on the last line of text, but rather on the next line below. For some reason, Sqlldr doesn't like control files that end without a newline character.

-- Jesse Koontz, February 6, 2000