Étape Source externe : Section format de l'onglet de sortieDataStage®)
Utilisez la section Format pour fournir des informations sur le format des données source que vous lisez.
Cet onglet de section possède un format similaire à la section Propriétés.
Si vous ne modifiez pas les paramètres de format, l'étape génère un fichier au format suivant :
- Le fichier comprend des colonnes de longueur variable qui sont contenues entre guillemets.
- Toutes les colonnes sont délimitées par une virgule, à l'exception de la dernière colonne d'une ligne.
- Les lignes sont délimitées par une nouvelle ligne UNIX.
Pour modifier des propriétés individuelles, indiquez des valeurs pour les options de la section Niveau d'enregistrement, de la section Valeurs par défaut des zones ou d'autres sections affichées.
Toute propriété que vous définissez sur cet onglet peut être remplacée au niveau de la colonne en définissant des propriétés pour des colonnes individuelles dans la boîte de dialogue Editer les métadonnées de colonne.
Cette description utilise indifféremment les termes "enregistrement" et "ligne", et "zone" et "colonne".
Les sections suivantes répertorient les les types de propriétés et les propriétés disponibles pour chaque type.
Niveau d'enregistrement
Ces propriétés définissent des détails sur la façon dont les enregistrements de données sont formatés dans le fichier à plat. Lorsque vous pouvez entrer un caractère, il peut généralement s'agir d'un caractère ASCII. Les propriétés disponibles sont indiquées dans la liste suivante :
- Délimiteur final. Indiquez le caractère unique qui est écrit après la dernière colonne d'un enregistrement à la place du délimiteur de zone. Entrez un caractère ou sélectionnez l'un des suivants : whitespace, end, none, null, tab ou comma. IBM DataStage ignore la chaîne de délimiteur spécifiée lors de la lecture du fichier. Pour une illustration, voir le diagramme suivant.
- blanc. La dernière colonne de chaque enregistrement n'inclut pas les espaces blancs de fin figurant à la fin de l'enregistrement.
- fin. La dernière colonne de chaque enregistrement n'inclut pas le délimiteur de zone. Ce paramètre est la valeur par défaut.
- aucune. La dernière colonne de chaque enregistrement n'a pas de délimiteur, qui est utilisé pour les zones de largeur fixe.
- Null. La dernière colonne de chaque enregistrement est délimitée par le caractère null ASCII.
- Virgule. La dernière colonne de chaque enregistrement est délimitée par la virgule ASCII.
- Onglet. La dernière colonne de chaque enregistrement est délimitée par le caractère de tabulation ASCII.
- Intact. La propriété intacte indique un identificateur d'un schéma partiel. Un schéma partiel indique qu'une ou plusieurs colonnes nommées dans le schéma peuvent être modifiées par l'étape. Toutes les autres colonnes de la ligne sont transmises sans modification. Le fichier contenant le schéma partiel est spécifié dans la propriété Fichier de schéma de l'onglet Extrants. Cette propriété possède une propriété dépendante :
- Vérification intacte. Sélectionnez cette valeur pour forcer la validation du schéma partiel lors de l'importation du ou des fichiers. Cette valeur peut dégrader les performances.
- Chaîne de délimiteur d'enregistrement. Indiquez la chaîne à la fin de chaque enregistrement. Entrez un ou plusieurs caractères. Ce paramètre est mutuellement exclusif avec le délimiteur d'enregistrement (valeur par défaut), et avec le type d'enregistrement et le préfixe d'enregistrement.
- Délimiteur d'enregistrement. Indiquez le caractère unique à la fin de chaque enregistrement. Entrez un caractère ou sélectionnez l'une des options suivantes :
- UNIX Newline (valeur par défaut)
- null
(Pour spécifier une nouvelle ligne DOS, utilisez la propriété de chaîne de délimiteur d'enregistrement définie sur "\R\N" ou choisissez
dans le menu.)Le délimiteur d'enregistrement s'exclut mutuellement avec la chaîne de délimiteur d'enregistrement, le préfixe d'enregistrement et le type d'enregistrement.
- Longueur d'enregistrement. Sélectionnez Fixe lorsque les zones de longueur fixe sont en cours de lecture. IBM DataStage calcule la longueur appropriée pour l'enregistrement. Vous pouvez également indiquer la longueur des enregistrements fixes en nombre d'octets. Ce paramètre n'est pas utilisé par défaut (les fichiers par défaut sont délimités par des virgules).
- Préfixe d'enregistrement. Indique qu'un enregistrement de longueur variable est préfixé par un préfixe de longueur de 1, 2 ou 4 octets. Il est défini sur 1 par défaut. Ce paramètre est mutuellement exclusif avec le délimiteur d'enregistrement (valeur par défaut), et avec la chaîne de délimiteur d'enregistrement et le type d'enregistrement.
- Type d'enregistrement. Indique que les données sont des enregistrements bloqués de longueur variable (variables) ou implicites (implicites). Si vous choisissez la propriété implicite, les données sont écrites en tant que flux sans limites d'enregistrement explicites. La fin de l'enregistrement est déduite lorsque toutes les colonnes définies par le schéma sont analysées. Vous pouvez utiliser la propriété variable pour spécifier l'un des formats IBM bloqués ou étendus suivants : V, VB, VS, VBS ou VR. Les données sont importées à l'aide de l'un de ces formats. Ces formats ne sont pas disponibles pour l'exportation.
Cette propriété est mutuellement exclusive avec la longueur d'enregistrement, le délimiteur d'enregistrement, la chaîne de délimiteur d'enregistrement et le préfixe d'enregistrement et par défaut, elle n'est pas utilisée.
Valeurs de zone par défaut
Définit les propriétés par défaut des colonnes lues à partir du ou des fichiers. Ces propriétés sont appliquées à toutes les colonnes, mais peuvent être remplacées pour des colonnes individuelles à partir de l'onglet Colonnes à l'aide de la boîte de dialogue Édition des métadonnées de colonne. Une raison courante de remplacer une propriété pour une colonne individuelle se produit lors de la lecture des fichiers de valeurs séparées par des virgules (CSV). Les fichiers CSV placent souvent les zones entre guillemets lorsque les zones peuvent contenir un caractère spécial, tel que le délimiteur de zone. Dans ce cas, la propriété Quote des colonnes en question doit être remplacée.
Lorsque vous pouvez entrer un caractère, il peut généralement s'agir d'un caractère ASCII. Les propriétés disponibles sont les suivantes :
- Longueur réelle de la zone. Indique le nombre réel d'octets à ignorer si la longueur de la zone est égale au paramètre de la propriété de longueur de zone null.
- Délimiteur. Indique le délimiteur de fin de toutes les zones de l'enregistrement. Entrez un caractère ASCII ou sélectionnez un blanc, une fin, aucune, une valeur nulle, une virgule ou un onglet. IBM DataStage ignore le délimiteur lors de la lecture.
- blanc. Les caractères blancs à la fin d'une colonne sont ignorés, c'est-à-dire qu'ils ne sont pas traités comme faisant partie de la colonne.
- fin. La fin d'une zone est prise comme délimiteur, c'est-à-dire qu'il n'y a pas de délimiteur distinct. Il ne s'agit pas du même paramètre que 'None' utilisé pour les zones comportant des colonnes de largeur fixe.
- aucune. Aucun délimiteur (utilisé pour la largeur fixe).
- Null. Le caractère NULL ASCII est utilisé.
- Virgule. Un caractère de virgule ASCII est utilisé.
- Onglet. Caractère de tabulation ASCII utilisé.
- Chaîne de délimiteur. Indiquez la chaîne à la fin de chaque zone. Entrez un ou plusieurs caractères. Cette valeur est mutuellement exclusive avec Délimiteur, qui est la valeur par défaut. Par exemple, si vous spécifiez "," (espace virgule-vous n'avez pas besoin d'entrer les virgules inversées) indique que chaque zone est délimitée par `, ` sauf si elle est remplacée pour des zones individuelles. IBM DataStage ignore la chaîne de délimiteur lors de la lecture.
- Longueur de zone NULL. Longueur en octets d'une zone de longueur variable contenant une valeur NULL. Lorsqu'une zone de longueur variable est lue, une longueur de zone nulle dans la zone source indique qu'elle contient une valeur NULL. Cette propriété s'exclut mutuellement avec une valeur de zone nulle.
- Valeur de zone NULL. Indique la valeur qui est affectée à une zone null si la valeur de la source est NULL. Peut être un nombre, une chaîne ou un caractère d'échappement littéral de type C. Par exemple, vous pouvez représenter une valeur d'octet par \Ooo, où chaque O est un chiffre octal 0-7 et le premier O est < 4, ou par \xHh, où chaque H est un chiffre hexadécimal 0-F. Vous devez utiliser ce formulaire pour coder des valeurs d'octets non imprimables.
Cette propriété s'exclut mutuellement avec la longueur de zone NULL et la longueur réelle. Pour une représentation de données à largeur fixe, vous pouvez utiliser l'élément Extrusion char (dans la section générale des valeurs par défaut de type) pour spécifier un caractère de fin répété si la valeur que vous spécifiez est plus courte que la largeur fixe de la zone.
Vous pouvez spécifier une liste de valeurs NULL qu'une colonne peut contenir qui représentent une valeur NULL. Indiquez un caractère de séparation dans la propriété Séparateur de valeur de zone NULL dépendante, puis utilisez ce séparateur pour délimiter les valeurs NULL dans la propriété Valeur de zone NULL. Par exemple, si vous définissez Séparateur de valeur de zone NULL pour qu'il contienne la barre oblique (/), vous pouvez spécifier NULL/null/NUL/nul pour indiquer que l'une de ces chaînes peut représenter une valeur nulle dans cette colonne.
- Séparateur de valeur de zone NULL
Il s'agit d'une propriété dépendante de Valeur de zone NULL. Vous pouvez spécifier un séparateur qui peut être utilisé dans la propriété Valeur de zone NULL pour spécifier une plage de valeurs pouvant représenter la valeur null. Vous pouvez spécifier un nombre, une chaîne ou un caractère d'échappement littéral de type C (comme pour Valeur de zone NULL) comme séparateur, mais un caractère unique tel qu'une virgule (,) ou une barre oblique (/) est le meilleur choix. Vous devez spécifier un séparateur uniquement si vous spécifiez plusieurs valeurs dans Valeur de zone NULL ; en spécifiant un séparateur sans l'utiliser, une erreur d'exécution est générée.
- Octets de préfixe. Vous pouvez utiliser cette option avec des zones de longueur variable. Les zones de longueur variable peuvent être délimitées par un caractère ou précédées d'un préfixe de 1, 2 ou 4 octets contenant la longueur de la zone. IBM DataStage lit le préfixe de longueur mais n'inclut pas le préfixe comme zone distincte dans le fichier qu'il lit dans le fichier.
Cette propriété est incompatible avec les propriétés Délimiteur, Guillemet et Délimiteur final, qui sont utilisées par défaut.
- Zone d'impression. Cette propriété est destinée à être utilisée lors du débogage des travaux. Définissez ce paramètre pour que IBM DataStage génère un message pour chaque zone qu'il lit. Le format du message est le suivant :
Importing N: D
où :- N est le nom de la zone.
- D désigne les données importées de la zone. Les caractères non imprimables contenus dans D sont préfixés avec un caractère d'échappement et écrits sous forme de littéraux de chaîne C ; si la zone contient des données binaires, elle est au format octal.
- Guillemet. Indique que les zones de longueur variable sont placées entre des apostrophes, des guillemets ou un autre caractère ou une paire de caractères. Sélectionnez Simple ou Double ou entrez un caractère. Cette propriété a pour valeur par défaut des guillemets
Lors de la lecture, IBM DataStage ignore le guillemet de début et lit tous les octets jusqu'au guillemet de fin non inclus.
- Préfixe du vecteur. Pour les zones qui sont des vecteurs de longueur variable, indiquez qu'un préfixe de 1, 2 ou 4 octets contient le nombre d'éléments dans le vecteur. Vous pouvez remplacer ce préfixe par défaut par les vecteurs individuels.
Les vecteurs de longueur variable doivent utiliser un préfixe sur le vecteur ou un lien vers une autre zone pour spécifier le nombre d'éléments dans le vecteur. Si le vecteur de longueur variable a un préfixe, vous utilisez cette propriété pour indiquer la longueur du préfixe. IBM DataStage lit le préfixe de longueur mais ne l'inclut pas comme zone distincte dans le fichier. Par défaut, la longueur du préfixe est censée être de 1 octet.
Type par défaut
Ces propriétés s'appliquent à toutes les colonnes d'un type de données spécifique, sauf si elles sont explicitement remplacées au niveau de la colonne. Elles sont divisées en un certain nombre de sous-groupes selon le type de données.
Général
- Ordre des octets. Indique le mode de commande des types de données d'octets multiples (à l'exception des types de données brutes et de chaînes). Choisissez parmi les options suivantes :
- little endian Le haut de l'octet est sur la droite.
- format big endian Le haut de l'octet est à gauche.
- native-endian. Comme défini par le format natif de la machine. Il s'agit de la valeur par défaut.
- Format de données. Indique le format de représentation des données d'une zone. S'applique aux zones de tous les types de données, à l'exception de string, ustring et raw, ainsi qu'aux zones d'enregistrement, de sous-enregistrement ou balisées contenant au moins une zone qui n'est pas de type string ou raw. Choisissez parmi les options suivantes :
- binaire
- texte (valeur par défaut)
Un paramètre binaire a des significations différentes lorsqu'il est appliqué à différents types de données :
- Pour les décimales, les moyens binaires sont emballés.
- Pour les autres types de données numériques, binaire signifie "pas de texte".
- Pour les dates, le binaire est équivalent à la spécification de la propriété julien pour la zone de date.
- Pour le temps, le binaire est équivalent à midnight_secondes.
- Pour l'horodatage, binaire indique que le premier entier contient un nombre de jours Julien pour la partie date de l'horodatage et que le second entier indique la partie heure de l'horodatage comme le nombre de secondes à partir de minuit. Un horodatage binaire indique que deux entiers 32-mais sont écrits.
Par défaut, les données sont formatées comme du texte, comme suit :
- Pour le type de données de date, le texte indique que les données lues contiennent une date texte au format %aaaa-%mm-%dd ou au format de date par défaut si vous en avez défini un nouveau sur un système NLS.
- Pour le type de données décimal : une zone représente une décimale dans un format de chaîne avec un espace principal ou '-' suivi de chiffres décimaux avec un séparateur décimal intégré si l'échelle n'est pas nulle. Le format de chaîne de destination est : [ + |-]ddd. [ ddd ] et les arguments de précision et d'échelle sont ignorés.
- Pour les zones numériques (int8, int16, int32, uint8, uint16, uint16, uint32, sfloat et dfloat): IBM DataStage suppose que les zones numériques sont représentées sous forme de texte.
- Pour le type de données d'heure: text indique que la zone représente l'heure au format texte %hh: %nn:%ss.
- Pour le type de données d'horodatage: text spécifie un horodatage texte au format %yyyy-%mm-%dd %hh: %nn:%ss.
- Largeur maximale de la zone. Nombre maximal d'octets dans une colonne représentée sous forme de chaîne. Saisissez un numéro. Ceci est utile lorsque vous stockez des nombres sous forme de texte. Si vous utilisez un jeu de caractères à largeur fixe, vous pouvez calculer la longueur exacte. Si vous utilisez un jeu de caractères de longueur variable, calculez une largeur maximale adéquate pour vos champs. S'applique aux zones de tous les types de données sauf la date, l'heure, l'horodatage et le brut ; et l'enregistrement, le sous-élément ou l'étiquette s'ils contiennent au moins une zone de ce type.
- Largeur de la zone. Nombre d'octets dans une zone représentée sous forme de chaîne. Saisissez un numéro. Ceci est utile lorsque vous stockez des nombres sous forme de texte. Si vous utilisez un jeu de caractères à largeur fixe, vous pouvez calculer le nombre d'octets exactement. S'il s'agit d'un codage de longueur variable, basez votre calcul sur la largeur et la fréquence de vos caractères de largeur variable. S'applique aux zones de tous les types de données sauf la date, l'heure, l'horodatage et le brut ; et l'enregistrement, le sous-élément ou l'étiquette s'ils contiennent au moins une zone de ce type.
Si vous n'indiquez ni largeur de zone ni largeur maximale de zone, les zones numériques écrites sous forme de texte ont le nombre d'octets suivant comme largeur maximale :
- Entiers 8 bits signés ou non signés : 4 octets
- Entiers 16 bits signés ou non signés : 6 octets
- Entiers 32 bits signés ou non signés : 11 octets
- Entiers signés ou non signés 64 bits : 21 octets
- Flotteur à simple précision : 14 octets (signe, chiffre, point décimal, 7 fraction, "E", panneau, 2 exposant)
- Virgule flottante double précision : 24 octets (signe, chiffre, point décimal, 16 fraction, "E", signe, 3 exposant)
- Caractère de l'extrusion. Cette propriété est ignorée pour les liens de sortie.
- Jeu de caractères. Indique le jeu de caractères. Choisissez un code ASCII ou EBCDIC. La valeur par défaut est ASCII. S'applique à tous les types de données, à l'exception du brut et de l'ustring, de l'enregistrement, du sous-secteur ou de l'étiquette ne contenant aucune zone autre que brut ou usant.
Chaîne
- Exporter EBCDIC en ASCII. Pas pertinent pour les liens de sortie.
- Importer ASCII en tant que EBCDIC. Sélectionnez cette option pour indiquer que les caractères ASCII sont lus en tant que caractères EBCDIC.
Décimal
- Autoriser tous les zéros. Indique si une colonne décimale condensée contenant tous les zéros (normalement illégal) doit être traitée comme une représentation valide de zéro. Sélectionnez Oui ou Non. La valeur par défaut est Non.
- Séparateur décimal. Indiquez le caractère ASCII qui fait office de séparateur décimal (point par défaut).
- Emballé. Sélectionnez une option pour spécifier ce que contiennent les colonnes décimales, choisissez parmi les options suivantes :
- Oui pour indiquer que les zones décimales contiennent des données au format décimal condensé (valeur par défaut). Elle comporte les sous-propriétés suivantes :
Vérifier. Sélectionnez Oui pour vérifier que les données sont conditionnées ou Non pour ne pas vérifier.
Signé. Sélectionnez Oui pour utiliser le signe existant lors de l'écriture de colonnes décimales. Sélectionnez Non pour écrire un signe positif (0xf), quelle que soit la valeur du signe réel des colonnes.
- Non (séparé) pour indiquer qu'ils contiennent un nombre décimal non condensé avec un octet de signe distinct. Elle comporte la sous-propriété suivante :
Signer la position. Choisissez la direction ou la fin, selon le cas.
- Non (zoned) pour indiquer qu'ils contiennent une décimale non condensée en texte ASCII ou EBCDIC. Elle comporte la sous-propriété suivante :
Signer la position. Choisissez la direction ou la fin, selon le cas.
- Non (overpunch) pour indiquer que la zone possède un octet de début ou de fin contenant un caractère qui spécifie la valeur numérique de cet octet et indique si le nombre dans son ensemble comporte un signe négatif ou positif. Elle comporte la sous-propriété suivante :
Signer la position. Choisissez la direction ou la fin, selon le cas.
- Oui pour indiquer que les zones décimales contiennent des données au format décimal condensé (valeur par défaut). Elle comporte les sous-propriétés suivantes :
- Précision. Indique la précision d'une décimale condensée. Saisissez un numéro.
- Arrondissant. Indique comment arrondir la zone source à la valeur décimale de destination lors de la lecture d'une zone source à une valeur décimale. Choisissez parmi les options suivantes :
- Haut (plafond). Tronquer la colonne source vers l'infini positif. Ce mode correspond au mode IEEE 754 Round Up. Par exemple, 1.4 devient 2, -1.6 devient -1.
- Bas (plancher). Tronquer la colonne source vers l'infini négatif. Ce mode correspond au mode IEEE 754 Round Down. Par exemple, 1.6 devient 1, -1.4 devient -2.
- Valeur la plus proche. Arrondit la colonne source à la valeur représentable la plus proche. Ce mode correspond au mode COBOL ROUNDED. Par exemple, 1.4 devient 1, 1.5 devient 2, -1.4 devient -1, -1.5 devient -2.
- tronquer vers zéro. Il s'agit de la valeur par défaut. Supprime les décimales se trouvant à droite de la décimale la plus à droite prise en charge par la destination, quel que soit le signe. Par exemple, si la destination est un entier, tous les chiffres fractionnaires sont tronqués. Si la destination est une autre décimale avec une échelle plus petite, tronquée à la taille d'échelle de la destination décimale. Ce mode correspond à la fonction COBOL INTEGER-PART. L'utilisation de cette méthode 1.6 devient 1, -1.6 devient -1.
- Échelle. Indique l'échelle d'une décimale condensée source.
Numérique
- Format C_format. Effectuez une conversion non par défaut des données de type chaîne en données de type entier ou virgule flottante. Cette propriété spécifie une chaîne au format de langage C utilisée pour la lecture des chaînes de type entier ou virgule flottante. Cette valeur est transmise à Sscanf(). Par exemple, en spécifiant un format C de %x et une largeur de zone de 8, un entier 32 bits est formaté sous la forme d'une chaîne hexadécimale de 8 octets.
- In_format. Chaîne de format utilisée pour la conversion des données de type chaîne en données de type entier ou virgule flottante. Cette valeur est transmise à sscanf(). Par défaut, IBM DataStage lance la fonction C sscanf() pour convertir une zone numérique de format chaîne en données de type entier ou virgule flottante. Si cette fonction ne produit pas de données dans un format satisfaisant, vous pouvez spécifier la propriété in_format pour transmettre les arguments de formatage à Sscanf().
- Format_sortie. Cette propriété n'est pas pertinente pour les liens de sortie.
Date
- Jours depuis. Les dates sont écrites sous la forme d'un entier signé contenant le nombre de jours depuis la date spécifiée. Entrez une date dans le format%Aaaa-%Mm-%Dd ou dans le format de date par défaut si vous en avez défini un nouveau sur un système NLS.
- Chaîne de format. Format de chaîne d'une date. Par défaut, il s'agit de aaaa-mm-jj.
- Est Julian. Sélectionnez cette option pour indiquer que les dates sont écrites sous la forme d'une valeur numérique contenant le jour julien. Un jour julien spécifie la date en nombre de jours à partir de 4713 BCE 1 janvier, 12:00 heures (midi) GMT.
Heure
- Chaîne de format. Indique le format des colonnes représentant le temps sous forme de chaîne. Par défaut, il s'agit de aaaa-mm-jj.
- Est minuit secondes. Sélectionnez cette option pour indiquer que les heures sont écrites sous la forme d'un entier binaire 32 bits contenant le nombre de secondes écoulées depuis minuit.
Horodatage
- Chaîne de format. Indique le format d'une colonne représentant un horodatage sous forme de chaîne. Le format combine le format des chaînes de date et d'heure.