|
Sie möchten eine DB2 z/OS Tabelle mit einer CSV-Datei laden? Die mögliche Probleme dabei sind ...
- Der Input steht nicht auf gleichbleibenden Spaltenpositionen
- Zeichenketten sind in (Doppel-) Hochkommas gefaßt
- Sonderzeichen trennen Spaltendaten voneinander ab
- numerische Daten können Dezimalpunkte oder -Kommas enthalten
- Daten können vom Zielsystem abweichende Codepage besitzen
(in diesem Beispiel nicht berücksichtigt, siehe CCSID(n,n,n) Option)
- Inputdaten können länger als Das Zielfeld sein (nicht berücksichtigt, siehe TRUNCATE Option)
Und so geht’s ...
|
|
//************************************************************ //* ASCII : X'3B' = ; X'22' = " X'2E' = . //* EBCDIC: X'5E' = ; X'7F' = " X'4B' = . //************************************************************ //LOAD EXEC PGM=DSNUTILB,PARM='DB2A' //SYSUDUMP DD DUMMY //SYSUT1 DD SPACE=(CYL,(50,5)),UNIT=SYSDA //SORTOUT DD SPACE=(CYL,(50,5)),UNIT=SYSDA //SYSPRINT DD SYSOUT=* //UTPRINT DD SYSOUT=* //SYSIN DD * LOAD DATA INDDN SYSREC LOG YES RESUME NO REPLACE FORMAT DELIMITED COLDEL X'5E' CHARDEL X'7F' DECPT X'4B' INTO TABLE MYUSER.TEST_CSV ( C1_CHAR POSITION(*) CHAR , C2_DEC POSITION(*) DECIMAL , C3_VARCHAR POSITION(*) VARCHAR , C4_INTEGER POSITION(*) INTEGER , C5_DATE POSITION(*) ) /* //SYSREC DD * "A";75.5;"SIEBEN-FUENF";75;"1.1.2008" "B";11111175.5;".......SIEBEN-FUENF";21344475;"2.1.2008"
|