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

 Oracle Discussion :

Comment rendre 3 champs d'une requête en ID d'une vue?


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut Comment rendre 3 champs d'une requête en ID d'une vue?
    Bonjour,

    J'aimerais savoir comment ajouter 3 id provenant d'une requete de manière à affecter ces 3 id comme étant l'id de la vue?

    J'ai une requête qui me retourne les champs que j'ai besoin à partir de différentes tables et j'aimerais attribuer à cette vue non pas un ID mais 3 champs qui représenterait l'ID de la vue.

    J'ai crée une requête pour ma vue ETAT_ACAV:

    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
     
    CREATE OR REPLACE VIEW ETAT_ACAV
    (ID_SUPPORT, VALEUR, LIBELLE_COURT, MONTANT_ACAV_A, MONTANT_ACAV_P, 
     MONTANT_ACAV_ATTENTE, ID_ACAV_ATTENTE, ID_FLUX)
    AS 
    SELECT AA.ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        AA.MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        FA.ID_ACAV_ATTENTE , 
                        FA.ID_FLUX
                        FROM
                        VL ,
                        MIF_SUPPORT ,
                        ACAV_ACTIF AA ,
                        ACAV_PASSIF ,
                        ACAV_ATTENTE ,
                        FLUX_ACAV FA
    /
    Et je voudrais rendre "ID_SUPPORT", "ID_ACAV_ATTENTE" et "ID_FLUX" comme étant l'ID de la vue soir 3 champs en 3 ID de la vue.

    Si vous avez un exemple ou une idée.
    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    salut,

    voici la modif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       CREATE OR REPLACE VIEW ETAT_ACAV (
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX,
         CONSTRAINT ETAT_ACAV_PK PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
       AS ....
    ---
    Farid.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    salut,

    voici la modif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       CREATE OR REPLACE VIEW ETAT_ACAV (
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX,
         CONSTRAINT ETAT_ACAV_PK PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
       AS ....
    ---
    Farid.
    Merci du coup de main. je ne savais pas pour "RELY DISABLE NOVALIDATE" il m'affichait missing or invalid option
    Par contre lorsque j'essaie de créer la vue, il me dit mot clé select absent.
    étrange..
    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
     
       CREATE OR REPLACE VIEW ETAT_ACAV (
         CONSTRAINT ETAT_ACAV_PK PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
         AS
         SELECT         AA.ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        AA.MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        FA.ID_ACAV_ATTENTE , 
                        FA.ID_FLUX
                        FROM
                        VL ,
                        MIF_SUPPORT ,
                        ACAV_ACTIF AA ,
                        ACAV_PASSIF ,
                        ACAV_ATTENTE ,
                        FLUX_ACAV_ATTENTE FA
     
         /

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Salut,
    Il te met quelle erreur exactement et a quel niveau ?
    Essayes sans le mot RELY.

    ---
    Farid.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    Salut,
    Il te met quelle erreur exactement et a quel niveau ?
    Essayes sans le mot RELY.

    ---
    Farid.
    Et bien par exemple, pour créer une vue :
    Je rentre ceci :
    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
       CREATE OR REPLACE VIEW ETAT_ACAV_Pk_view (       
         ID_SUPPORT,
         ID_ACAV_ATTENTE,
         ID_FLUX          
         UNIQUE RELY DISABLE NOVALIDATE,
         CONSTRAINT Pk_ETAT_ACAV_view PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
         AS
         SELECT         AA.ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        AA.MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        FA.ID_ACAV_ATTENTE , 
                        FA.ID_FLUX
                        FROM
                        VL ,
                        MIF_SUPPORT ,
                        ACAV_ACTIF AA ,
                        ACAV_PASSIF ,
                        ACAV_ATTENTE ,
                        FLUX_ACAV_ATTENTE FA
     
         /
    Et il me dit mot clé "select" absent lors que je veux créer la vue.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    La requete est surprenante.
    Seulement 3 colonnes declarees pour la vue , mais 8 retournes par le select.
    De plus tu as omis le where pour faire la jointure sur les differentes tables utilise ?

    ---
    Farid.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    La requete est surprenante.
    Seulement 3 colonnes declarees pour la vue , mais 8 retournes par le select.
    De plus tu as omis le where pour faire la jointure sur les differentes tables utilise ?

    ---
    Farid.
    Tu as raison pour les colonnes déclarées, j'ai mal compris une doc.
    Donc je reprend à partir de ça:
    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
     
       CREATE OR REPLACE VIEW ETAT_ACAV (
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX
         CONSTRAINT ETAT_ACAV_PK PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
       AS 
    SELECT AA.ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        AA.MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        FA.ID_ACAV_ATTENTE , 
                        FA.ID_FLUX
                        FROM
                        VL ,
                        MIF_SUPPORT ,
                        ACAV_ACTIF AA ,
                        ACAV_PASSIF ,
                        ACAV_ATTENTE ,
                        FLUX_ACAV_ATTENTE FA
    /
    et donc toujours le mot clé "select" absent
    Disons que je veux tester sur une vue simple à partir d'une requête simple et qui me retourne bien des données que j'attend.

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Disons que je me base sur cette doc :

    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
    Primary Key - Type P 
     
    Primary Key on a view CREATE OR REPLACE VIEW <view_name>
    (<column_name, column_name>
    UNIQUE RELY DISABLE NOVALIDATE,
    CONSTRAINT <constraint_name>
    PRIMARY KEY (<column_name>) RELY DISABLE NOVALIDATE) AS
    <select statement>; 
     
    CREATE OR REPLACE VIEW person_pk_view 
    (person_id, last_name 
    UNIQUE RELY DISABLE NOVALIDATE,
    CONSTRAINT pk_person_view
    PRIMARY KEY (person_id) RELY DISABLE NOVALIDATE) AS
    SELECT person_id, last_name FROM person;
     
    SELECT constraint_name, constraint_type
    FROM user_constraints
    WHERE table_name = 'PERSON_PK_VIEW';

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Je ne sais pas si ceci est le probleme:
    1. Il manque une virgule entre ID_FLUX et CONSTRAINT
    2. Je ne vois pas de clause WHERE dans ton select et ne comprend pas comment tu fais ta jointure sur les 6 tables.

    ---
    Farid.

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    Je ne sais pas si ceci est le probleme:
    1. Il manque une virgule entre ID_FLUX et CONSTRAINT
    2. Je ne vois pas de clause WHERE dans ton select et ne comprend pas comment tu fais ta jointure sur les 6 tables.

    ---
    Farid.
    Alors le souci ne provient pas de la virgule après FLUX.
    Alors pour moi une vue est une table virtuelle à partir d'une requête.
    qui ensuite je peux faire un select * from nom_de_vue ou que je puisse faire une jointure par la suite. C'est correct jusque là?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Alors le souci ne provient pas de la virgule après FLUX.
    Regarde l'example que tu as copie et tu verra la presence d'une virgule entre la definition des nom de colonnes et le constraint.

    Alors pour moi une vue est une table virtuelle à partir d'une requête.
    qui ensuite je peux faire un select * from nom_de_vue ou que je puisse faire une jointure par la suite. C'est correct jusque là?
    Tout a fait.
    mais ca ne repond pas a ma 2eme question. ou est ton WHERE dans ton select ?

    ---
    Farid.

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    Regarde l'example que tu as copie et tu verra la presence d'une virgule entre la definition des nom de colonnes et le constraint.



    Tout a fait.
    mais ca ne repond pas a ma 2eme question. ou est ton WHERE dans ton select ?

    ---
    Farid.
    J'ai déjà testé avec la virgule mais rien n'y fait.
    J'ai testé avec une condition WHERE mais toujours le problème de mot clé "SELECT" absent
    Voici le code que j'ai testé:
    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
     
       CREATE OR REPLACE VIEW ETAT_ACAV_Pk_view (       
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX,      
         UNIQUE RELY DISABLE NOVALIDATE,
         CONSTRAINT Pk_ETAT_ACAV_view PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
         AS
         SELECT
                     AA.ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        AA.MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        FA.ID_ACAV_ATTENTE , 
                        FA.ID_FLUX
                        FROM
                        VL ,
                        MIF_SUPPORT ,
                        ACAV_ACTIF AA ,
                        ACAV_PASSIF ,
                        ACAV_ATTENTE ,
                        FLUX_ACAV_ATTENTE FA              
     
                        WHERE AA.ID_SUPPORT ='1' ;
    Si je lance la requête, elle me ressort bien les colonnes remplies.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    ok pour la virgule.
    Pour le reste donne moi quelques minutes, que je verifie sur une base locale que j'ai.
    ---
    Farid

  14. #14
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    ok pour la virgule.
    Pour le reste donne moi quelques minutes, que je verifie sur une base locale que j'ai.
    ---
    Farid
    Dac, merci pour le temps que tu me consacres :-)

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    pas de soucis.
    Voici un exemple ou j'ai 2 tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE OR REPLACE VIEW RPV_VIEW
      (
      ID_PREVIOUS,
      ID_RAPPORT_VENDEUR,
      ID_NEXT, 
      ID_EVENEMENT, 
      ID_INDIVIDU,
      CONSTRAINT RPV_VIEW_PK PRIMARY KEY (ID_RAPPORT_VENDEUR,ID_EVENEMENT) DISABLE NOVALIDATE
      )
    AS 
      SELECT ID_PREVIOUS,ID_RAPPORT_VENDEUR,ID_NEXT, RAPPORT_VENDEUR.ID_EVENEMENT, EVENEMENT.ID_INDIVIDU
      FROM RAPPORT_VENDEUR
      LEFT JOIN EVENEMENT ON RAPPORT_VENDEUR.ID_EVENEMENT=EVENEMENT.ID_EVENEMENT;
    Comme tu peux le voir dans mon select j'effectue une jointure sur les 2 tables RAPPORT_VENDEUR et EVENEMENT via un join.
    Mais j'aurai aussi tres bien pu remplacer la fin par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FROM RAPPORT_VENDEUR, EVENEMENT
    WHERE RAPPORT_VENDEUR.ID_EVENEMENT=EVENEMENT.ID_EVENEMENT
    Dans ta requete je ne vois pas comment tu lies les 6 tables (VL , MIF_SUPPORT, ACAV_ACTIF, ACAV_PASSIF, ACAV_ATTENTE ,
    FLUX_ACAV_ATTENTE) entre elles.

    Donc modifie la fin de ta requete pour indiquer a oracle la facon dont il doit relier les 6 tables entres elles.

    Note que l'execution de ma requete est sans probleme et que la requete "SELECT * FROM RPV_VIEW;" me retourne le resultat souhaite.

    ---
    Farid.

  16. #16
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    pas de soucis.
    Voici un exemple ou j'ai 2 tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE OR REPLACE VIEW RPV_VIEW
      (
      ID_PREVIOUS,
      ID_RAPPORT_VENDEUR,
      ID_NEXT, 
      ID_EVENEMENT, 
      ID_INDIVIDU,
      CONSTRAINT RPV_VIEW_PK PRIMARY KEY (ID_RAPPORT_VENDEUR,ID_EVENEMENT) DISABLE NOVALIDATE
      )
    AS 
      SELECT ID_PREVIOUS,ID_RAPPORT_VENDEUR,ID_NEXT, RAPPORT_VENDEUR.ID_EVENEMENT, EVENEMENT.ID_INDIVIDU
      FROM RAPPORT_VENDEUR
      LEFT JOIN EVENEMENT ON RAPPORT_VENDEUR.ID_EVENEMENT=EVENEMENT.ID_EVENEMENT;
    Comme tu peux le voir dans mon select j'effectue une jointure sur les 2 tables RAPPORT_VENDEUR et EVENEMENT via un join.
    Mais j'aurai aussi tres bien pu remplacer la fin par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FROM RAPPORT_VENDEUR, EVENEMENT
    WHERE RAPPORT_VENDEUR.ID_EVENEMENT=EVENEMENT.ID_EVENEMENT
    Dans ta requete je ne vois pas comment tu lies les 6 tables (VL , MIF_SUPPORT, ACAV_ACTIF, ACAV_PASSIF, ACAV_ATTENTE ,
    FLUX_ACAV_ATTENTE) entre elles.

    Donc modifie la fin de ta requete pour indiquer a oracle la facon dont il doit relier les 6 tables entres elles.

    Note que l'execution de ma requete est sans probleme et que la requete "SELECT * FROM RPV_VIEW;" me retourne le resultat souhaite.

    ---
    Farid.
    Ok, je teste de suite et je te tiens au courant merci bien.

  17. #17
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Alors j'ai refait la vue avec tes indications :

    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
     
       CREATE OR REPLACE VIEW ETAT_ACAV_Pk_view (       
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX,      
         UNIQUE RELY DISABLE NOVALIDATE,
         CONSTRAINT Pk_ETAT_ACAV_view PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) RELY DISABLE NOVALIDATE)
         AS
         SELECT
                        ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        ID_ACAV_ATTENTE , 
                        ID_FLUX
                        FROM
     
                        ACAV_ATTENTE 
     
     
                       inner join MIF_SUPPORT on ACAV_ATTENTE.ID_SUPPORT=MIF_SUPPORT.ID_SUPPORT
     
                       inner join VL on ACAV_ATTENTE.ID_SUPPORT=VL.ID_SUPPORT
     
                       inner join ACAV_ACTIF on ACAV_ATTENTE.ID_SUPPORT=ACAV_ACTIF.ID_SUPPORT   
     
                       inner join ACAV_passif on ACAV_ATTENTE.ID_SUPPORT=ACAV_PASSIF.ID_SUPPORT   
     
                       inner join FLUX_ACAV_ATTENTE  on ACAV_ATTENTE.ID_ACAV_ATTENTE=FLUX_ACAV_ATTENTE.ID_ACAV_ATTENTE
    Le souci est que j'ai toujours ce message d'erreur : mot-clé Select absent...

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Essaye ca:
    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
     
       CREATE OR REPLACE VIEW ETAT_ACAV_Pk_view (       
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX,      
         CONSTRAINT Pk_ETAT_ACAV_view PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) DISABLE NOVALIDATE)
         AS
         SELECT
                        ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        ID_ACAV_ATTENTE , 
                        ID_FLUX
                        FROM
     
                        ACAV_ATTENTE 
     
     
                       inner join MIF_SUPPORT on ACAV_ATTENTE.ID_SUPPORT=MIF_SUPPORT.ID_SUPPORT
     
                       inner join VL on ACAV_ATTENTE.ID_SUPPORT=VL.ID_SUPPORT
     
                       inner join ACAV_ACTIF on ACAV_ATTENTE.ID_SUPPORT=ACAV_ACTIF.ID_SUPPORT   
     
                       inner join ACAV_passif on ACAV_ATTENTE.ID_SUPPORT=ACAV_PASSIF.ID_SUPPORT   
     
                       inner join FLUX_ACAV_ATTENTE  on ACAV_ATTENTE.ID_ACAV_ATTENTE=FLUX_ACAV_ATTENTE.ID_ACAV_ATTENTE

    ---
    Farid

  19. #19
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 149
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    Essaye ca:
    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
     
       CREATE OR REPLACE VIEW ETAT_ACAV_Pk_view (       
         ID_SUPPORT,
         VALEUR,
         LIBELLE_COURT,
         MONTANT_ACAV_A,
         MONTANT_ACAV_P,
         MONTANT_ACAV_ATTENTE,
         ID_ACAV_ATTENTE,
         ID_FLUX,      
         CONSTRAINT Pk_ETAT_ACAV_view PRIMARY KEY (ID_SUPPORT,ID_ACAV_ATTENTE,ID_FLUX) DISABLE NOVALIDATE)
         AS
         SELECT
                        ID_SUPPORT ,
                        VALEUR ,
                        LIBELLE_COURT ,
                        MONTANT_ACAV_A , 
                        MONTANT_ACAV_P ,
                        MONTANT_ACAV_ATTENTE , 
                        ID_ACAV_ATTENTE , 
                        ID_FLUX
                        FROM
     
                        ACAV_ATTENTE 
     
     
                       inner join MIF_SUPPORT on ACAV_ATTENTE.ID_SUPPORT=MIF_SUPPORT.ID_SUPPORT
     
                       inner join VL on ACAV_ATTENTE.ID_SUPPORT=VL.ID_SUPPORT
     
                       inner join ACAV_ACTIF on ACAV_ATTENTE.ID_SUPPORT=ACAV_ACTIF.ID_SUPPORT   
     
                       inner join ACAV_passif on ACAV_ATTENTE.ID_SUPPORT=ACAV_PASSIF.ID_SUPPORT   
     
                       inner join FLUX_ACAV_ATTENTE  on ACAV_ATTENTE.ID_ACAV_ATTENTE=FLUX_ACAV_ATTENTE.ID_ACAV_ATTENTE

    ---
    Farid
    Toujours le même message : mot-clé SELECT absent.
    et sous l'éditeur il me dit qu'il manque une parenthèse gauche :s

    Voilà ce que j'ai trouvé sur le net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ORA-00928 
    ORA-00928: missing SELECT keyword 
    Cause: A SELECT subquery must be included in a CREATE VIEW statement. 
    Action: Correct the syntax. Insert the required SELECT clause after the CREATE VIEW clause and then retry the statement.

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    de retour.
    J'avoue que je suis un peu surpris car la requete me semble correcte et ne semble pas si differente que ca de la mienne avec les rapport_vendeur/evenement.
    La seule difference etant le nombre de table dans ton join.

    Dis moi tu tournes sous quel version d'oracle ?
    Et tu utilises quoi pour executer cette requete sql ?

    Est ce que la requete suivante marche :
    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
     
    SELECT
       ID_SUPPORT ,
       VALEUR ,
       LIBELLE_COURT ,
       MONTANT_ACAV_A , 
       MONTANT_ACAV_P ,
       MONTANT_ACAV_ATTENTE , 
       ID_ACAV_ATTENTE , 
       ID_FLUX
    FROM ACAV_ATTENTE 
    INNER JOIN MIF_SUPPORT ON ACAV_ATTENTE.ID_SUPPORT=MIF_SUPPORT.ID_SUPPORT
    INNER JOIN VL ON ACAV_ATTENTE.ID_SUPPORT=VL.ID_SUPPORT
    INNER JOIN ACAV_ACTIF ON ACAV_ATTENTE.ID_SUPPORT=ACAV_ACTIF.ID_SUPPORT   
    INNER JOIN ACAV_passif ON ACAV_ATTENTE.ID_SUPPORT=ACAV_PASSIF.ID_SUPPORT   
    INNER JOIN FLUX_ACAV_ATTENTE  ON ACAV_ATTENTE.ID_ACAV_ATTENTE=FLUX_ACAV_ATTENTE.ID_ACAV_ATTENTE
    ---
    Farid

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

Discussions similaires

  1. [AC-2010] Problème à l'exécution d'une requête suppression basée sur une requête sélection
    Par Philippe1975 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/06/2013, 22h21
  2. Réponses: 9
    Dernier message: 19/12/2011, 17h11
  3. Réponses: 5
    Dernier message: 18/02/2009, 09h52
  4. Réponses: 1
    Dernier message: 13/02/2009, 10h13
  5. passer d'une requêtes SGL directe en une requête normale
    Par jenniferIUP dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/02/2009, 08h26

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