Stadio di destinazione esterno: Sezione formatoDataStage®)
La sezione Formato consente di fornire informazioni sul formato dei dati che si stanno scrivendo.
La sezione Formato ha un formato simile alla sezione Proprietà .
Se non si modifica nessuna delle impostazioni di Formato, lo stage External Target produrrà un file del seguente formato:
- I dati comprendono colonne a lunghezza variabile contenute tra virgolette.
- Tutte le colonne sono delimitate da una virgola, ad eccezione della colonna finale in una riga.
- Le righe sono delimitate da una nuova riga UNIX.
È possibile utilizzare la voce Formato come del menu di scelta rapida della scheda Formato per passare rapidamente a un formato di colonna a larghezza fissa, utilizzando le newline del DOS come delimitatori di riga o producendo un file in formato COBOL.
Per modificare le singole proprietà, selezionare un tipo di proprietà dalla struttura principale, quindi aggiungere le proprietà che si desidera impostare alla struttura ad albero facendo clic su di esse nella finestra Proprietà disponibili da impostare. È possibile quindi impostare un valore per tale proprietà nella casella Valore proprietà. La guida a comparsa per ciascuna delle proprietà disponibili viene visualizzata se si passa il puntatore del mouse su di essa.
Questa descrizione utilizza i termini "record" e "riga" e "campo" e "colonna" in modo intercambiabile.
Le seguenti sezioni elencano i tipi di proprietà e le proprietà disponibili per ciascun tipo.
Livello record
- Riempimento carattere. Specificare un carattere ASCII o un valore compreso tra 0 e 255. È anche possibile scegliere Spazio o Null da un elenco a discesa. Questo carattere viene utilizzato per riempire eventuali spazi vuoti in un record scritto causato dalle proprietà di posizionamento della colonna. Impostare su 0 per impostazione predefinita (che è il carattere NULL). Ad esempio, per impostarlo sullo spazio, è possibile immettere anche il carattere spazio o immettere 32. Tenere presente che questo valore è limitato a un byte, quindi non è possibile specificare un carattere Unicode multibyte.
- Stringa delimitatore finale. Specificare una stringa da scrivere dopo l'ultima colonna di un record al posto del delimitatore di colonna. Immettere uno o più caratteri, che precedono il delimitatore di record, se ne viene utilizzato uno. Si esclude reciprocamente con il delimitatore finale, che è il valore predefinito. Ad esempio, se si imposta Delimitatore su virgola e Stringa delimitatore finale su `, ` (spazio virgola - non è necessario immettere le virgole invertite), 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. Immettere un carattere o selezionare uno tra spazi, fine, nessuno, null, tabulazione o virgola. Consultare il seguente diagramma per un'illustrazione.
- spazio. L'ultima colonna di ogni record non includerà alcuno spazio vuoto finale trovato alla fine del record.
- fine. L'ultima colonna di ogni record non contiene il delimitatore di campo. Questa è l'impostazione predefinita.
- nessuno. L'ultima colonna di ogni record non ha un delimitatore; utilizzato per i campi a larghezza fissa.
- null. L'ultima colonna di ciascun record è delimitata dal carattere null ASCII.
- virgola. L'ultima colonna di ogni record è delimitata dalla virgola ASCII.
- scheda. L'ultima colonna di ogni record è delimitata dal carattere di tabulazione ASCII.
- Intatto. La proprietà intatta specifica un identificativo di uno schema parziale. Uno schema parziale specifica che solo le colonne indicate nello schema possono essere modificate dallo stage. Tutte le altre colonne nella riga vengono trasmesse senza modifiche. Il file contenente lo schema parziale viene specificato nella proprietà File di schema nella scheda Proprietà . Questa proprietà ha una proprietà dipendente, Verifica intatta, ma non è rilevante per i collegamenti di input.
- Stringa delimitatore di record. Specificare una stringa da scrivere alla fine di ogni record. Immettere uno o più caratteri. Si esclude reciprocamente con il delimitatore Record, che è il valore predefinito, il tipo di record e il prefisso del record.
- Delimitatore record. Specificare un singolo carattere da scrivere alla fine di ogni record. Immettere un carattere o selezionare uno dei seguenti:
- Nuova riga UNIX (impostazione predefinita)
- null
(Per implementare una nuova riga DOS, utilizzare la proprietà Stringa delimitatore record impostata su "\R\N" oppure scegliere
dal menu di scelta rapida.)Nota Il delimitatore di record si esclude a vicenda con la stringa del delimitatore di record, il prefisso di record e il tipo di record. - Lunghezza record. Selezionare Fisso dove vengono scritti i campi a lunghezza fissa. IBM DataStage calcola la lunghezza appropriata per il record. In alternativa, specificare la lunghezza dei record fissi come numero di byte. Non viene utilizzato per impostazione predefinita (i file predefiniti sono delimitati da virgole). Il record viene riempito alla lunghezza specificata con zeri o con il carattere di riempimento, se ne è stato specificato uno.
- Prefisso record. Specifica che un record a lunghezza variabile ha come prefisso un prefisso di lunghezza di 1, 2 o 4 byte. È impostato su 1 per impostazione predefinita. Ciò si esclude reciprocamente con il delimitatore di record, che è il valore predefinito, e la stringa e il tipo di record del delimitatore di record.
- Tipo di record. Specifica che i dati sono costituiti da record bloccati a lunghezza variabile (variabili) o impliciti (impliciti). Se si sceglie la proprietà implicita, i dati vengono scritti come un flusso senza limiti di record espliciti. La fine del record viene dedotta quando tutte le colonne definite dallo schema sono state analizzate. La proprietà variabile consente di specificare uno dei formati bloccati o estesi IBM riportati di seguito: V, VB, VS, VBS o VR. I dati vengono importati utilizzando uno di tali formati. Questi formati non sono disponibili per l'esportazione.
Questa proprietà si esclude reciprocamente con Lunghezza record, Delimitatore record, Stringa delimitatore record e Prefisso record e per impostazione predefinita non viene utilizzato.
Valori predefiniti del campo
- Lunghezza campo effettiva. Specifica il numero di byte da riempire con il carattere di riempimento quando un campo viene identificato come null. Quando IBM DataStage identifica un campo null, scriverà un campo di questa lunghezza pieno di caratteri di riempimento. Ciò si esclude reciprocamente con il valore del campo null.
- Delimitatore. Specifica il delimitatore finale di tutti i campi nel record. Immettere un carattere ASCII o selezionare uno tra spazi, fine, nessuno, null, virgola o tabulazione.
- spazio. Gli spazi alla fine di una colonna vengono ignorati, ovvero non vengono considerati come parte della colonna.
- fine. La fine di un campo viene presa come delimitatore, pertanto non esiste un delimitatore separato. Non è la stessa impostazione di ` Nessuno ' utilizzata per i campi con colonne a larghezza fissa.
- nessuno. Nessun delimitatore (utilizzato per la larghezza fissa).
- null. Viene utilizzato il carattere null ASCII.
- virgola. Viene utilizzato il carattere ASCII virgola.
- scheda. Viene utilizzato il carattere di tabulazione ASCII.
- Stringa delimitatore. 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 virgola - non è necessario immettere le virgole invertite) ogni campo sarà delimitato da `, ` a meno che non venga sovrascritto per singoli campi.
- Lunghezza campo null La lunghezza in byte di un campo a lunghezza variabile che contiene un valore null. Quando viene scritto un campo a lunghezza variabile, IBM DataStage scrive un valore di lunghezza del campo null se il campo contiene un valore null. Questa proprietà si esclude reciprocamente con un valore campo null.
- Valore campo null Specifica il valore scritto nel campo null se l'origine è impostata su null. Può essere un numero, una stringa o un carattere escape letterale di tipo C. Ad esempio, è possibile rappresentare un valore di byte mediante \ooo, dove ogni o è una cifra ottale compresa tra 0 e 7 e la prima o è < 4, oppure mediante \xhh, dove ogni h è una cifra esadecimale compresa tra 0 e F. È necessario utilizzare questo modulo per codificare i valori byte non stampabili.
Questa proprietà si esclude reciprocamente con la lunghezza del campo Null e la lunghezza effettiva. Per una rappresentazione di dati a larghezza fissa, è possibile utilizzare Pad char (dalla sezione generale dei valori predefiniti del tipo) per specificare un carattere finale ripetuto se il valore specificato è più breve della larghezza fissa del campo.
Il valore del campo null ha una proprietà secondaria denominata Separatore valore campo null. Ciò è previsto per i dati di output e deve essere ignorato nelle schede Formato appartenenti ai collegamenti di input.
- Byte prefisso. Specifica che ogni colonna nel file di dati è preceduta da 1, 2 o 4 byte contenenti, come valore binario, la lunghezza della colonna o il valore tag per un campo con tag.
È 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.
- Stampa campo. Questa proprietà non è rilevante per i collegamenti di input.
- virgolette. Specifica che i campi a lunghezza variabile sono racchiusi tra virgolette singole, virgolette doppie o un altro carattere o coppia di caratteri. Scegliere Singolo o Doppiaoppure immettere un carattere. Per impostazione predefinita, è impostato su virgolette doppie.
Durante la scrittura, IBM DataStage inserisce il carattere virgolette iniziale, i dati e un carattere virgolette finale. I caratteri virgolette non vengono conteggiati come parte della lunghezza di un campo.
- Prefisso vettore. Per i campi che sono vettori di lunghezza variabile, specifica un prefisso a 1, 2 o 4 byte contenente il numero di elementi nel vettore. È possibile sovrascrivere questo prefisso predefinito per singoli vettori.
I vettori a lunghezza variabile devono utilizzare un prefisso sul vettore o un collegamento ad un altro campo per specificare il numero di elementi nel vettore. Se il vettore a lunghezza variabile ha un prefisso, utilizzare questa proprietà per indicare la lunghezza del prefisso. IBM DataStage inserisce il conteggio degli elementi come prefisso di ogni campo vettore a lunghezza variabile. Per impostazione predefinita, si presuppone che la lunghezza del prefisso sia un byte.
Valori predefiniti tipo
Queste sono proprietà che si applicano a tutte le colonne di un tipo di dati specifico a meno che non vengano sovrascritte in modo specifico a livello di colonna. Sono divisi in un numero di sottogruppi in base ai tipi di dati.
Informazioni generali
- Ordine byte. Specifica come vengono ordinati i tipi di dati a più byte (tranne i tipi di dati stringa e non elaborati). Scegliere tra:
- little - endian. Il byte alto è a destra.
- big - endian. Il byte alto è sulla sinistra.
- native - endian. Come definito dal formato nativo della macchina. Questa è l'impostazione predefinita.
- Formato dati. Specifica il formato di rappresentazione dati di un campo. Si applica ai campi di tutti i tipi di dati ad eccezione di stringa, ustring e raw e ai campi record, subrec o con tag che contengono almeno un campo che non è né stringa né raw. Scegliere tra:
- binario
- testo (impostazione predefinita)
Un'impostazione di binario ha significati diversi quando viene applicata a tipi di dati differenti:
- Per i decimali, binary indica packed.
- Per altri tipi di dati numerici, binario significa "non testo".
- Per le date, binario è equivalente a specificare la proprietà juliana per il campo data.
- Per il tempo, binario è equivalente a midnight_seconds.
- Per la registrazione data / ora, il binario specifica che il primo numero intero contiene un conteggio del giorno giuliano per la parte data della registrazione data / ora e il secondo numero intero specifica la parte ora della registrazione data / ora come numero di secondi dalla mezzanotte. Una data / ora binaria specifica che vengono scritti due numeri interi di 32.
Per impostazione predefinita i dati sono formattati come testo, come segue:
- Per il tipo di dati della data, il testo specifica che i dati da scrivere contengono una data basata sul testo nel formato %yyyy - %mm -%dd o nel formato data predefinito se ne è stato definito uno nuovo su un sistema NLS.
- Per il tipo di dati decimali: un campo rappresenta un decimale in un formato stringa con uno spazio iniziale o '-' seguito da cifre decimali con un punto decimale incorporato se la scala è diversa da zero. Il formato della stringa di destinazione è: [ + | - ]ddd. [ ddd] e tutti gli argomenti di precisione e scala vengono ignorati.
- Per i campi numerici (int8, int16, int32, uint8, uint16, uint32, sfloat e dfloat): IBM DataStage presuppone che i campi numerici siano rappresentati come testo.
- Per il tipo di dati dell'ora: text specifica che il campo rappresenta l'ora nel formato basato sul testo %hh: %nn:%ss.
- Per il tipo di dati data/ora : il testo specifica una data / ora basata sul testo nel formato %yyyy - %mm -%dd %hh: %nn:%ss o nel formato data predefinito se ne è stata definita una nuova su un sistema NLS.
- Larghezza massima 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 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 una serie 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 avranno il seguente numero di byte come larghezza massima:
- Numeri interi con segno o senza segno a 8 bit: 4 byte
- Numeri interi con segno o senza segno a 16 bit: 6 byte
- Numeri interi con o senza segno a 32 bit: 11 byte
- Numeri interi con segno o senza segno a 64 bit: 21 byte
- mobile a precisione singola: 14 byte (segno, cifra, punto decimale, 7 frazione, "E", segno, 2 esponente)
- virgola mobile a doppia precisione: 24 byte (segno, cifra, virgola 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à Larghezza campo. - Carattere di riempimento. Specifica il carattere di riempimento utilizzato quando le stringhe o i valori numerici vengono scritti in una rappresentazione di stringa esterna. Immettere un carattere (byte singolo per le stringhe, può essere multi - byte per ustrings) oppure 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 stringa, ustring e numerici e ai tipi di record, subrec o con tag se contengono almeno un campo di questo tipo.
- Serie di caratteri. Specifica la serie di caratteri. Scegliere tra ASCII o EBCDIC. Il valore predefinito è ASCII. Si applica a tutti i tipi di dati tranne raw e ustring e record, subrec o con tag che non contengono campi diversi da raw o ustring.
Stringa
- Esportare EBCDIC come ASCII. Selezionare questa opzione per specificare che i caratteri EBCDIC vengono scritti come caratteri ASCII. Si applica ai campi del tipo di dati stringa e ai campi record, subrec o con tag se contengono almeno un campo di questo tipo.
- Importa ASCII come EBCDIC. Non rilevante per i collegamenti di immissione.
Decimale
- Consenti tutti 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 Sì o No. Il valore predefinito è No.
- Separatore decimale. Specificare il carattere ASCII che agisce come separatore decimale (punto per impostazione predefinita).
- Compito. Selezionare un'opzione per specificare cosa contengono le colonne decimali, scegliere tra:
- Sì per specificare che le colonne decimali contengono dati in formato decimale compresso (valore predefinito). Ha le seguenti proprietà secondarie:
Verifica. Selezionare Sì per verificare che i dati siano compressi o No per non verificare.
Firmato. Selezionare Sì per utilizzare il segno esistente durante la scrittura delle colonne decimali. Selezionare No per scrivere un segno positivo (0xf) indipendentemente dal valore del segno effettivo delle colonne.
- No (separato) per specificare che contengono decimali decompressi con un byte di segno separato. Ha la seguente proprietà secondaria:
Posizione segno. Scegliere l'inizio o la fine a seconda del caso.
- No (con zonatura) per specificare che contengono un decimale non compresso nel testo ASCII o EBCDIC. Ha la seguente proprietà secondaria:
Posizione 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 insieme ha un segno negativo o positivo. Ha la seguente proprietà secondaria:
Posizione segno. Scegliere l'inizio o la fine a seconda del caso.
- Sì per specificare che le colonne decimali contengono dati in formato decimale compresso (valore predefinito). Ha le seguenti proprietà secondarie:
- Precisione Specifica la precisione in cui una colonna decimale viene scritta 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 riempisce il decimale di origine per adattarlo alla dimensione della stringa di destinazione. Se è stata specificata anche la proprietà della larghezza del campo, IBM DataStage tronca o riempisce 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ù (pavimento). 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. Ad esempio, 1.4 diventa 1, 1.5 diventa 2, -1.4 diventa -1, -1.5 diventa -2.
- troncare verso 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 decimale di origine quando la sua precisione e scala sono maggiori di quelle della destinazione. Per impostazione predefinita, quando l' IBM DataStage scrive un decimale di origine in una rappresentazione di stringa, utilizza la precisione e la scala definite per il campo decimale di origine per stabilire la lunghezza della stringa di destinazione. È possibile sovrascrivere il valore predefinito mediante le proprietà di precisione e scala. Quando si esegue questa operazione, IBM DataStage tronca o riempisce il decimale di origine per adattarlo alla dimensione della stringa di destinazione. Se è stata specificata anche la proprietà della larghezza del campo, IBM DataStage tronca o riempisce il decimale di origine per adattarlo alla dimensione specificata dalla larghezza del campo.
Numerico
- formato_C. Eseguire la conversione non predefinita dei dati da dati interi o a virgola mobile in una stringa. Questa proprietà specifica una stringa di formato in linguaggio C utilizzata per la scrittura di stringhe a numero intero o a virgola mobile. Questo viene passato a sprintf(). Ad esempio, specificando il formato C %x e la larghezza del campo 8, si garantisce che i numeri interi vengano scritti come stringhe esadecimali a 8 byte.
- In_format. Questa proprietà non è rilevante per i link di input.
- Out_format. Stringa di formato utilizzata per la conversione di dati da dati interi o a virgola mobile in una stringa. Questo viene passato a sprintf(). Per impostazione predefinita, IBM DataStage richiama la funzione C sprintf() per convertire un campo numerico formattato come dati interi o a virgola mobile in una stringa. Se questa funzione non emette dati in un formato soddisfacente, è possibile specificare la proprietà out_format per passare gli argomenti di formattazione a sprintf().
Data
- Giorni a partire da. Le date sono scritte come un intero con segno contenente il numero di giorni dalla data specificata. Immettere una data nel formato%aaaa-%mm-%dd.
- Stringa formato. Il formato della stringa di una data. Per impostazione predefinita questo è %yyyy-%mm-%dd.
- È Giuliano. 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
- Stringa 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
- Stringa formato. Specifica il formato di una colonna che rappresenta una data / ora come stringa. Il valore predefinito è %yyyy - %mm -%dd %hh: %nn:%ss. Il formato combina il formato per le stringhe di data e ora.