Bonjour,
Est-il possible d’insérer des tables dans une vue.
Merci d'avance.
Version imprimable
Bonjour,
Est-il possible d’insérer des tables dans une vue.
Merci d'avance.
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:
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 ] }
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"?
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
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:
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!!?
Bonjour,
Le message "not enough values" signifie que vous ne fournissez pas autant de valeurs qu'il y a de champs.
Vous insérez une ligne à 5 champs.Citation:
SELECT ddr AS demandeur,DDE AS demande,datfin_com-duree/86400 AS datdeb_com,duree,'FAA'
FROM DETAIL_FAA_20121220
Votre vue ne comporte t-elle que 5 champs ?
Pozzo
Montre nous la structure de votre vue :
CrdtCode:DESC view_name
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.Code: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
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.
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:CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW
désolé du retard owenho la structure de ma vue ressemble à peu près à ça:
Code:
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é ! :)