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

Autres SGBD Discussion :

[TERADATA] Ajout du caracatère "retour chariot" dans un champ


Sujet :

Autres SGBD

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [TERADATA] Ajout du caracatère "retour chariot" dans un champ
    Bonjour

    J'essaye de trouver les vues qui ne devraient plus exister car les tables appelées n'existent plus.
    Comme je n'ai pas trouvé de solution pour les trouver, je vais utiliser la commande "help view" qui me retourne un message d'erreur si les tables appellées par la vue n'existent pas.

    Je désire donc faire un petit programme pour générer mon script à partir des tables de bases.

    Voici la commande que je voudrais mettre dans une table de travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    help view DB_DATAMART.TOTO_1 ;
     
    .if errorcode =3807 then insert into DB_RECETTE.LHU values('DB_DATAMART.TOTO_1','Existe pas');
    .if errorcode <> 0 then .goto SQL_ERREUR;
    Mais le problème est que qu'il n'y a pas les retours charriot et donc tout est écrit sur une unique ligne et donc le ksh / BTEQ généré ne fonctionne pas.




    Cordialement
    Laurent

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Je ne comprends pas bien ton problème...
    Est-ce que c'est l'exécution du code Bteq que tu présentes qui ne créée pas les retours charriot qui te manquent ou est-ce que c'est le programme qui prépare le script Bteq qui ne crée pas les retours charriot entre chaque ligne ?
    Dans ce dernier cas, c'est le code de ce programme qu'il faudrait nous présenter...
    Dernières questions : Sont-ce bien des retours charriot que tu attends ou des sauts de ligne ? Travailles-tu en environnement Windows ou Unix ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Voici ce que j'ai lancé via TERADATA SQL Assistant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    insert into DB_DATAMART.LHU_I
     
    select trim(DatabaseName),  trim(TableName),  'help view '|| trim(DatabaseName)||'.'|| trim(TableName)||' ;
     
    .if errorcode =3807 then insert into DB_RECETTE.LHU values('''|| trim(DatabaseName)||''','''|| trim(TableName)||''',''Existe pas'');
    .if errorcode <> 0 then .goto SQL_ERREUR; 
    ' 
     
    from DB_DATAMART.LHU_G where LOT='3';

    Après je vais écrire ksh qui effectue une connexion à ma base TERADATA via BTEQ et faire un export sur la requete suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from DB_DATAMART.LHU_I
    Mon script ksh fonctionne correctement.

    Mon problème est sur les données de ma table.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    En fait, sans passer par la table DB_DATAMART.LHU_I, tu pourrais exécuter cette requête qui prépare ton script Bteq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT  CASE nmr.ligne  
            WHEN    1   THEN    'help view ' || TRIM(tbl.DatabaseName) || '.' || TRIM(tbl.TableName) || ' ;'  
            WHEN    2   THEN    ''
            WHEN    3   THEN    '.if errorcode = 3807 then insert into DB_RECETTE.LHU values('''
                                || TRIM(tbl.DatabaseName) || ''', '''|| TRIM(tbl.TableName) || ''', ''Existe pas'');'
            WHEN    4   THEN    '.if errorcode <> 0 then .goto SQL_ERREUR;'
            WHEN    5   THEN    ''
            END 
    FROM    db_datamart.lhu_g   AS tbl
        CROSS JOIN
            (       SELECT  1   AS ligne
            UNION   SELECT  2   
            UNION   SELECT  3   
            UNION   SELECT  4
            UNION   SELECT  5
            )   AS  nmr 
    WHERE   tbl.lot = '3'
    ORDER BY tbl.DatabaseName
        ,   tbl.TableName
        ,   nmr.ligne
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Retour chariot <br> dans un mail
    Par tony danza dans le forum Langage
    Réponses: 10
    Dernier message: 03/08/2009, 06h22
  2. Retour chariot + récupération dans une variable JS
    Par seblo_scoqi dans le forum Langage
    Réponses: 12
    Dernier message: 03/12/2008, 10h37
  3. Réponses: 10
    Dernier message: 09/10/2007, 16h07
  4. xml->html : retour chariot, espaces dans un div
    Par d'Oursse dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 27/04/2004, 19h13

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