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

Langage SQL Discussion :

Que fait cette requête?


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut Que fait cette requête?
    Bonjour,

    Je dois faire des tests pour valider une fonction mais pas moyen de la faire fonctionner.
    C'est sensé me copier un bout de table dans un autre bout de table.
    La requête créée par le programme est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO T31SDFH_QFTPOUT (MEMBER,BIGFLD) 
    SELECT 'QFTPOUT',T31SDFH_QFTPOUT.BIGFLD 
    FROM T31SDFH_QFTPOUT 
    WHERE (T31SDFH_QFTPOUT.MEMBER='SCRIPT') 
    ORDER BY SUBSTRING(BIGFLD,2,8)
    mais je pige pas trop le BIGFLD, je crois que c'est un alias, ainsi que le select.
    Quelqu'un peut me détailler la requête svp?

    Merci.

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    T31SDFH_QFTPOUT.BIGFLD, on dirait bien que BIGFLD soit une colonne de la table T31SDFH_QFTPOUT.

    La requête crée des enregistrements dans T31SDFH_QFTPOUT, avec la chaîne 'QFTPOUT' dans la colonne MEMBER et le contenu de T31SDFH_QFTPOUT.BIGFLD dans la colonne BIGFLD.

    Le ORDER BY ne sert à rien, me semble-t-il
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    si BIGFLD est un champs de la table et nom un alias alors ça peut expliquer que je ne sache pas faire fonctionner la fonction.
    Quelqu'un peut confimer?

  4. #4
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    La syntaxe de base c'est : 
    INSERT INTO table (col1, col2) (SELECT col3, col4 from table);
    Regarde tes parenthèese.

    + 1 ORDER By ds 1 INSERT ?

    [Edit] ah bah oui ça marche !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (col1, col2) (SELECT col3, col4 from table2) order by col1, col2;
    [/Edit]

    A +

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par noinneh
    si BIGFLD est un champs de la table et nom un alias alors ça peut expliquer que je ne sache pas faire fonctionner la fonction.
    Quelqu'un peut confimer?
    Quelle fonction ?

    A part des noms de tables et de champs assez tordus, la syntaxe de la requête à l'air correcte. Un problème à l'exécution ? Si oui lequel ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,

    Petite précision

    Citation Envoyé par theLeadingEdge
    + 1 ORDER By ds 1 INSERT ?

    [Edit] ah bah oui ça marche !!
    Et ben finalement non ça ne marche pas toujours! MSDE l'accepte mais DB2 n'en veut pas. Est-ce que quelqu'un sait ce que dit la norme ?

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Et ben finalement non ça ne marche pas toujours! MSDE l'accepte mais DB2 n'en veut pas. Est-ce que quelqu'un sait ce que dit la norme ?
    Je ne sais pas pour la norme, je comprends que cela ne gène pas, mais je ne comprends pas ce que cela peut apporter ?
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  8. #8
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Et ben finalement non ça ne marche pas toujours! MSDE l'accepte mais DB2 n'en veut pas. Est-ce que quelqu'un sait ce que dit la norme ?
    Dans l'exemple que tu donnes, tu as mis l'INSERT hors des parenthèses, alors que dans la requête initiale, il est à l'intérieur (il s'applique sur le SELECT).

    Donc ça ne devrait pas gêner ... Peut-être dans la cas d'autres champs présents dans la table, auto-incrémentés ou renseignés par trigger, par exemple, ça modifie le résultat. Quant à savoir si ça peut servir fonctionellement, j'ai des doutes aussi.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  9. #9
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Oui...c'est vrai... en relativisant 1 peu...ça ne m'empêchera pas de dormir.
    Ni de faire des INSERT d'ailleurs... :-)

    Je suis peut-être juste 1 peu top puriste, et qd je ne connais pas qquechose j'essaie d'avoir la (bonne de préférence ;-) ) réponse.

    Bonne soirée à vs 2

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

Discussions similaires

  1. Que fait cette requête ?
    Par gabi75 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 09/02/2011, 13h10
  2. que fait cette fonction ?
    Par nitteo dans le forum C#
    Réponses: 21
    Dernier message: 31/01/2008, 17h30
  3. Que fait cette fonction ?
    Par masterix59 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/11/2007, 21h13
  4. que fait cette fonction ?
    Par salseropom dans le forum C
    Réponses: 21
    Dernier message: 12/10/2006, 18h33
  5. [Tableaux] Mais que fait cette condition exactement?
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 21/09/2006, 12h36

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