Eșecul de încărcare DB2 din cauza formatului timestamp (Administrarea bazelor de date, Db2, Încărcare)

Tom_BIDW a intrebat.

Încerc să încarc un fișier în tabelul bazei de date DB2 folosind DB2 Load. Sunt capabil să încarc fișierul, folosind următoarea instrucțiune din promptul unix.

db2 +p -x load from BOM_Sales_20130326.txt of DEL MODIFIED BY COLDEL| timestampformat=
YYYY-MM-DD hh:mm:ss
insert into GEO_SALES.SDM_STL_VFRSK_SALES NONRECOVERABLE

Dar, atunci când încerc să apelez DB2 Load dintr-un script după ce am parametrizat multe dintre opțiuni, se pare că nu funcționează.

De exemplu, am rescris instrucțiunea după cum urmează:

db2 +p -x „load client from $FILE_DIR/$filenm of DEL MODIFIED BY COLDEL$FILE_DELMTR timestampformat=
YYYY-MM-DD HH:MM:SS
insert into $TGT_SCHEMA_NM.$FILE_STG_TBL_TGT NONRECOVERABLE”

Toate variabilele sunt atribuite cu valori corecte înainte de apelarea statisticii. Dar se pare că eșuează din cauza formatului de timp greșit. Eroarea este după cum urmează:

SQL3191N Câmpul din rândul „F2-1”, coloana „1”, care începe cu „2013-03-26|STL|5678|D|3212345 „nu se potrivește cu DATEFORMAT, TIMEFORMAT sau TIMESTAMPFORMAT specificate de utilizator. Rândul va fi respins.

De fapt, nevoia mea este să dau valoarea „timestampformat” și ca parametru, după cum urmează:db2 +p -x „load client from $FILE_DIR/$filenm of DEL MODIFIED BY COLDEL$FILE_DELMTR timestampformat=$DTTIME_FMT insert into $TGT_SCHEMA_NM.$FILE_STG_TBL_TGT NONRECOVERABLE”

Deoarece nu funcționa, doar în scop de testare, variabila $DTTIME_FMT a fost înlocuită cu
YYYY-MM-DD HH:MM:SS
. După cum s-a spus mai devreme, nici aceasta nu pare să funcționeze.

Solicit ajutorul dumneavoastră pentru a remedia acest lucru și, de asemenea, aș dori să știu dacă pot parametriza toate aceste opțiuni de încărcare, așa cum am încercat.

Mulțumesc, Tom

Comentarii

  • @ChrisAldrich În primul paragraf se spune „unix prompt”, dacă vă ajută. –  > Por WarrenT.
  • curios de ce ai client în scriptul tău, dar nu și pe promptul unix? –  > Por Chris Aldrich.
  • Mie mi se pare că datele tale nu se potrivesc cu cele din TIMESTAMPFORMAT pe care le-ai specificat. Rândul respins arată ca o dată (YYYY-MM-DD), nu un timestamp în YYYY-MM-DD HH:MM:SS format –  > Por Ian Bjorhovde.
1 răspunsuri
Steven Keller

Creați declarația dvs. după cum urmează și verificați formatul de date din tabelul dvs. și asigurați-vă că vă potriviți și ora (de exemplu, |2011-01-23 14:44:36|2011-01-23 15:44:44|20140512|este formatul meu de timp în DDL-ul meu)

load from myexport.del of del modified by coldel| delprioritychar dateformat=
YYYY-MM-DD
 timestampformat=
YYYY-MM-DD HH:MM:SS TT
  insert into mytable

Mult succes!