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

Shell et commandes GNU Discussion :

[KSH][PL/SQL] - Deux fichiers output


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Par défaut [KSH][PL/SQL] - Deux fichiers output
    Bonjour,

    Voilà, j'ai un petit soucis. Je dois, à partir d'un fichier .ksh, parcourir une table en pl/sql.

    Seulement, dans cette table, il peut y avoir des éléments faux.

    Ma question est la suivante : Est-ce possible, à partir d'une requête pl/sql, d'écrire dans 2 fichiers d'output? Dans le premier, on trouvera les bons éléments formatés selon mes besoins, dans le second, les éléments faux. Tout cela en parcourant une seule fois mon vecteur.

    Voici une partie simplifiée de mon code :

    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
    22
    23
    24
    25
    function Treatment {
      sql_file=${BINPATH}/${FILE_BEGIN}.sql
      cat << __EOF__ > ${sql_file}
    set serveroutput on
    set line 155
    DECLARE
    g_occ NUMBER(38,2):=0;
    CURSOR MHMEntries IS Select * FROM tmp_mhm;
    BEGIN
    FOR row IN MHMEntries LOOP
            g_occ:= '...mes calculs...';
            IF g_occ >= 0 THEN
                dbms_output.put_line(row.coid||'|'||g_occ||';');
             ELSE 
                dbms_output.put_line('Erreur : XXX');
            END IF;
    END LOOP;
    END;
    /
    EXIT;
    __EOF__
     
    	sqlplus -s ${DB_LOGIN}/${DB_PASSWORD} @$sql_file >> ${FILE_CSV}
    	rm -f ${sql_file}
    }
    Pour le moment, dans mon FILE_CSV, j'ai à la fois mes bonnes lignes, mais aussi mes lignes d'erreurs.
    J'ai créé un FILE_ERR, mais je ne sais pas comment définir 2 sorties différentes à partir d'une seule requête pl/sql.

    Merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Le plus simple est peut-être de faire le tri à la sortie.
    La gestion des fichiers en sortie de Oracle est assez limitée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sqlplus -s ${DB_LOGIN}/${DB_PASSWORD} @$sql_file >> ${FILE_OUT}
    grep -v '^Erreur : ' ${FILE_OUT} > ${FILE_CSV}
    grep '^Erreur : ' ${FILE_OUT} > ${FILE_ERR}
    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
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Par défaut
    Merci, je n'y avais pas pensé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [KSH] lecture et comparaison de deux fichiers
    Par ManusDei dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 28/09/2012, 12h52
  2. mettre deux fichiers input dans un fichier output
    Par didafd dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 19/10/2011, 09h29
  3. Fusion de deux fichiers sql de meme schema
    Par gesualda dans le forum Outils
    Réponses: 8
    Dernier message: 11/02/2008, 10h27
  4. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  5. Pas accès aux lots SQL et fichiers DTS
    Par elmagnifico dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2003, 08h51

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