0

I've got a file with timestamps like 20130807183000000. I'm trying to load using timestampformat="YYYYMMDDHHMMSSUUU" and I'm getting the error

SQL0181N The string representation of a datetime value is out of range.

I'm pretty sure the issue is that db2 is interpreting the minutes as months. I've been unable to find any documentation on how to explicitly format it as a minute for the load statement. I tried using 'MI' since that works for the timestamp_format function, but no luck. Does anyone know of any hidden documentation or have any suggestions that don't involve editing the file? Thanks.

0

That should work. I created a file like:

[lelle@dustbite src]$ cat apa.csv 
20130807183000000

and a table like:

[lelle@dustbite src]$ db2 "create table tt (ts timestamp not null)"

and loaded like:

[lelle@dustbite src]$ db2 "load from apa.csv of del modified by timestampformat=\"YYYYMMDDHHMMSSUUU\" insert into tt"
SQL3501W  The table space(s) in which the table resides will not be placed in 
backup pending state since forward recovery is disabled for the database.

SQL3109N  The utility is beginning to load data from file 
"/home/lelle/src/apa.csv".

SQL3500W  The utility is beginning the "LOAD" phase at time "07/29/2016 
20:35:42.233607".

SQL3519W  Begin Load Consistency Point. Input record count = "0".

SQL3520W  Load Consistency Point was successful.

SQL3110N  The utility has completed processing.  "1" rows were read from the 
input file.

SQL3519W  Begin Load Consistency Point. Input record count = "1".

SQL3520W  Load Consistency Point was successful.

SQL3515W  The utility has finished the "LOAD" phase at time "07/29/2016 
20:35:42.482947".


Number of rows read         = 1
Number of rows skipped      = 0
Number of rows loaded       = 1
Number of rows rejected     = 0
Number of rows deleted      = 0
Number of rows committed    = 1

Could it be the reason that you did not quote the " so that the shell got rid of those?

If I do:

[lelle@dustbite src]$ db2 "load from apa.csv of del modified by timestampformat="YYYYMMDDHHMMSSUUU" insert into tt"

I get the error:

SQL3192N  In the filetmod a user specified format "TIMESTAMPFORMAT" beginning with the string "YYYYMMDDHHMMSSUUU" is not valid.

If that is not the problem, can you provide a small sample of rows that fail during load?

  • Turns out it was my load statement. Just needed some extra quotes. Thanks! This fails, but the timestring is apparently valid: db2 LOAD FROM db2pipe OF DEL modified by coldel\| nochardel timestampformat=\"YYYYMMDDHHMMSSUUU\" INSERT INTO test.test This succeeded: db2 "LOAD FROM db2pipe OF DEL modified by coldel\| nochardel timestampformat=\"YYYYMMDDHHMMSSUUU\" INSERT INTO test.test" – nickg Jul 29 '16 at 18:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.