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 30/09/2011, 11h20   #1
Invité de passage
 
Homme
Développeur informatique
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut PLS-00201: l'identificateur 'SCOTT.EMP' doit être déclaré

Bonjour,

Lorsque j'execute le script suivant:

Code :
1
2
3
4
5
6
7
8
9
   DECLARE
        v_emp   scott.emp%rowtype;
    BEGIN
        SELECT ename, job
          INTO v_emp.ename, v_emp.job
          FROM scott.emp
         WHERE empno = 7839;
         dbms_output.put_line('Name = '||v_emp.ename || '   Job = ' || v_emp.job);
    END;
j'obtiens le résultat suivant :
    DBMS_OUTPUT:
    ------------
     Name = KING   Job = PRESIDENT
mais apres je n'arrive pas à mettre ce code dans une procedure, par exemple:

Code :
1
2
3
4
5
6
7
8
9
10
CREATE OR REPLACE PROCEDURE TESTROWTYPE IS
 
        v_emp   scott.emp%rowtype;
    BEGIN
        SELECT ename, job
          INTO v_emp.ename, v_emp.job
          FROM scott.emp
         WHERE empno = 7839;
         dbms_output.put_line('Name = '||v_emp.ename || '   Job = ' || v_emp.job);
    END;
J'obtiens les message suivants:
Citation:
5 17 PLS-00201: l'identificateur 'SCOTT.EMP' doit être déclaré
5 17 PL/SQL: Item ignored
9 22 PL/SQL: ORA-00942: Table ou vue inexistante
7 9 PL/SQL: SQL Statement ignored
11 42 PLS-00320: déclaration de type de cette expression est incomplète ou mal structurée
11 10 PL/SQL: Statement ignored
Merci de vôtre aide :-)
7orre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h38   #2
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Il faut donner les droits directement à l'utilisateur et non via un rôle.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h03   #3
Invité de passage
 
Homme
Développeur informatique
Inscription : septembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2011
Messages : 2
Points : 0
Points : 0
Si j'ai bien compris, quelque chose du genre:
GRANT ALL ON scott.emp TO "myUser"
ou
GRANT ALL ON scott TO "myUser"
...??!!
7orre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 12h04   #4
Membre expérimenté
 
Homme Mohamed Houri
Inscription : mars 2010
Messages : 286
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Houri
Localisation : France

Informations forums :
Inscription : mars 2010
Messages : 286
Points : 563
Points : 563
Dans une procédure stockée, les privilèges donnés via un role ne sont pas valables. En d’autres mots, si, par exemple, vous pouvez créer une table en ligne de commande (sqlplus) parce que le privilège CREATE TABLE vous a été donné via un role, vous ne pouvez pas créer cette table dans une procédure stockée jusqu’à ce que ce privilège vous soit donné explicitement (ou à l’utilisateur qui a l’intention de créer cette procédure).
__________________
Bien Cordialement
www.hourim.wordpress.com
Mohamed.Houri est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h36.


 
 
 
 
Partenaires

Hébergement Web