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 :

Petite insertion dans une vue


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Par défaut Petite insertion dans une vue
    Bonjour,

    Est-il possible d’insérer des tables dans une vue.

    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Par défaut
    normalement les vues sont des tables logiques qui ne contient pas des données physique,

    ta question : est il possible d’insérer des tables dans les vues , et oui c'est pour cela que les vues sont là , pour limiter l’accès au données dans les base de données et pour garder un niveau de sécurité pour la table .
    code pour créer une vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 
    nom_view [(alias[,alias]...)] AS
    SELECT colonne1,...... from table
    WITH { READ ONLY | CHECK OPTION [ CONSTRAINT constraint ] }

  3. #3
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Par défaut
    d'accord...et si la vue a déjà été créer et que l'on veut rajouter des tables...peut-on utiliser un "insert into nom_view"?

  4. #4
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Par défaut
    j'ai pas compris insérer des tables,

    si vous voulez dire ajouter des lignes, si la vue contient les données de plusieurs table ,tu peux pas insérer , sinon cherche trigger INSTEAD OF .

    tu peux nous donner l'erreur ou bien le code pour bien comprendre !
    merci

  5. #5
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Par défaut
    tu as raison...je me suis mal exprimé... en faite ce que je voulais dire c'est insérer des lignes d'enregistrement d'autre tables dans une vue qui as déjà été créer...j'ai essayer de faire ceci :

    Code sql : 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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    insert into VUE_DETAIL
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121201
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121202
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121203
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121204
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121205
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121206
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121207
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121208
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121209
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121210
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121211
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121212
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121213
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121214
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121215
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121216
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121217
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121218
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121219
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121220
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121221
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121222
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121223
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121224
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121225
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121226
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121227
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121228
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121229
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121230
    union all
    select ddr as demandeur,DDE as demande,datfin_com-duree/86400 as datdeb_com,duree,'FAA' 
    from DETAIL_FAA_20121231;

    et sa me dit "Error: ORA-00947: not enough values" donc je me dit que je devrais peut-être "dropper" ma vue!!?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    Bonjour,

    Le message "not enough values" signifie que vous ne fournissez pas autant de valeurs qu'il y a de champs.

    SELECT ddr AS demandeur,DDE AS demande,datfin_com-duree/86400 AS datdeb_com,duree,'FAA'
    FROM DETAIL_FAA_20121220
    Vous insérez une ligne à 5 champs.
    Votre vue ne comporte t-elle que 5 champs ?

    Pozzo

  7. #7
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Par défaut
    Montre nous la structure de votre vue :

    Crdt

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    en faite ce que je voulais dire c'est insérer des lignes d'enregistrement d'autre tables dans une vue qui as déjà été créer
    J'ai peut être mal interprêté votre phrase, mais une vue ne contient pas de données, elle correspond à une requête SQL qui sera relancée à chaque appel de la vue.
    On n'insère pas de données dans une vue, ses données seront toujours celles des tables sur lesquelles elle se base.

    Par contre, on peut insérer des données dans une table par l'intermédiaire d'une vue, si c'est là votre question.

  9. #9
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2009
    Messages : 447
    Par défaut
    bon si j'ai bien compris ce que tu veux , tu veux une vue mis à jours .
    d'accord , comme ça , elle te faut inserer les données dans la table et vous devez recréer la vue , on mettant or replace avec les noms de colonnes désirés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW

  10. #10
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Par défaut
    désolé du retard owenho la structure de ma vue ressemble à peu près à ça:

    Code sql : 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
    create view VUE_DETAIL as
    select
    demandeur,
    demande,
    datdeb_com,
    duree,
    code_autocom ,
    decode (length(demandeur),8,substr(demandeur, -8, 1),substr(demandeur,-8,1)) AS demandeur_a, 
    decode (length(demandeur),8,substr(demandeur, -8, 2),substr(demandeur,-8,2)) AS demandeur_ab,
    decode (length(demandeur),6,substr(demandeur, -6, 1),substr(demandeur,-8,3)) AS demandeur_abp,
    decode (length(demandeur),6,substr(demandeur, -6, 2), substr(demandeur,-8,4)) as demandeur_abpq,
    decode (length(demandeur),6,substr(demandeur, -6, 3), substr(demandeur,-8,5)) AS demandeur_abpqm,
    decode (length(demandeur),6,substr(demandeur, -6, 4),substr(demandeur,-8,6))  AS demandeur_abpqmc,
    decode (length(demande),8,substr(demande,-8,1), substr(demande, -8, 1)) AS demande_a,
    decode (length(demande),8,substr(demande,-8,2),substr (demande,-8,2)) AS demande_ab,
    decode (length(demande),6,substr(demande,-6,1),substr (demande,-8,3)) AS demande_abp,
    decode (length(demande),6,substr(demande,-6,2),substr(demande,-8,4)) AS demande_abpq,
    decode (length(demande),6,substr(demande,-6,3),substr (demande,-8,5)) AS demande_abpqm,
    decode (length(demande),6,substr(demande,-6,4),substr (demande,-8,6)) AS demande_abpqmc,
    decode(ceil(duree/10), 1,'0s-10s',2, '11s-20s', 2880, '8h', '20s-8h') AS palier_duree,
    to_char(datdeb_com,'yyyy') AS annee,
    to_char(datdeb_com,'MM') AS mois,
    to_char(datdeb_com,'DD') AS jour_mois,
    rtrim(to_char(datdeb_com,'DAY')) AS jour_semaine,
    to_char(datdeb_com,'HH') AS heure_jour
    from DETAIL_2012

    et oui Snipah c'est exactement ça...je me suis mal fait comprendre et je m'en excuse mais c'est bon j'ai trouvé la solution à mon problème.
    Merci pour vos réponses qui m'ont bien aidé !

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

Discussions similaires

  1. Insertion dans une vue
    Par wissem.ba dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2011, 16h35
  2. Insert dans une vue avec une valeur par défaut
    Par adiGuba dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/07/2010, 16h12
  3. INSERT / DELETE Dans une vue
    Par Lolux dans le forum SQL
    Réponses: 4
    Dernier message: 02/04/2008, 10h03
  4. Réponses: 0
    Dernier message: 20/02/2008, 12h55
  5. Insertion dans une table à partir d'une Vue
    Par BenMarcel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/10/2007, 21h42

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