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

Forms Oracle Discussion :

requete select avec plusieurs tables


Sujet :

Forms Oracle

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut requete select avec plusieurs tables
    bonjour à tous,
    j’ai un problème avec mon bouton rechercher.suite à la lecture des différents tutorial, je n'arrive pas à faire une requête avec plusieurs tables. Voici mon code exporté en sql :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    create table BIEN 
     (
    CODE_BIEN varchar2(10) constraint pk_CODE_BIEN primary key,
          NOM_BIEN varchar2(10),
          TYPE_BIEN varchar2(10),
          DESCRIPTION_BIEN varchar2(10),
          NUMERO_SERIE varchar2(10),
    );
     
    create table BON_ENTRE
    (
       	NUM_BON_ENTRE varchar2(10) constraint pk_NUM_BON_ENTRE primary key,
       	 NOM_SERVICE varchar2(10)
    );
     
    create table BON_DE_SORTIE
    (
      	NUM_BON_ENTRE varchar2(10) constraint pk_NUM_BON_ENTRE primary key,
      	NOM_SERVICE varchar2(10)
    );
     
    create table FIGURE
    (
    CODE_FIGURE varchar2(10) constraint pk_CODE_FIGURE primary key,
      	DATE_SORTIE date,
      	QTE_SORTIE number(20),
      	PRIX_SORTIE number(20),
      	 CODE_BIEN constraint FK_CODE_BIEN_FIGURE references BIEN(CODE_BIEN)
     NUM_BON_SORTIE constraint FK_NUM_BON_SORTIE_FIGURE references BIEN(CODE_BIEN)
     
    );
    create table EXSISTER
    (
        	CODE_EXSISTER  varchar2(10) constraint pk_CODE_EXSISTER primary key,
     	 DATE_ENTRE date,
      	QTE_ENTRE number(20),
      	PRIX_ENTRE number(20),
    CODE_BIEN constraint FK_CODE_BIEN_EXSISTER references BIEN(CODE_BIEN)
    NUM_BON_ENTRE constraint FK_NUM_BON_SORTIE_EXSISTER references BIEN(CODE_BIEN));
    J’ai fait le bouton avec WHEN-BUTTON-PRESSED puis j’ai écris le code sql qui est :
    Select BIEN.CODE_BIEN, NOM_BIEN, EXSISTER.NUM_BON_ENTRE, DATE_ENTRE, QTE_ENTRE,FIGURER.NUM_BON_SORTIE,QTE_SORTIE,DATE_SORTIE
    INTO :BIEN.CODE_BIEN, :BIEN.NOM_BIEN, :EXSISTER.NUM_BON_ENTRE, :EXSISTER.DATE_ENTRE, :EXSISTER.QTE_ENTRE,:FIGURER.NUM_BON_SORTIE,:FIGURER.QTE_SORTIE,:FIGURER.DATE_SORTIE
    FROM BIEN, EXSISTER,FIGURER
    where BIEN.CODE_BIEN = EXSISTER.CODE_BIEN
    AND BIEN.CODE_BIEN = FIGURER.CODE_BIEN
    AND BIEN.CODE_BIEN like :BIEN.CODE_BIEN;
    NB : Apres avoir écris le script lorsqu’on clique sur compile machine ne montre pas d’erreurs, mais si compile le forms et qu’on donne un numéro déjà saisie dans le zone de texte code_bien et puis on clique sur le bouton rechercher il n’afficher rien.

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Merci de signaler votre version d'oracle, les outils que vous utilisez ainsi que la version de ceux-ci.

    Cela devient fatiguant de vous le demander à chacun de vos posts. Merci à l'avenir de faire un minimum d'effort si vous souhaitez avoir des réponses.

  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par plaineR
    Merci de signaler votre version d'oracle, les outils que vous utilisez ainsi que la version de ceux-ci.

    Cela devient fatiguant de vous le demander à chacun de vos posts. Merci à l'avenir de faire un minimum d'effort si vous souhaitez avoir des réponses.
    Mille milliards d’excuses si ma question à été mal pose. Voilà j’ai oracle 9 i 2 versions et froms 9 i 2 version.
    Merci.

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Bonjour,

    Si tu cherches la chaine qui contient :bien.code_bien donc il faut rajouter '%'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND bien.code_bien LIKE '%'||:bien.code_bien;

  5. #5
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par salim11
    Bonjour,

    Si tu cherches la chaine qui contient :bien.code_bien donc il faut rajouter '%'
    AND bien.code_bien LIKE '%'||:bien.code_bien;
    Je vis d’utilise le scripte que vous m'aviez demande d'utilise, mais lorsqu'on clique sur le bouton rechercher dans le formulaire en mode saisir il n'affiche aucun résultat.
    Pour plus de précision voici le scripte a nouveau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Select BIEN.CODE_BIEN, NOM_BIEN, EXSISTER.NUM_BON_ENTRE, DATE_ENTRE, QTE_ENTRE,FIGURER.NUM_BON_SORTIE,QTE_SORTIE,DATE_SORTIE
    INTO :BIEN.CODE_BIEN, :BIEN.NOM_BIEN, :EXSISTER.NUM_BON_ENTRE, :EXSISTER.DATE_ENTRE, :EXSISTER.QTE_ENTRE,:FIGURER.NUM_BON_SORTIE,:FIGURER.QTE_SORTIE,:FIGURER.DATE_SORTIE
    FROM BIEN, EXSISTER,FIGURER
    where BIEN.CODE_BIEN = EXSISTER.CODE_BIEN
    AND BIEN.CODE_BIEN = FIGURER.CODE_BIEN
    AND bien.code_bien LIKE '%'||:bien.code_bien;

  6. #6
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    As-tu essayé ta requête sous SQL*Plus ?

    Pourquoi utilises-tu un like ? Cela me semble risqué, car si tu as plusieurs valeurs, tu auras une exception too_many_rows à l'exécution.

  7. #7
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut Remarque
    Bonjour,

    Je comprends pas une chose pourquoi tu veux faire le travail de forms.

    Tu as qu'a mettre dans le pre_query tes conditions et tu fais un execute_query :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set_block_property('bien',default_where,' code_bien LIKE ''%''||:bien.code_bien');
    ou 
    set_block_property('bien',default_where,' code_bien LIKE :bien.code_bien||''%''');

  8. #8
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par salim11
    Bonjour,

    Je comprends pas une chose pourquoi tu veux faire le travail de forms.

    Tu as qu'a mettre dans le pre_query tes conditions et tu fais un execute_query :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set_block_property('bien',default_where,' code_bien LIKE ''%''||:bien.code_bien');
    ou 
    set_block_property('bien',default_where,' code_bien LIKE :bien.code_bien||''%''');
    Vous pouvez me dire comment faire pour utilise
    set_block_property
    merci

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    Citation Envoyé par samba2005kanoute
    Vous pouvez me dire comment faire pour utilise
    merci
    Il est à noter que tu fais beaucoup d'efforts, tant sur l'expression de ta demande, que sur l'apprentissage d'Oracle Forms.

    Néanmoins, je pense que plutôt que de vouloir en faire qu'à ta tête et essayer de ré-écrire toute la partie transactionelle de FORMS, tu devrais te mettre au point sur la partie maitre-détail et sur les Foreign_Keys tel que je te l'avais déja suggéré.

    Lors de l'un de tes derniers post, tu positionnais du code dans un bouton pour ajouter un enregistrement à un bloc basé !!! il faut que tu saches, que Oracle Forms n'a pas besoin de ce code pour ajouter un enregistrement.

    Essaies de lire cette doc, de la comprendre et sutout de mettre ton apprentissage en application , sinon autant p....r dans un violon ...Oracle Forms

    A propos, EXSISTER s'écrit EXISTER .

    CDLT.

  10. #10
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Bonjour,

    Désolé,Il faut créer un champs non basé pour effectuer la recherche
    code_bien_rechercher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    set_block_property('bien',default_where,' code_bien 
    LIKE ''%''||:bien.code_bien_rechercher);
    ou 
    set_block_property('bien',default_where,' code_bien 
    LIKE :bien.code_bien_rechercher||''%''');
    Ou bien tu n'as meme pas besoin de ce code, tu presses sur enter_query tu mets le '%' avec le bout de la chaine que tu cherches et tu fais un execute_query

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    Citation Envoyé par salim11
    tu n'as meme pas besoin de ce code,
    Ca ! c'est nettement mieux ....


    CDLT.

  12. #12
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ca ! c'est nettement mieux ....
    ca depend de tes besoin si tu as un ecran de recherche des code de bien
    alors tu n'auras pas le choix de mettre le code avec un execute_query dans un boutton de rechrche .

  13. #13
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par taska
    Ca ! c'est nettement mieux ....


    CDLT.
    Vous savez je suis nouveau dans oracle je ne maîtrise pas bien raison pour laquelle je vous demande de me dire comment faire pour pouvoir l'utilise. Je ne sais même pas si on doit le mettre à l’intérieur d’un bouton ou dans et un déclencheur.

    Merci.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    .. je sais bien , mais tant que tu n'auras pas compris le maitre-détail, tu ne pourras pas progresser ( ici on dit : il ne faut pas mettre la charrue avant les boeufs ... )

    CDLT.

  15. #15
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par taska
    .. je sais bien , mais tant que tu n'auras pas compris le maitre-détail, tu ne pourras pas progresser ( ici on dit : il ne faut pas mettre la charrue avant les boeufs ... )

    CDLT.
    Je me suis fais mal compris, je sais faire la différence entre une table maître une détaille mais mon problème est de savoir ou je dois utilise scripte set_block_property et comment l’utilise dans mon cas.
    Merci.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    Citation Envoyé par samba2005kanoute
    je sais faire la différence entre une table maître une détaille
    Non! je parle de RELATION

    ou je dois utilise scripte set_block_property
    !!! c'est du code, alors tu le mets où tu veux :
    - un trigger,
    - une procédure,
    - une fonction,
    - une bibliothèque
    etc ..

    ( Sur le noyau, cela ne fonctionnera pas !! )

    CDLT.

  17. #17
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Il me semble qu'on dévie du problème initial, non ?

    Peux-tu nous dire précisément ce que tu veux faire ?
    - ta requête qui fait la jointure entre 2 tables te ramène combien d'enregistrements (un ou plusieurs) ?
    - le résultat de cette requête est en affichage seulement ou en modification ?

  18. #18
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par taska
    Non! je parle de RELATION



    !!! c'est du code, alors tu le mets où tu veux :
    - un trigger,
    - une procédure,
    - une fonction,
    - une bibliothèque
    etc ..

    ( Sur le noyau, cela ne fonctionnera pas !! )

    CDLT.
    vous savez je n'arriver pas à comprendre. mais je sais que c'es pas un problème de relation. J'ai exécute le scripte PLSQL ça marcher correctement, mais si je reviens sur le forms en mode saisie et que je saisie un donne qui se trouve déjà dans base puis en cliquant sur le bouton rechercher rien ne s'affiche.
    Merci

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    Citation Envoyé par samba2005kanoute
    mais si je reviens sur le forms en mode saisie et que je saisie un donne qui se trouve déjà dans base puis en cliquant sur le bouton rechercher rien ne s'affiche.
    Merci
    1. Le bloc est-il basé ?
    2. La saisie respecte-elle la casse ?
    3. N'a t-on pas oublié les % ?
    4. Est-on en mode Interrogation et non pas en mode Ajout ( saisie ) ?


    CDLT.

  20. #20
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par taska
    1. Le bloc est-il basé ?
    2. La saisie respecte-elle la casse ?
    3. N'a t-on pas oublié les % ?
    4. Est-on en mode Interrogation et non pas en mode Ajout ( saisie ) ?


    CDLT.
    1.le bloc est base
    2.La saisie respete la case
    3.je ne passe pas avoir oublier %
    4.le bloc est en mose intorogation

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Requete select sur plusieurs tables
    Par cl@ndestIno dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/12/2008, 12h36
  2. Réponses: 5
    Dernier message: 10/12/2007, 15h24
  3. Pb de syntaxe : Select avec plusieurs tables
    Par roxxxy dans le forum Requêtes
    Réponses: 6
    Dernier message: 27/03/2007, 11h34
  4. Requete select avec table en parametre
    Par minette dans le forum VB 6 et antérieur
    Réponses: 34
    Dernier message: 02/08/2006, 18h46
  5. [MySQL] requete avec liaisons avec plusieurs tables
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/03/2006, 22h21

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