Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 20h21   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 48
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 48
Points : 11
Points : 11
Par défaut creation vues dynamiques oracle

bonjour à tous,
ayant eu de l'aide concluante la dernière fois je renouvelle l'expérience pour cette fois ci un problème de créations de vue dynamiques.

j'ai en premier créer des utilisateurs avec des privilèges : dans mon cas uniquement des select (ds 1 premier temps).

je veux qu' un animateur puisse voir les animations proposées pour cela j'ai fait
Code :
GRANT SELECT ON ANIMATIONS TO estelle;
ensuite j'ai fait la requête suivante mais je ne sais pas avec quel compte la créer ?? system, estelle?? ou le nom de la base dans laquelle se trouve la table??

Code :
1
2
3
4
5
6
7
8
CREATE VIEW v_animateur_animations AS
SELECT * FROM animations
WHERE NumAnimateur =
(SELECT NumAnimateur
FROM ANIMATEUR
WHERE NOMANIMATEUR = ESTELLE
(SELECT ESTELLE FROM user_users)
);
et j'obtiens l'erreur expression absente
les idées seront les bienvenues
macfly95 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/07/2011, 10h26   #2
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
L'erreur vient de ce que la syntaxe est problématique :

Code :
1
2
3
4
5
6
7
8
9
 
CREATE VIEW v_animateur_animations AS
SELECT * FROM animations
WHERE NumAnimateur =
(SELECT NumAnimateur
FROM ANIMATEUR
WHERE NOMANIMATEUR = ESTELLE  -- 'ESTELLE' ?
(SELECT ESTELLE FROM user_users) -- Que vient faire ce select ici ?
);
Et sinon, s'il y a un nom en dur, autant que ça soit sur une vue uniquement associée à l'utilisateur.
Rei Ichido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 17h32   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 48
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 48
Points : 11
Points : 11
effectivement Rei Ichido le problème venait bien de la syntaxe et comme tu le dis le nom en dur fonctionne mieux
macfly95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 04h23   #4
Membre éprouvé
 
Avatar de star
 
Inscription : février 2004
Messages : 450
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 450
Points : 417
Points : 417
le nom en dur c'est pas bon
vaut mieux utiliser la fonction USER qui retour le nom de l'utilisateur justement
.
star est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/07/2011, 18h15   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 48
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 48
Points : 11
Points : 11
la bonne syntaxe qui fonctionne nikel est

Code :
1
2
3
4
5
6
7
8
9
 
 
CREATE VIEW v_animateur_animations AS
SELECT * FROM animations
WHERE NumAnimateur =
(SELECT NumAnimateur
FROM ANIMATEUR
WHERE NOMANIMATEUR = 
(SELECT username FROM user_users));
macfly95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h31.


 
 
 
 
Partenaires

Hébergement Web