IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

Suppression de blanc dans une table


Sujet :

AS/400

  1. #21
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Olivier oui mais cette solution le client n'en veut pas c'est pour ça que je suis entrain de galérer pour formater les colonnes comme veut ce chère client DSL

    Pour la question de StringBuilder mes colonnes sont en CHAR

    Donc si je comprend bien il faudrait que je recrée ma table mais en mettant VARCHAR je sais pas si ça existe sur L'iSeries je vais voir ça de suite et vous tiens au courant

    Merci Merci

  2. #22
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Soit tu converti tes données en VARCHAR, soit lors de la lecture dans la table, tu fais des TRIM, mais au moment du SELECT, pas de l'INSERT.
    On ne jouit bien que de ce qu’on partage.

  3. #23
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Si ca existe.

    Mais attention, si derrière vous avez des programmes batch de type cobolo/rpgle qui font des traitements ....

    edit : pi vos tables là ce sont bien des tables SQL ? pas des fichiers ?

    Faites des tests avant de tout changer

  4. #24
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Soit tu converti tes données en VARCHAR, soit lors de la lecture dans la table, tu fais des TRIM, mais au moment du SELECT, pas de l'INSERT.
    Curiosité :
    J'imagine que les variables dans les PS (si les PS existent sous DB2 ?) sont aussi à modifier ?
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #25
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Voila j'ai modifié toutes mes zones en VARCHAR puis j'ai passé les TRIM sur toutes les zones

    Et le résultat est le suivant

    __"__11__"__;__"__289 __"__;__"_WL45491310249 __"__;__"_00017__"__;__"__TESTTESTTEST __"__;__"__ROUTE DE TESTTEST __"__;__"__ __"__;__"_ 111111 __"__;__"_TESTTEST __"__;__"__0 __"__;__"__0 __"__;__"__ __"

    A la place des soulignés j'ai en réalité des petits carrés des zones à blancs un peu partout en faite tout sauf ce que je veux

  6. #26
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    quelles manip exactement avez vous faites ?

  7. #27
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2012
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    punkoff Puisque l'update ne passe pas plutôt ne fait pas ce que je veux je suis partie sur l'option du Create Table à moins que vous puissiez me donner une solution sur l'update ça serait génial Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    create table mabib/newfic as ( select '"' concat           
    trim(replace(ZA, '"', '')) concat trim(replace(MVCMP, '"', ''))  
    concat trim(replace(ZB, '"', '')) concat trim(replace(Z1, ';',   
    '";"')) concat trim(replace(ZC, '"', '')) concat                 
    trim(replace(MVVND, '"', '')) concat trim(replace(ZD, '"', ''))  
    concat trim(replace(Z2, ';', '";"')) concat trim(replace(ZE, '"',
    '')) concat trim(replace(MVSSN, '"', '')) concat trim(replace(ZF,
    '"', '')) concat trim(replace(Z3, ';', '";"')) concat            
    trim(replace(ZG, '"', '')) concat trim(replace(MVNICD, '"', '')) 
    concat trim(replace(ZH, '"', '')) concat trim(replace(ZE, ';',   
    '";"')) concat trim(replace(ZI, '"', '')) 
    [...]
    from MABIB/FICOLD) with data
    Tout est bien concaténé par contre lorsque je fais un DSPPFM ou un transfert sur mon PC j m'appercois qu'il y a en début de chaque ligne des caractères parasite exemple

    #
    À
    Ì
    Ñ
    =
    Ø
    @
    etc...

    par contre lorsque je fais un select * from MABIB/FICNEW je ne vois pas ces caractères

    Comment les supprimer?

    Pour info je n'ai pas ces caractères dans mon fichier d'origine FICOLD

  8. #28
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Là vos problèmes concernent les outils AS400 et non le SQL.

    Je ne travaille plus dessus, je ne pourrai pas vous aider. (y a une section AS400).


    Sinon je ne vois pas pourquoi l'update ne marcherai pas.
    Si vous travaillez avec des tables SQL un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update ma_table
    set col_1 = trim(col_1), col_2 = trim(col_2)
    suffira

  9. #29
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par helene75b Voir le message
    Bonjour,

    ...Tout est bien concaténé par contre lorsque je fais un DSPPFM ou un transfert sur mon PC j m'appercois qu'il y a en début de chaque ligne des caractères parasite exemple

    #
    À
    Ì
    Ñ
    =
    Ø
    @
    etc...

    par contre lorsque je fais un select * from MABIB/FICNEW je ne vois pas ces caractères

    Comment les supprimer?

    Pour info je n'ai pas ces caractères dans mon fichier d'origine FICOLD
    Bonjour.

    Ces caractères que tu vois en début de chaque colonne, ici une seule après la concaténation des colonnes en provenance de la table d'origine, représentent la zone qui contient la longueur en hexa (binaire) sur 2 octets (ou 4) de la colonne déclarée en VARCHAR. Cette longueur est utilisée pour déterminer la longueur de ce qui suit, tu la vois par DSPPFM mais tous les autres utilitaires, y compris le transfert par Client Access (et suivants), l'utilisent pour déterminer la longueur de la colonne mais ne la restitue pas en tant que colonne dans la nouvelle table, dans les rapports ou dans tout autre action comme le remplissage d'une nouvelle colonne, etc...

    Quant aux espaces qui apparaissent dans le DSPPFM ou DFU, c'est du filling par espaces du reste des colonnes. Ces utilitaires travaillent en fixe en tenant compte de la longueur max déclarée dans le VARCHAR. Par contre SQL la gère bien.

    Les tables en DB2/400 sont des fichiers physiques que vous les déclariez avec des DDS ou des DDL (SQL).

    Je viens de faire un test avec un exemple comme le tiens en créant une nouvelle table par SQL en concaténant toutes colonnes déclarées en VARCHAR d'une autre table. Les données dans la nouvelle table sont correctes et précédes de la longueur de la seule colonne VARCHAR de la nouvelle table. Le transfert sur le micro en texte et en Excel me donne bien le contenu de la colonne mais non précédé de cette longueur.

  10. #30
    Membre averti
    Homme Profil pro
    Analyste-Programmeur IBM i, IBM Cognos TM1
    Inscrit en
    Août 2002
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur IBM i, IBM Cognos TM1
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2002
    Messages : 234
    Points : 355
    Points
    355
    Par défaut
    Bonjour,

    Dans votre cas, il suffit de faire une simple programme par exemple :
    \free
    read monfichier
    do while not %eof
    mazone = %trim(mazone)
    update monfichier
    read monfichier
    enddo
    \end-free

    Larry57

  11. #31
    Membre averti
    Homme Profil pro
    Analyste-Programmeur IBM i, IBM Cognos TM1
    Inscrit en
    Août 2002
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur IBM i, IBM Cognos TM1
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2002
    Messages : 234
    Points : 355
    Points
    355
    Par défaut
    Autre chose, tu fais comment pour transferer tes fichiers ?

    Larry57

Discussions similaires

  1. Suppression d'enregistrement dans une table
    Par gunico dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 22/11/2007, 16h40
  2. Suppression d'enregistrements dans une table
    Par lola06 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/05/2007, 11h36
  3. Réponses: 2
    Dernier message: 26/01/2007, 15h28
  4. Suppression de doublons dans une table partionnée
    Par ludmillaj dans le forum Oracle
    Réponses: 10
    Dernier message: 27/12/2005, 14h34
  5. Réponses: 3
    Dernier message: 31/01/2005, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo