Esportare un file in CSV sull'IFS

Accedi per salvare
CPYTOIMPF FROMFILE(PRODLIB/ARTICOLI)             +
          TOSTMF('/home/export/articoli.csv')    +
          MBROPT(*REPLACE)                       +
          STMFCCSID(1208)                        +
          RCDDLM(*CRLF)                          +
          DTAFMT(*DLM)                           +
          STRDLM(*NONE)                          +
          FLDDLM(';')

Per includere i nomi delle colonne come prima riga si aggiunge ADDCOLNAM(*SQL).

Esempio: esportare una selezione, non tutto il file

CPYTOIMPF copia un file intero. Quando servono solo alcune colonne, o solo le righe di una zona, la strada non è filtrare dopo in Excel: è dare al comando un oggetto che contiene già quello che serve.

Una vista in QTEMP costa niente e sparisce da sola a fine job:

CREATE VIEW QTEMP/EXPCLI AS
  SELECT CODCLI, RAGSOC, FATTURATO
    FROM PRODLIB/CLIENTI
   WHERE ZONA = 'NORD'
     AND FATTURATO > 0
CPYTOIMPF FROMFILE(QTEMP/EXPCLI)                  +
          TOSTMF('/home/export/clienti-nord.csv') +
          MBROPT(*REPLACE)                        +
          STMFCCSID(1208)                         +
          RCDDLM(*CRLF)                           +
          DTAFMT(*DLM)                            +
          STRDLM(*NONE)                           +
          FLDDLM(';')                             +
          ADDCOLNAM(*SQL)

Con ADDCOLNAM(*SQL) l'intestazione arriva dai nomi delle colonne della vista, quindi rinominandole nel SELECT (AS "Codice cliente") si decide cosa legge chi apre il file, senza toccare il file di origine.

Nota

STMFCCSID(1208) scrive in UTF-8 ed è quasi sempre la scelta giusta. È il motivo per cui le lettere accentate arrivano corrette invece che come simboli: senza, il file esce nella codifica EBCDIC del job e chi lo apre su Windows vede caratteri sbagliati.

Suggerimento

dove Excel è configurato con la virgola come separatore decimale (gran parte dell'Europa continentale) il separatore di campo giusto è il punto e virgola, non la virgola: con FLDDLM(',') i numeri finiscono spezzati su due colonne.


Rilasci. CPYTOIMPF c'è da sempre. Il parametro ADDCOLNAM, che scrive i nomi delle colonne come prima riga, è più recente: se il comando lo rifiuta segnalando una parola chiave non valida, il sistema è su un rilascio che non lo ha, e l'intestazione va aggiunta a parte.

← Torna al blog

Commenti

Nessun commento ancora. Sii il primo a commentare!

Devi avere un account per commentare. Accedi · Registrati