CPYFRMSTMF
Copier depuis fichier STREAM
En bref
La commande Copier depuis fichier STREAM (CPYFRMSTMF) permet de copier les données d'un fichier STREAM dans un membre de fichier base de données ou dans un fichier sauvegarde.
CPYFRMSTMF se lit CPY
(Copier) + FRMSTMF.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CPYFRMSTMF FROMSTMF(…) TOMBR(…)
Paramètres
-
FROMSTMFFichier STREAM d'origine obligatoire -
TOMBRMembre ou fichier sauv de dest obligatoire -
MBROPTOption de membre -
CVTDTAOptions conversion de données -
STMFCCSIDCCSID fichier STREAM -
DBFCCSIDCCSID du fichier BD -
TBLTable de conversion -
ENDLINFMTCaractères de fin de ligne -
TABEXPNExpansion caractère tabulation -
STMFCODPAGPage de codes fichier STREAM
Astuce : dans une session 5250, tapez CPYFRMSTMF puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non
La commande Copier depuis fichier STREAM (CPYFRMSTMF) permet de copier les données d'un fichier STREAM dans un membre de fichier base de données ou dans un fichier sauvegarde. Une conversion des données et un reformatage optionnels sont effectués lors de la copie d'un membre de fichier base de données. Cette commande ne permet pas d'effectuer une copie vers ou depuis un membre de fichier base de données sur un système éloigné. Toutes les substitutions en cours pour le membre de fichier de base de données ou pour le fichier de sauvegarde ne sont pas utilisées par cette commande.
Cette commande fonctionne sur les fichiers standard et sur le fichier spécial de type caractère /dev/null (c'est-à-dire qui prend en charge les opérations d'entrée-sortie (E-S) du système de fichiers intégré : ouverture, lecture et écriture).
Pour plus d'informations sur les commandes du système de fichiers intégré, reportez-vous aux Rubriques Système de fichiers intégré de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Remarque :Il se peut que les numéros de séquence figurant dans le membre de fichier base de données résultant ne soient pas classés. Si vous utilisez une fonction qui requiert que ces numéros soient classés, utilisez la commande RGZPFM sur le membre, en spécifiant le paramètre SRCOPT(*SEQNBR).
Restrictions :
- Le nom du chemin du membre de fichier base de données doit être sous la forme nom.type-objet. Par exemple, /QSYS.LIB/LIBA.LIB/FILEA.FILE/MBRA.MBR est la forme requise par le système de fichiers QSYS.LIB.
- Le nom-chemin-fichier-sauvegarde doit être indiqué au format nom.type-objet. Par exemple, le format /QSYS.LIB/LIBA.LIB/SAVEFILEA.FILE est requis par le système de fichiers QSYS.LIB.
- Les droits suivants sont nécessaires :
- Droit d'exécution (*X) sur les répertoires du préfixe du nom de chemin du fichier base de données, du fichier sauvegarde, du fichier STREAM ou de la table de conversion.
- Droit de lecture (*R) sur le fichier STREAM.
- Droit de lecture et d'exécution (*WX) sur le fichier de base de données. Par ailleurs, si MBROPT(*NONE) ou MBROPT(*REPLACE) est indiqué, il est également nécessaire de disposer du droit de gestion d'objet (*OBJMGT) sur le fichier base de données.
- Droit d'ajout (*ADD) sur la bibliothèque de membres de base de données si le membre de base de données n'existe pas encore.
- Droit de lecture, d'écriture et d'exécution (*RWX) et droit de gestion d'objet (*OBJMGT) sur le fichier sauvegarde si celui-ci existe déjà.
- Droit de lecture, d'écriture et d'exécution (*RWX) sur la bibliothèque du fichier sauvegarde si celui-ci n'existe pas encore.
- Si une table de conversion a été indiquée, droit de lecture (*R) sur cette table.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| FROMSTMF | Fichier STREAM d'origine | Chemin d'accès | Obligatoire, positionnel 1 |
| TOMBR | Membre ou fichier sauv de dest | Chemin d'accès | Obligatoire, positionnel 2 |
| MBROPT | Option de membre | *NONE, *ADD, *REPLACE | Facultatif |
| CVTDTA | Options conversion de données | *AUTO, *TBL, *NONE | Facultatif |
| STMFCCSID | CCSID fichier STREAM | 1-65533, *STMF, *PCASCII | Facultatif |
| DBFCCSID | CCSID du fichier BD | 1-65533, *FILE | Facultatif |
| TBL | Table de conversion | Chemin d'accès | Facultatif |
| ENDLINFMT | Caractères de fin de ligne | *ALL, *CRLF, *LF, *CR, *LFCR, *FIXED | Facultatif |
| TABEXPN | Expansion caractère tabulation | *YES, *NO | Facultatif |
| STMFCODPAG | Page de codes fichier STREAM | 1-32767, *STMF, *PCASCII | Facultatif |
Fichier STREAM d'origine (FROMSTMF)
Indique le nom de chemin du fichier STREAM à partir duquel doit s'effectuer la copie. Cette commande fonctionne sur des fichiers de type *STMF et sur le fichier spécial de type caractère /dev/null.
Pour obtenir de plus amples informations relatives à la spécification des noms de chemin, reportez-vous à "Object naming rules" dans la rubrique Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Membre ou fichier sauv de dest (TOMBR)
Détermine le nom du chemin du membre de fichier de base de données ou du fichier sauvegarde dans lequel les données sont copiées. Tous les répertoires indiqués dans le chemin doivent exister.
Lors de la copie dans un fichier sauvegarde inexistant, ce dernier est automatiquement créé.
Lors de la copie dans un membre de fichier de base de données, le fichier de base de données doit impérativement exister. Si le membre n'existe pas, il est créé automatiquement. Le fichier peut être un fichier physique source ou un fichier physique décrit dans les programmes. Les fichiers physiques source comportant des zones de données multiples ne sont pas pris en charge.
Si le fichier base de données est un fichier physique source, un numéro de séquence et une zone de date sous forme de zéros sont ajoutés à chaque enregistrement lors de la copie dans le membre du fichier base de données.
Pour obtenir de plus amples informations relatives à la spécification des noms de chemin, reportez-vous à "Object naming rules" dans la rubrique Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Option de membre (MBROPT)
Indique si la copie a échoué ou si un remplacement ou un ajout a été effectué dans les enregistrements si l'objet indiqué au paramètre Membre ou fichier sauv de dest (TOMBR) existe. Si l'objet n'existe pas, il est créé.
- *NONE
- Aucun enregistrement n'est copié et l'opération échoue lorsque l'objet existe.
- *ADD
- Les enregistrements copiés sont ajoutés après les enregistrements existants.
- *REPLACE
- Les enregistrements copiés remplacent les enregistrements existants.
Options conversion de données (CVTDTA)
Indique l'opération qui permet de convertir les données contenues dans le fichier STREAM en données du membre du fichier base de données.
Ce paramètre est ignoré lors de la copie dans un fichier sauvegarde.
- *AUTO
- Lors de la copie, les données sont converties à l'aide de l'ID codé de jeu de caractères (CCSID) équivalent au fichier STREAM et au CCSID du fichier base de données.
- *TBL
- Les données sont converties à l'aide d'une table de conversion, qui doit être indiquée au paramètre TBL. La table de conversion doit être spécifiée au paramètre TBL (Table de conversion).
- *NONE
- Seules l'insertion des numéros de séquence et des zones de date dans les fichiers physiques source ainsi que la suppression éventuelle des caractères de formatage de ligne du fichier STREAM sont effectuées. La conversion depuis le CCSID du fichier STREAM vers le CCSID du fichier base de données n'est pas effectuée pour les autres caractères.
CCSID fichier STREAM (STMFCCSID)
Indique la méthode permettant d'obtenir l'ID codé de jeu de caractères (CCSID) de fichier STREAM à utiliser pour la conversion des données.
Ce paramètre est ignoré lors de la copie d'un fichier sauvegarde ou lorsque CVTDTA(*TBL) ou CVTDTA(*NONE) est indiqué.
Ce paramètre ne peut pas être utilisé avec le paramètre Page de codes fichier STREAM (STMFCODPAG).
- *STMF
- Le CCSID associé au fichier STREAM indiqué au paramètre Fichier STREAM d'origine (FROMSTMF) est utilisé pour la conversion des données.
- *PCASCII
-
Utilisez le CCSID associé au fichier STREAM indiqué au paramètre Fichier STREAM d'origine (FROMSTMF) pour calculer un CCSID dans le schéma de codage de Microsoft Windows (x4105). Il est fait appel à ce CCSID lorsqu'une conversion est demandée. Cette option permet une conversion correcte des données si celles-ci ont été créées via Microsoft Windows. ("Microsoft" et "Windows" sont des marques enregistrées de Microsoft Corporation.)
Par exemple, si le CCSID 37 est associé au fichier STREAM, le système considère que c'est le CCSID 1252 qui lui est associé pour la conversion des données.
- 1 à 65533
- Indiquez le CCSID de fichier STREAM à utiliser pour la conversion des données.
CCSID du fichier BD (DBFCCSID)
Indique la méthode permettant d'obtenir le CCSID de fichier base de données à utiliser pour la conversion des données.
Ce paramètre est ignoré lors de la copie dans un fichier sauvegarde.
- *FILE
- Le CCSID du fichier base de données est utilisé s'il est différent de 65535. Dans le cas contraire et si le fichier n'est pas un fichier décrit dans les programmes, une condition d'erreur est créée. Si le CCSID est 65535 et que le fichier n'est pas un fichier décrit dans les programmes, l'opération échoue. Si le CCSID est 65535 et que le fichier est un fichier décrit dans les programmes, le CCSID par défaut du travail est utilisé.
- 1 à 65533
- Indiquez l'ID codé de jeu de caractères (CCSID) du fichier de base de données. Cette option n'est admise que si le CCSID du fichier base de données est 65535 ou s'il est identique à celui qui est indiqué. Sinon, l'opération échoue.
Table de conversion (TBL)
Indique le nom de chemin de la table à utiliser pour la conversion des données du fichier STREAM en données du membre de fichier base de données.
Remarque :Ce paramètre est requis et admis uniquement si CVTDTA(*TBL) est précisé. Ce paramètre est ignoré lors de la copie dans un fichier sauvegarde.
Pour obtenir de plus amples informations relatives à la spécification des noms de chemin, reportez-vous à "Object naming rules" dans la rubrique Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Caractères de fin de ligne (ENDLINFMT)
Indique les caractères de fin de ligne qui sont reconnus dans le fichier STREAM lors de la copie des enregistrements.
Ce paramètre est ignoré lors de la copie dans un fichier sauvegarde.
Le format de tous les enregistrements est transformé en format de longueur fixe lorsque ceux-ci sont copiés dans le fichier base de données. La longueur fixe des enregistrements est égale à la longueur des enregistrements du fichier base de données dans lequel ils sont copiés. Si l'une des options de caractère de fin de ligne est choisie (ENDLINFMT(*FIXED) n'étant pas spécifié), le fichier STREAM est lu jusqu'à la première occurrence de ce caractère, qui est retiré de l'enregistrement. Le reste de l'enregistrement est complété par des blancs. Les données sont converties au format des données de destination (s'il est indiqué) et copiées dans le membre du fichier base de données. Lorsqu'un enregistrement est trop long par rapport au format de longueur fixe, il est tronqué avant d'être copié.
- *ALL
- Toute combinaison de caractères simples ou doubles indiquant un retour marge et un caractère interligne est ajoutée à la fin de chaque ligne.
- *CRLF
- Un retour marge suivi d'un caractère interligne est ajouté à la fin de chaque ligne.
- *LF
- Un caractère interligne est ajouté à la fin de chaque ligne.
- *CR
- Un retour marge est ajouté à la fin de chaque ligne.
- *LFCR
- Un caractère interligne suivi d'un retour marge est ajouté à la fin de chaque ligne.
- *FIXED
- Les lignes de texte du fichier STREAM sont considérées comme des enregistrements dont la longueur fixe est identique à la longueur des enregistrements du fichier base de données dans lesquels elles doivent être copiées. Aucun des caractères CR, LF et EOF détectés ne sont retirés du fichier STREAM. L'expansion à l'aide des tabulations n'est pas acceptée et le paramètre Expansion caractère tabulation (TABEXPN) n'est pas admis. Si le dernier enregistrement du fichier STREAM est moins long que celui du fichier base de données, il est complété par des blancs.
Si CVTDTA(*AUTO) est indiqué, la contraction ou l'expansion des données converties n'est pas autorisée. En conséquence, les schémas de codage du CCSID de fichier STREAM et du CCSID de fichier base de données doivent être compatibles. Par exemple, la commande échouera en présence d'un fichier STREAM et d'un fichier base de données présentant respectivement un schéma de codage simple octet et double octet.
Expansion caractère tabulation (TABEXPN)
Indique si les caractères de tabulation intercalaires sont développés sous forme d'espaces jusqu'au taquet de tabulation de huit caractères suivant.
Ce paramètre est ignoré lors de la copie dans un fichier sauvegarde.
- *YES
- Les caractères de tabulation ne sont pas copiés dans le membre du fichier base de données. Lorsqu'ils sont détectés, ces caractères sont développés sous forme d'espaces jusqu'au taquet de tabulation suivant.
Remarque :Si ENDLINFMT(*FIXED) est indiqué, la valeur *YES n'est pas admise pour ce paramètre.
- *NO
- Les caractères de tabulation sont copiés dans le membre du fichier base de données. Aucune expansion de tabulation n'a lieu.
Page de codes fichier STREAM (STMFCODPAG)
Indique la valeur de page de codes permettant de déterminer l'ID codé de jeu de caractères (CCSID) de fichier STREAM à utiliser pour la conversion des données.
Ce paramètre est ignoré lors de la copie dans un fichier sauvegarde.
Ce paramètre ne peut pas être utilisé avec le paramètre CCSID fichier STREAM (STMFCCSID).
Remarque :Ce paramètre est remplacé par STMFCCSID mais il reste possible d'utiliser le paramètre STMFCODPAG. Toutefois, dans la mesure où ce dernier paramètre risque d'être supprimé dans une édition ultérieure, il est préférable d'utiliser STMFCCSID chaque fois que possible.
- *STMF
- Si cette valeur est indiquée, aucun traitement de page de codes n'est effectué. Le CCSID du fichier STREAM indiqué au paramètre Fichier STREAM d'origine (FROMSTMF) est utilisé pour la conversion des données.
- *PCASCII
-
Utilisez le CCSID associé au fichier STREAM indiqué au paramètre Fichier STREAM d'origine (FROMSTMF) pour calculer un CCSID dans le schéma de codage de Microsoft Windows (x4105). Il est fait appel à ce CCSID lorsqu'une conversion est demandée. Cette option permet une conversion correcte des données si celles-ci ont été créées via Microsoft Windows. ("Microsoft" et "Windows" sont des marques enregistrées de Microsoft Corporation.)
Par exemple, si le CCSID 37 est associé au fichier STREAM, le système considère que c'est le CCSID 1252 qui lui est associé pour la conversion des données.
- 1 à 32767
- Indiquez la page de codes du fichier STREAM. Cette valeur sera alors prise en compte pour calculer un CCSID de fichier STREAM à utiliser pour la conversion des données.
Exemples
Exemple 1 : Copie des données d'un fichier STREAM dans un fichier base de données en utilisant une conversion automatique
CPYFRMSTMF FROMSTMF('STMF.TXT')
TOMBR('/QSYS.LIB/MABIB.LIB/MONFICH.FILE/MONMBR.MBR')
Cette commande copie les données contenues dans le fichier STREAM STMF.TXT du répertoire de travail en cours dans le membre de fichier base de données /QSYS.LIB/MABIB.LIB/MONFICH.FILE/MONMBR.MBR. La conversion automatique s'effectue en utilisant le CCSID des données du fichier STREAM et le CCSID du fichier base de données. Toute combinaison de caractères CR (retour marge) et LF (avance ligne) est reconnue à la fin d'une ligne du fichier STREAM et tout caractère de tabulation intercalaire est développé sous forme d'espaces jusqu'à la position de tabulation suivante, car il s'agit des valeurs par défaut. Si le membre MONMBR.MBR n'existe pas dans le fichier, il est créé. S'il existe, aucun enregistrement n'est copié car MBROPT(*NONE) est la valeur par défaut.
Exemple 2 : Copie des données d'un fichier STREAM dans un fichier base de données à l'aide d'une table de conversion
CPYFRMSTMF FROMSTMF('FINANCE.NEW')
TOMBR('/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR')
CVTDTA(*TBL) STMFCCSID(437)
TBL('/QSYS.LIB/QUSRSYS.LIB/TBL1.TBL')
ENDLINFMT(*CRLF) TABEXPN(*NO)
Cette commande copie les données contenues dans le fichier STREAM FINANCE.NEW du répertoire de travail en cours dans le membre de fichier /QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR. Les données du fichier STREAM sont converties à l'aide de la table de conversion définie par l'utilisateur TBL1.TBL figurant dans le répertoire /QSYS.LIB/QUSRSYS.LIB. La double combinaison de caractères CR (retour marge) et LF (avance ligne) est reconnue à la fin du fichier STREAM. Les caractères de tabulation intercalaires ne sont pas développés sous forme d'espaces. Les seuls caractères de formatage de ligne reconnus seront les combinaisons CR et LF telles que représentées dans le CCSID 437 indiqué au paramètre STMFCCSID.
Exemple 3 : Copie des données d'un fichier STREAM dans un fichier base de données sans conversion de données
CPYFRMSTMF FROMSTMF('FINANCE.NEW')
TOMBR('/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR')
CVTDTA(*NONE) ENDLINFMT(*FIXED)
Cette commande copie les données contenues dans le fichier STREAM FINANCE.NEW du répertoire de travail en cours dans le membre de fichier/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR sans conversion de données. Les lignes de données du fichier STREAM sont considérées comme des enregistrements de longueur fixe de la même longueur que les enregistrements du fichier base de données. Comme TABEXPN(*NO) est indiqué, les caractères de tabulation détectés ne sont pas développés sous forme d'espaces lors de la copie. Si le schéma de codage du fichier STREAM et du fichier base de données sont incompatibles, la copie s'interrompt avec un message d'erreur.
Exemple 4 : Copie des données d'un fichier STREAM dans un fichier sauvegarde
CPYFRMSTMF FROMSTMF('/MONREP/SOFTWARE')
TOMBR('/QSYS.LIB/PACKAGE.LIB/SOFTWARE.FILE')
Cette commande copie les données contenues dans le fichier STREAM /MONREP/SOFTWARE dans le fichier sauvegarde /QSYS.LIB/PACKAGE.LIB/SOFTWARE.FILE. Les données du fichier STREAM sont copiées en tant qu'enregistrements de longueur fixe avec une longueur égale à 528. Aucun caractère de formatage de ligne n'est inséré et aucune conversion de données n'est effectuée.
Messages d'erreur
Messages *ESCAPE
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.