0 / 0
Torna alla versione inglese della documentazione

Fase di esportazione delle colonne: scheda Input (DataStage®)

Ultimo aggiornamento: 12 mar 2025
Fase di esportazione delle colonne in DataStage: Scheda Input

La sezione Formato consente di specificare i dettagli sul modo in cui verranno formattati i dati nella colonna che si sta esportando. La sezione Colonne specifica le definizioni di colonna dei dati in entrata. La sezione Avanzate consente di cambiare le impostazioni di buffering predefinite per il link di input.

Sezione formato

I termini "record" e "riga", "campo" e "colonna" sono utilizzati in modo intercambiabile.

Le sezioni seguenti elencano i tipi di proprietà e le proprietà disponibili per ciascun tipo.

Livello record

Queste proprietà definiscono i dettagli sulla formattazione dei record di dati nel file piatto. Quando è possibile inserire un carattere, questo può essere solitamente un carattere ASCII o un carattere Unicode a più byte (se è abilitato l'NLS). Le proprietà disponibili sono:
  • Riempire il carbone. Specificare un carattere ASCII o un valore compreso nell'intervallo 0-255. È inoltre possibile scegliere Spazio o Null da un elenco a discesa. Questo carattere viene utilizzato per riempire eventuali spazi vuoti in un record scritto causati dalle proprietà di posizionamento delle colonne. Impostato a 0 per impostazione predefinita (che è il carattere NULL). Ad esempio, per impostare lo spazio si può anche digitare il carattere spazio o immettere 32. Si noti che questo valore è limitato a un byte, quindi non è possibile specificare un carattere Unicode a più byte.
  • Stringa delimitatrice finale. Specificare una stringa da scrivere dopo l'ultima colonna di un record al posto del delimitatore di colonna. Inserire uno o più caratteri, che precedono il delimitatore di record, se utilizzato. Esclusivo con il delimitatore finale, che è l'impostazione predefinita. Ad esempio, se si imposta Delimitatore su virgola e Stringa finale delimitatore su `, ` (spazio virgola - non è necessario inserire le virgole) tutti i campi sono delimitati da una virgola, tranne il campo finale, che è delimitato da una virgola seguita da un carattere spazio ASCII.
  • Delimitatore finale. Specificare un singolo carattere da scrivere dopo l'ultima colonna di un record al posto del delimitatore di campo. Digitare un carattere o selezionare uno degli spazi bianchi, fine, nessuno, null, tab o virgola. Vedere il diagramma seguente per un'illustrazione.
    • spazi bianchi. L'ultima colonna di ogni record non includerà gli spazi bianchi presenti alla fine del record.
    • fine. L'ultima colonna di ogni record non include il delimitatore di campo. Questa è l'impostazione predefinita.
    • nessuno. L'ultima colonna di ogni record non ha un delimitatore; si usa per i campi a larghezza fissa.
    • nullo. L'ultima colonna di ogni record è delimitata dal carattere ASCII null.
    • virgola. L'ultima colonna di ogni record è delimitata dal carattere ASCII virgola.
    • scheda. L'ultima colonna di ogni record è delimitata dal carattere di tabulazione ASCII.
  • Intatto. La proprietà intact specifica un identificatore di uno schema parziale. Uno schema parziale specifica che solo le colonne nominate nello schema possono essere modificate dallo stage. Tutte le altre colonne della riga vengono passate senza modifiche. Il file contenente lo schema parziale viene specificato nella proprietà File Schema della scheda Proprietà. Questa proprietà ha una proprietà dipendente, Controllo intatto, ma non è rilevante per i collegamenti di input.
  • Stringa delimitatrice del record. Specificare una stringa da scrivere alla fine di ogni record. Immettere uno o più caratteri. Si esclude a vicenda il delimitatore di record, che è quello predefinito, il tipo di record e il prefisso di record.
  • Delimitatore di record. Specificare un singolo carattere da scrivere alla fine di ogni record. Digitare un carattere o selezionare uno dei seguenti:
    • UNIX Newline (il valore predefinito)
    • null

    (Per implementare una newline DOS, utilizzare la proprietà Record delimiter string impostata su "\R\N" o scegliere Format as > DOS line terminator dal menu di scelta rapida)

    Nota: Il delimitatore di record si esclude a vicenda con la stringa delimitatrice di record, il prefisso di record e il tipo di record.
  • Lunghezza del disco. Selezionare Fisso quando si scrivono campi di lunghezza fissa. IBM DataStage calcola la lunghezza appropriata per il record. In alternativa, specificare la lunghezza dei record fissi come numero di byte. Questa opzione non è utilizzata per impostazione predefinita (i file predefiniti sono delimitati da virgole). Il record viene riempito fino alla lunghezza specificata con zeri o con il carattere di riempimento, se è stato specificato.
  • Prefisso record. Specifica che un record di lunghezza variabile è preceduto da un prefisso di lunghezza pari a 1, 2 o 4 byte. L'impostazione predefinita è 1. Si esclude a vicenda con il delimitatore di record, che è quello predefinito, e con la stringa del delimitatore di record e il tipo di record.
  • Tipo di record. Specifica che i dati sono costituiti da record bloccati di lunghezza variabile (varying) o da record impliciti (implicit). Se si sceglie la proprietà implicita, i dati vengono scritti come flusso senza limiti espliciti di record. La fine del record viene dedotta quando tutte le colonne definite dallo schema sono state analizzate. La proprietà varying consente di specificare uno dei seguenti formati IBM blocked o spanned: V, VB, VS, VBS o VR. I dati vengono importati utilizzando uno di questi formati. Questi formati non sono disponibili per l'esportazione.

    Questa proprietà è mutuamente esclusiva con Lunghezza record, Delimitatore record, Stringa delimitatore record e Prefisso record e, per impostazione predefinita, non viene utilizzata.

Valori predefiniti del campo

Definisce le proprietà predefinite per le colonne scritte nel file o nei file. Questi vengono applicati a tutte le colonne scritte, ma possono essere sovrascritti per le singole colonne dalla sezione Colonne. Le proprietà disponibili sono:
  • Lunghezza effettiva del campo. Specifica il numero di byte da riempire con il carattere Fill quando un campo è identificato come nullo. Quando IBM DataStage identifica un campo nullo, scriverà un campo di questa lunghezza pieno di caratteri Fill. Questo è mutuamente esclusivo con il valore del campo Null.
  • Delimitatore. Specifica il delimitatore di coda di tutti i campi del record. Digitare un carattere ASCII o selezionare uno degli spazi bianchi, fine, nessuno, null, virgola o tab.
    • spazi bianchi. I caratteri di spazi bianchi alla fine di una colonna vengono ignorati, cioè non vengono trattati come parte della colonna.
    • fine. La fine di un campo viene presa come delimitatore, pertanto non esiste un delimitatore separato. Non è la stessa cosa di un'impostazione di `None', utilizzata per i campi con colonne a larghezza fissa.
    • nessuno. Nessun delimitatore (usato per la larghezza fissa).
    • nullo. Viene utilizzato il carattere ASCII Null.
    • virgola. Viene utilizzato il carattere ASCII virgola.
    • scheda. Viene utilizzato il carattere di tabulazione ASCII.
  • Stringa delimitatrice. Specificare una stringa da scrivere alla fine di ogni campo. Immettere uno o più caratteri. Questo è reciprocamente esclusivo con Delimitatore, che è il valore predefinito. Ad esempio, specificando `, ` (spazio tra le virgole - non è necessario inserire le virgole), ogni campo sarà delimitato da `, ` a meno che non venga sovrascritto per i singoli campi.
  • Lunghezza del campo nullo. La lunghezza in byte di un campo di lunghezza variabile che contiene un null. Quando viene scritto un campo di lunghezza variabile, IBM DataStage scrive un valore di lunghezza del campo nullo se il campo contiene un nullo. Questa proprietà si esclude a vicenda con il valore del campo null.
  • Valore del campo nullo. Specifica il valore scritto nel campo null se l'origine è impostata su null. Può essere un numero, una stringa o un carattere di escape letterale di tipo C. Ad esempio, è possibile rappresentare un valore di byte con '\ 'ooo, dove ogni 'o è una cifra ottale 0 - 7 e il primo 'o è < 4, oppure con '\x 'hh, dove ogni 'h è una cifra esadecimale 0 - F. È necessario utilizzare questa forma per codificare i valori non stampabili dei byte.

    Questa proprietà si esclude a vicenda con Null field length e Actual length. Per una rappresentazione di dati a larghezza fissa, si può usare Pad char (dalla sezione generale di Type defaults) per specificare un carattere di separazione ripetuto se il valore specificato è più corto della larghezza fissa del campo.

    Il valore del campo Null ha una sottoproprietà denominata Separatore del valore del campo Null. Questa opzione è destinata ai dati di output e deve essere ignorata nelle schede di formato appartenenti a collegamenti di input.

  • Prefisso in byte. Specifica che ogni colonna del file di dati è preceduta da 1, 2 o 4 byte contenenti, come valore binario, la lunghezza della colonna o il valore del tag per un campo taggato.

    È possibile utilizzare questa opzione con campi a lunghezza variabile. I campi a lunghezza variabile possono essere delimitati da un carattere o preceduti da un prefisso da 1, 2 o 4 byte contenente la lunghezza del campo. IBM DataStage inserisce il prefisso prima di ogni campo.

    Questa proprietà si esclude reciprocamente con le proprietà Delimitatore, Virgolette e Delimitatore finale, che sono utilizzate per impostazione predefinita.

  • Campo di stampa. Questa proprietà non è rilevante per i collegamenti di input.
  • Citazione. Specifica che i campi di lunghezza variabile sono racchiusi tra apici singoli, doppi apici o un altro carattere o coppia di caratteri. Scegliere Singolo o Doppio, oppure inserire un carattere. L'impostazione predefinita è quella delle doppie virgolette.

    In fase di scrittura, IBM DataStage inserisce il carattere di virgolette iniziali, i dati e un carattere di virgolette finali. I caratteri di citazione non vengono conteggiati come parte della lunghezza di un campo.

  • Prefisso vettoriale. Per i campi che sono vettori di lunghezza variabile, specifica un prefisso di 1, 2 o 4 byte contenente il numero di elementi del vettore. È possibile modificare questo prefisso predefinito per i singoli vettori.

    I vettori a lunghezza variabile devono utilizzare un prefisso sul vettore o un collegamento a un altro campo per specificare il numero di elementi del vettore. Se il vettore di lunghezza variabile ha un prefisso, si usa questa proprietà per indicare la lunghezza del prefisso. IBM DataStage inserisce il numero di elementi come prefisso di ogni campo vettoriale di lunghezza variabile. Per impostazione predefinita, la lunghezza del prefisso viene assunta pari a un byte.

Valori predefiniti tipo

Sono proprietà che si applicano a tutte le colonne di un determinato tipo di dati, a meno che non siano specificamente sovrascritte a livello di colonna. Sono suddivisi in una serie di sottogruppi in base al tipo di dati.

Informazioni generali

Queste proprietà si applicano a diversi tipi di dati (a meno che non siano sovrascritte a livello di colonna):
  • Ordine dei byte. Specifica come vengono ordinati i tipi di dati a byte multipli (eccetto i tipi di stringa e di dati grezzi). Scegliere tra:
    • little-endian. Il byte alto è a destra.
    • big-endian. Il byte alto è a sinistra.
    • nativo-endiano. Come definito dal formato nativo della macchina. Questa è l'impostazione predefinita.
  • Formato dei dati. Specifica il formato di rappresentazione dei dati di un campo. Si applica ai campi di tutti i tipi di dati tranne stringa, ustring e raw e ai campi record, subrec o tagged contenenti almeno un campo che non sia né stringa né raw. Scegliere tra:
    • binario
    • testo (l'impostazione predefinita)

      Un'impostazione di tipo binario ha significati diversi se applicata a tipi di dati diversi:

    • Per i decimali, binario significa impacchettato.
    • Per altri tipi di dati numerici, binario significa "non testo".
    • Per le date, binary equivale a specificare la proprietà julian per il campo data.
    • Per l'ora, binario equivale a mezzanotte_secondi.
    • Per il timestamp, binary specifica che il primo intero contiene un conteggio del giorno giuliano per la porzione di data del timestamp e il secondo intero specifica la porzione di tempo del timestamp come numero di secondi dalla mezzanotte. Un timestamp binario specifica che vengono scritti due interi a 32 bit.

      Per impostazione predefinita, i dati sono formattati come testo, come segue:

    • Per il tipo di dati date, text specifica che i dati da scrivere contengono una data basata sul testo nella forma %d o nel formato di data predefinito se ne è stato definito uno nuovo su un sistema NLS.
    • Per il tipo di dati decimale: un campo rappresenta un decimale in un formato stringa con uno spazio iniziale o un "-" seguito da cifre decimali con un punto decimale incorporato se la scala non è zero. Il formato della stringa di destinazione è: [+ | -]ddd.[ddd] e gli eventuali argomenti di precisione e scala vengono ignorati.
    • Per i campi numericiint8, int16, int32, uint8, uint16, uint32, sfloat e dfloat): IBM DataStage presuppone che i campi numerici siano rappresentati come testo.
    • Per il tipo di dati time: text specifica che il campo rappresenta l'ora nella forma testuale %hh:%nn%s.
    • Per il tipo di dati timestamp: text specifica un timestamp basato sul testo nella forma %d%hh:%nn:%s o nel formato di data predefinito se ne è stato definito uno nuovo su un sistema NLS.
  • Larghezza massima del campo. Il numero massimo di byte in una colonna rappresentata come stringa. Immettere un numero. Questo è utile quando si memorizzano dei numeri come testo. Se si sta utilizzando una serie di caratteri a larghezza fissa, è possibile calcolare esattamente la lunghezza. Se si sta utilizzando una serie di caratteri a lunghezza variabile, calcolare una larghezza massima adeguata per i campi. Si applica ai campi di tutti i tipi di dati eccetto data, ora, data/ora e raw, nonché a record, record secondario o con tag, se contengono almeno un campo di questo tipo.
  • Larghezza del campo. Il numero di byte in un campo rappresentato come stringa. Immettere un numero. Questo è utile quando si memorizzano dei numeri come testo. Se si utilizza un set di caratteri a larghezza fissa, è possibile calcolare esattamente il numero di byte. Se si tratta di una codifica a lunghezza variabile, basare il calcolo sulla larghezza e sulla frequenza dei caratteri a larghezza variabile. Si applica ai campi di tutti i tipi di dati eccetto data, ora, data/ora e raw, nonché a record, record secondario o con tag, se contengono almeno un campo di questo tipo.

    Se non si specifica né la larghezza del campo né la larghezza massima del campo, i campi numerici scritti come testo hanno il seguente numero di byte come larghezza massima:

    • interi firmati o non firmati a 8 bit: 4 byte
    • interi firmati o non firmati a 16 bit: 6 byte
    • interi firmati o non firmati a 32 bit: 11 byte
    • interi firmati o non firmati a 64 bit: 21 byte
    • float a precisione singola: 14 byte (segno, cifra, punto decimale, 7 frazione, "E", segno, 2 esponente)
    • float a doppia precisione: 24 byte (segno, cifra, punto decimale, 16 frazione, "E", segno, 3 esponente)
    Importante: se si utilizzano colonne di caratteri Unicode, è necessario calcolare la lunghezza del campo in byte e specificare tale valore nella proprietà della colonna Larghezza campo.
  • Pad char. Specifica il carattere di blocco utilizzato quando le stringhe o i valori numerici vengono scritti in una rappresentazione di stringa esterna. Immettere un carattere (a byte singolo per le stringhe, può essere multi-byte per le stringhe) o scegliere null o spazio. Il carattere di riempimento viene utilizzato quando la rappresentazione della stringa esterna è più grande di quella necessaria per contenere il campo scritto. In questo caso la stringa esterna viene riempita con il carattere riempimento fino alla sua lunghezza completa. Spazio è il valore predefinito. Si applica ai tipi di dati string, ustring e numeric e ai tipi record, subrec o tagged se contengono almeno un campo di questo tipo.
  • Set di caratteri. Specifica il set di caratteri. Scegliere tra ASCII o EBCDIC. L'impostazione predefinita è ASCII. Si applica a tutti i tipi di dati, tranne raw e ustring, e a record, subrec o tagged che non contengono campi diversi da raw o ustring.

Stringa

Queste proprietà sono applicate alle colonne con un tipo di dati stringa, a meno che non siano sovrascritte a livello di colonna.
  • Esportazione di EBCDIC come ASCII. Selezionare questa opzione per specificare che i caratteri EBCDIC vengono scritti come caratteri ASCII. Si applica ai campi di tipo stringa e ai campi record, subrec o tagged se contengono almeno un campo di questo tipo.
  • Importare ASCII come EBCDIC. Non rilevante per i collegamenti in ingresso.

Decimale

Queste proprietà vengono applicate alle colonne con un tipo di dati decimale, a meno che non vengano sovrascritte a livello di colonna.
  • Consentire tutti gli zeri. Specifica se trattare o meno un campo decimale compresso contenente tutti zeri (che normalmente non è lecito) come rappresentazione valida e pari a zero. Selezionare o No. L'impostazione predefinita è No.
  • Separatore decimale. Specificare il carattere ASCII che funge da separatore decimale (punto per impostazione predefinita).
  • Imballato. Selezionare un'opzione per specificare il contenuto delle colonne decimali, scegliendo tra:
    • per specificare che le colonne decimali contengano dati in formato decimale impacchettato (l'impostazione predefinita). Ha le seguenti sottoproprietà:

      Controllo. Selezionare per verificare che i dati siano imballati o No per non verificarli.

      Firmato. Selezionare per utilizzare il segno esistente quando si scrivono colonne decimali. Selezionare No per scrivere un segno positivo0xf) indipendentemente dal valore effettivo del segno delle colonne.

    • No (separato) per specificare che contengono decimali non compressi con un byte di segno separato. Ha la seguente sotto-proprietà:

      Posizione del segno. Scegliere l'inizio o la fine a seconda del caso.

    • No (a zone) per specificare che contengono un decimale scompattato in testo ASCII o EBCDIC. Ha la seguente sotto-proprietà:

      Posizione del segno. Scegliere l'inizio o la fine a seconda del caso.

    • No (overpunch) per specificare che il campo ha un byte iniziale o finale che contiene un carattere che specifica sia il valore numerico di quel byte sia se il numero nel suo complesso è firmato negativamente o positivamente. Ha la seguente sotto-proprietà:

      Posizione del segno. Scegliere l'inizio o la fine a seconda del caso.

  • Precisione. Specifica la precisione con cui viene scritta una colonna decimale in formato testo. Immettere un numero. Quando un decimale viene scritto in una rappresentazione di stringa, IBM DataStage utilizza la precisione e la scala definite per il campo decimale di origine per determinare la lunghezza della stringa di destinazione. Le proprietà di precisione e di scala prevalgono su questa impostazione predefinita. Quando sono definiti, IBM DataStage tronca o imbottiglia il decimale di origine per adattarlo alla dimensione della stringa di destinazione. Se è stata specificata anche la proprietà Larghezza campo, IBM DataStage tronca o imbottiglia il decimale di origine per adattarlo alla dimensione specificata dalla larghezza del campo.
  • Arrotondamento. Specifica come arrotondare una colonna decimale durante la scrittura. Scegliere tra:
    • su (soffitto). Tronca la colonna di origine verso l'infinito positivo. Questa modalità corrisponde alla modalità Round Up IEEE 754. Per esempio, 1.4 diventa 2, -1.6 diventa -1.
    • giù (piano). Troncare la colonna sorgente verso l'infinito negativo. Questa modalità corrisponde alla modalità IEEE 754 Round Down. Per esempio, 1.6 diventa 1, -1.4 diventa -2.
    • valore più vicino. Arrotondare la colonna di origine verso il valore rappresentabile più vicino. Questa modalità corrisponde alla modalità ARROTONDATA COBOL. Per esempio, 1.4 diventa 1, 1.5 diventa 2, -1.4 diventa -1, -1.5 diventa -2.
    • troncare verso lo zero. Questa è l'impostazione predefinita. Scarta le cifre frazionarie a destra della cifra frazionaria più a destra supportata dalla destinazione, indipendentemente dal segno. Ad esempio, se la destinazione è un numero intero, tutte le cifre frazionali sono troncate. Se la destinazione è un altro decimale con una scala più piccola, tronca alla dimensione della scala del decimale di destinazione. Questa modalità corrisponde alla funzione COBOL INTEGER - PART. Utilizzando questo metodo 1,6 diventa 1, -1,6 diventa -1.
  • Scala. Specifica come arrotondare un'origine decimale quando la sua precisione e la sua scala sono maggiori di quelle della destinazione. Per impostazione predefinita, quando IBM DataStage scrive un'origine decimale in una rappresentazione di stringa, utilizza la precisione e la scala definite per il campo decimale di origine per determinare la lunghezza della stringa di destinazione. È possibile sovrascrivere l'impostazione predefinita mediante le proprietà di precisione e di scala. In questo caso, IBM DataStage tronca o comprime il decimale di origine per adattarlo alla dimensione della stringa di destinazione. Se è stata specificata anche la proprietà Larghezza campo, IBM DataStage tronca o imbottiglia il decimale di origine per adattarlo alla dimensione specificata dalla larghezza del campo.

Numerico

Queste proprietà si applicano ai campi interi e float, a meno che non vengano sovrascritte a livello di colonna.
  • C_format. Esegue una conversione non predefinita dei dati da interi o in virgola mobile a una stringa. Questa proprietà specifica una stringa di formato in linguaggio C utilizzata per scrivere stringhe di numeri interi o in virgola mobile. Questo viene passato a sprintf(). Ad esempio, specificando un formato C di %x e una larghezza di campo di 8, si assicura che i numeri interi siano scritti come stringhe esadecimali di 8 byte.
  • In_formato. Questa proprietà non è rilevante per i collegamenti di input...
  • Out_format. Stringa di formato utilizzata per la conversione dei dati da interi o in virgola mobile a una stringa. Questo viene passato a sprintf(). Per impostazione predefinita, IBM DataStage richiama la funzione C sprintf() per convertire un campo numerico formattato come dato intero o in virgola mobile in una stringa. Se questa funzione non produce dati in un formato soddisfacente, è possibile specificare la proprietà out_format per passare argomenti di formattazione a sprintf().

Data

Queste proprietà vengono applicate alle colonne con un tipo di dati data, a meno che non vengano sovrascritte a livello di colonna. Tutti questi sono incompatibili con un'impostazione di Formato dati di Testo.
  • Giorni da. Le date sono scritte come un intero con segno contenente il numero di giorni dalla data specificata. Inserire una data nella forma %aaaa-%mm-%d 'd.
  • Stringa di formato. Il formato della stringa di una data. Per impostazione predefinita questo è %yyyy-%mm-%dd.
  • È Julian. Selezionare questo per specificare che le date sono scritte come valore numerico contenente il giorno Giuliano. Un giorno Giuliano specifica la data come numero di giorni dal 1° gennaio del 4713 a.C. alle ore 12:00 (mezzogiorno) GMT.

Data/ora

Queste proprietà vengono applicate alle colonne con il tipo di dati time, a meno che non vengano sovrascritte a livello di colonna. Tutti questi sono incompatibili con un'impostazione di Formato dati di Testo.
  • Stringa di formato. Specifica il formato delle colonne che rappresentano l'ora come stringa.
  • È mezzanotte secondi. Selezionalo per specificare che i tempi sono scritti come un intero binario a 32 bit contenente il numero di secondi trascorsi dalla mezzanotte precedente.

Data/ora

Queste proprietà vengono applicate alle colonne con un tipo di dati timestamp, a meno che non vengano sovrascritte a livello di colonna.
  • Stringa di formato. Specifica il formato di una colonna che rappresenta un timestamp come stringa. Il valore predefinito è %d%hh:%nn:%s. Il formato combina il formato delle stringhe di data e delle stringhe di ora.