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 :

Problème de création d'une vue


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut Problème de création d'une vue
    Bonjour,
    j'ai crée une requête à partir de la fonction with et je voulais créer une vu utilisant cette requête mais apparemment il n'est pas possible de crée une vue avec la fonction with avez vous une solution ou une piste.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    create view v_etat_parc as (
    with nowm as(
    select d.societe as soc_now,d.agence as ag_now,d.type as typ_now,d.affectation as aff_now,d.vehicule as vehic_now,
    d.date_from as date_from_now,d.date_to as date_to_now,d.version as ver_now,d.date_sortie_parc as sortie_now
    from d_vehicule d
    where (d.date_sortie_parc is null or d.date_sortie_parc > sysdate)
    and to_char(d.date_to)='31/12/99'
    ),
    beforem1 as(
    select d.societe as soc_m1,d.agence as ag_m1,d.type as typ_m1,d.affectation as aff_m1,d.vehicule as vehic_m1,
    d.date_from as date_from_m1,d.date_to as date_to_m1,d.version as ver_m1,d.date_sortie_parc as sortie_m1
    from d_vehicule d
    where (d.date_sortie_parc is null or d.date_sortie_parc > last_day(add_months(trunc(sysdate,'mm'),-1)))
    and ((to_char(d.date_to)='31/12/99' and d.date_from <last_day(add_months(trunc(sysdate,'mm'),-1))+1)
    or  (d.date_to <= sysdate 
    		and d.date_from = (select max(dd.date_from) 
    							from d_vehicule dd
    							where dd.vehicule=d.vehicule 
    							and (dd.date_from <last_day(add_months(trunc(sysdate,'mm'),-1))+1)
     
                                							)))
    and (d.date_from <last_day(add_months(trunc(sysdate,'mm'),-1)) and d.date_to>=last_day(add_months(trunc(sysdate,'mm'),-1)))
    ),
    beforem2 as(							
    select d.societe as soc_m2,d.agence as ag_m2,d.type as typ_m2,d.affectation as aff_m2,d.vehicule as vehic_m2,
    d.date_from as date_from_m2,d.date_to as date_to_m2,d.version as ver_m2,d.date_sortie_parc as sortie_m2
    from d_vehicule d
    where (d.date_sortie_parc is null or d.date_sortie_parc > last_day(add_months(trunc(sysdate,'mm'),-2)))
    and ((to_char(d.date_to)='31/12/99' and d.date_from <last_day(add_months(trunc(sysdate,'mm'),-2))+1)
    or  (d.date_to <= sysdate 
    		and d.date_from = (select max(dd.date_from) 
    							from d_vehicule dd
    							where dd.vehicule=d.vehicule 
    							and (dd.date_from <last_day(add_months(trunc(sysdate,'mm'),-2))+1)
     
                                							)))
    and (d.date_from <last_day(add_months(trunc(sysdate,'mm'),-2)) and d.date_to>=last_day(add_months(trunc(sysdate,'mm'),-2)))
    )
    select unique n.soc_now as societe_m, n.ag_now as agence_m,
    d.vehicule, d.type, n.aff_now as affectation_m, n.date_from_now as date_from_m,
    n.date_to_now as date_to_m,n.ver_now as version_m, n.sortie_now,
    b.soc_m1 as societe_m1, b.ag_m1 as agence_m1,
    b.aff_m1 as affectation_m1, b.date_from_m1 as date_from_m1,
    b.date_to_m1 as date_to_m1, b.ver_m1 as version_m1, b.sortie_m1,
    bb.soc_m2 as societe_m2, bb.ag_m2 as agence_m2,
    bb.aff_m2 as affectation_m2, bb.date_from_m2 as date_from_m2,
    bb.date_to_m2 as date_to_m2, bb.ver_m2 as version_m2, bb.sortie_m2
    from d_vehicule d, nowm n, beforem1 b, beforem2 bb
    where d.vehicule=n.vehic_now(+)
    and d.vehicule=b.vehic_m1(+)
    and d.vehicule=bb.vehic_m2(+)
    )

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 172
    Par défaut
    Bonjour,

    WITH n'est pas une fonction mais une clause. Sauf si ta version est 8i ou moins (ce qui est déjà très très vieux), si tu peux utiliser la clause WITH pour la requête d'une vue. Tu n'as pas besoin des parenthèses après le AS de ta création de vue.
    Quelle est l'erreur que tu obtiens?

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut
    Bonjour Vanagreg,
    merci pour ta réponse,
    je souhaite crée une vue dans ma base pour avoir c'est donnée en temps réel et faire ensuite un travail dessus je pensais pouvoir utilisé la clause with pour faire ma vue mais j'obtiens le message d'erreur que j'obtiens est le suivant:

    Rapport d'erreur -
    ORA-32034: utilisation non prise en charge de la clause WITH
    32034. 00000 - "unsupported use of WITH clause"
    *Cause: Inproper use of WITH clause because one of the following two reasons
    1. nesting of WITH clause within WITH clause not supported yet
    2. For a set query, WITH clause can't be specified for a branch.
    3. WITH clause cannot be specified within parenthesis.
    *Action: correct query and retry

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 172
    Par défaut
    Enlève le bloc de parenthèses qui entour toute la requête:

    create view v_etat_parc as
    with nowm....

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Quelle est ta version de base ?
    Peux-tu éditer ton premier post pour encadrer ta requête de la balise code (le # dans le menu), ce sera plus lisible.

    Merci

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut
    Merci Vanagreg,
    je viens de relancer sans les parenthèses et la vue c'est bien crée.
    Merci pour ta réponse et ta rapidité.

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

Discussions similaires

  1. création d'une vue ...help
    Par menoce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/07/2005, 21h30
  2. Réponses: 26
    Dernier message: 27/04/2005, 11h29
  3. Création d'une vue
    Par Xris dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/01/2005, 16h30
  4. Réponses: 7
    Dernier message: 12/07/2004, 22h30
  5. [Plugin] Création d'une vue dynamiquement
    Par The Bonze dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 15/06/2004, 13h23

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