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

SQL Oracle Discussion :

Alias obligatoire ?


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 58
    Points : 52
    Points
    52
    Par défaut Alias obligatoire ?
    Bonjour,

    On vient de migrer d'Oracle 7 en Oracle 8i (Wouaou que de modernité ).

    Nous avons beaucoup d'automate qui génère des fichiers csv puis xls à partir d'extractions effectuées avec des instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select col1||';'||col2||';'||col3 ...
    from xxx
    On peut avoir jusqu'à une trentaine de colonne voire plus.

    Les outils ont buggé suite à la migration.
    Le symptôme était que le sqlplus ne renvoyait pas le résultat et provoquait une montée en charge de la machine (8 voire plus au lieu de 0,5 en temps normal).

    J'ai été obligée d'ajouter un alias dans le select et ça s'est mis à fonctionner.

    Quelqu'un aurait une idée pour palier définitivement le problème sans que je soit obligée de mettre à jour toutes les requêtes ?

    D'avance merci.

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    On vient de migrer d'Oracle 7 en Oracle 8i
    tant qu'à migrer pourquoi pas passer dans une version supportée ?

    Il faudrait plus de détail. Un alias ne devrait rien changer.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    Voici un exemple du code avant :
    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
    SELECT d.numimac||'/'||d.numordimac||';'||TO_CHAR(d.datcreat, 'DD/MM/YYYY')||';'||d.refprest||';'||
           pimac.libprest||';'||b.bonsui||';'||pce.numpce||';'||pce.noserieetendu||';'||d.coduti||';'||stimac.col_2||';'||
           d.codpar||';'||u.nomuti||';'||d.raison||';'||d.adres1||' '||d.adres2||' '||d.adres3||';'||d.codpos||';'||
           d.ville||';'||d.pays||';'||'PIECE'||';'||pce.numpce||';'||r.codpro||';'||p.despro||';'||pce.typmach||';'||
           Pce.famind||';'||pce.modele||';'||'EXPEDITION MATERIEL'||';'||
           DECODE(r.traite, 'N', 'EN ATTENTE DE RECEPTION SUR '||r.loc_dest,
                            'O', 'MATERIEL RECEPTIONNE SUR '||r.loc_rec,
                            'Z', 'MATERIEL RECEPTIONNE IMPLICITEMENT SUR '||r.loc_dest)||';'||
           TO_DATE(r.datcreat, 'J')||';'||r.loc_exp||';'||r.loc_dest||';'||'DEMANDE D''INTERVENTION'||';'||
           b.bonsui||';'||b.bonsui_ord||';'||b.numbon||';'||b.cr||';'||b.annul||';'||btv.action||';'||a.libelle||';'||btv.numpce||';'||
           TO_CHAR(SYSDATE, 'DD/MM/YYYY')||';' colonne1
    from prestimac pimac, parametre_2 stimac, action_cr a, logfar r, logpce pce, produit p, bontrav btv, bon b, utilisateur u, demimac d
    SELECT d.numimac||'/'||d.numordimac||';'||TO_CHAR(d.datcreat, 'DD/MM/YYYY')||';'||d.refprest||';'||
           pimac.libprest||';'||b.bonsui||';'||pce.numpce||';'||pce.noserieetendu||';'||d.coduti||';'||stimac.col_2||';'||
           d.codpar||';'||u.nomuti||';'||d.raison||';'||d.adres1||' '||d.adres2||' '||d.adres3||';'||d.codpos||';'||
           d.ville||';'||d.pays||';'||'PIECE'||';'||pce.numpce||';'||r.codpro||';'||p.despro||';'||pce.typmach||';'||
           Pce.famind||';'||pce.modele||';'||'EXPEDITION MATERIEL'||';'||
           DECODE(r.traite, 'N', 'EN ATTENTE DE RECEPTION SUR '||r.loc_dest,
                            'O', 'MATERIEL RECEPTIONNE SUR '||r.loc_rec,
                            'Z', 'MATERIEL RECEPTIONNE IMPLICITEMENT SUR '||r.loc_dest)||';'||
           TO_DATE(r.datcreat, 'J')||';'||r.loc_exp||';'||r.loc_dest||';'||'DEMANDE D''INTERVENTION'||';'||
           b.bonsui||';'||b.bonsui_ord||';'||b.numbon||';'||b.cr||';'||b.annul||';'||btv.action||';'||a.libelle||';'||btv.numpce||';'||
           TO_CHAR(SYSDATE, 'DD/MM/YYYY')||';'
    from prestimac pimac, parametre_2 stimac, action_cr a, logfar r, logpce pce, produit p, bontrav btv, bon b, utilisateur u, demimac d
    Et voici le code maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT d.numimac||'/'||d.numordimac||';'||TO_CHAR(d.datcreat, 'DD/MM/YYYY')||';'||d.refprest||';'||
           pimac.libprest||';'||b.bonsui||';'||pce.numpce||';'||pce.noserieetendu||';'||d.coduti||';'||stimac.col_2||';'||
           d.codpar||';'||u.nomuti||';'||d.raison||';'||d.adres1||' '||d.adres2||' '||d.adres3||';'||d.codpos||';'||
           d.ville||';'||d.pays||';'||'PIECE'||';'||pce.numpce||';'||r.codpro||';'||p.despro||';'||pce.typmach||';'||
           Pce.famind||';'||pce.modele||';'||'EXPEDITION MATERIEL'||';'||
           DECODE(r.traite, 'N', 'EN ATTENTE DE RECEPTION SUR '||r.loc_dest,
                            'O', 'MATERIEL RECEPTIONNE SUR '||r.loc_rec,
                            'Z', 'MATERIEL RECEPTIONNE IMPLICITEMENT SUR '||r.loc_dest)||';'||
           TO_DATE(r.datcreat, 'J')||';'||r.loc_exp||';'||r.loc_dest||';'||'DEMANDE D''INTERVENTION'||';'||
           b.bonsui||';'||b.bonsui_ord||';'||b.numbon||';'||b.cr||';'||b.annul||';'||btv.action||';'||a.libelle||';'||btv.numpce||';'||
           TO_CHAR(SYSDATE, 'DD/MM/YYYY')||';' colonne1
    from prestimac pimac, parametre_2 stimac, action_cr a, logfar r, logpce pce, produit p, bontrav btv, bon b, utilisateur u, demimac d
    Ce code fonctionne.
    Le simple fait d'avoir ajouté colonne1 a permis de débloquer l'outil.

    Le symptôme était que je lançais la requête et que je n'avais rien. Ni résultat, ni message d'erreur.

    Pour ce qui est du changement de version, on va dire que c'est un début ...

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Si je ne m'abuse pas vous avez copié plusieurs fois la même requête. Si la requête exécutée este telle que vous nous l'avez montré, c'est à dire produits cartésien entre 10 tables peut être que ce n'est pas si étonnant que le serveur rame un peu.
    Concernant votre propos "j'ai modifié la requête en y ajoutant des alias" cela veut dire que vous avez envoyé au serveur une autre requête qui probablement a subi un hard parse et donc a été exécutée avec un autre plan.

Discussions similaires

  1. Alias obligatoire dans le SQL des check?
    Par korntex5 dans le forum SQL
    Réponses: 2
    Dernier message: 30/04/2010, 10h23
  2. Réponses: 1
    Dernier message: 08/02/2009, 15h43
  3. Obligatoire : lisez les règles du forum : MAJ 06/08/2010
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 03/07/2008, 13h46
  4. À lire OBLIGATOIREMENT avant de poster sur ce forum
    Par ok.Idriss dans le forum Débats sur le développement - Le Best Of
    Réponses: 2
    Dernier message: 24/09/2006, 23h21
  5. comment creer un alias dynamique avec BDE et ODBC
    Par david33 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/07/2002, 11h50

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