Databases
cancel
Showing results for 
Search instead for 
Did you mean: 

problem with sqldr 9.2.0.3.0

himanshu_2
Occasional Contributor

problem with sqldr 9.2.0.3.0

I am trying to fix a problem that we are facing with the new sqlldr( after applying the patch for 9.2.0.3.0). It seems that in some cases the
new sqlldr fails to load records whereas the older one (9.2.0.1.0) could.
I have spent considerable time on this problem but to no effect. I would appreciate any help.

Here is the scenario.

There are cases when the control file has filler fields and the problem surfaces in such a case. The table has some 'timestamp(3) with time zone' fields. I have the follwing control file (testing.ctl).


load data
infile *
append
into table DUMMY
fields terminated by ";"
(
NAME,
AGE,
HEIGHT,
WEIGHT,
DOB TIMESTAMP WITH TIME ZONE "MM-DD-YYYY HH24:MI:SS.FF TZH:TZM",
FILLIT1,
ADDRESS,
FILLIT2)
BEGINDATA
jack;2;3;4;;9;address;1;
zinta;2;3;4;2-2-2003 12:12:12.665 +5:30;9;address;8;

As you can see a table dummy is used which has the schema as shown. I use the following command at the SQL commant prompt to manually load the data.

sqlldr CONTROL=testing.ctl LOG=testing.log BAD=testing.bad
DISCARD=testing.dsc USERID=hpbi_owner/hpbi DISCARDMAX=50 ERRORS=50
SILENT=(HEADER,FEEDBACK) SKIP_INDEX_MAINTENANCE=TRUE PARALLEL=TRUE
DIRECT=TRUE

The 2 rows are loaded in this case. Now if I drop FILLIT2 from the table DUMMY and substitute a FILLER in the control file ( FILLIT2 FILLER ) the data loads partially. The row with the name 'zinta' is loaded while the row with the name'jack' is not loaded and the log file shows an error for 'datetime conversion' for the field DOB.

However, if I remove the DIRECT=TRUE option ( direct path loading) from the sqlldr command, then both the rows are loaded fine.

To summarise:
- The problem occurs only if there is a FILLER field in the control file.
- If FILLER FIELD is present and DIRECT=TRUE then there is a problem only if one or more of the timestamp with timezone fileds are supplied with NULL values ( see row 1 of the data above). If all such fields have non null values the data is loaded.
- If FILLER field is present in the control file and DIRECT=FALSE, the data is loaded fine.


Are there some known isuues with the patched sqlldr or am I missing something?