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 03/12/2010, 23h32   #1
Membre du Club
 
Inscription : octobre 2006
Messages : 194
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 194
Points : 54
Points : 54
Par défaut PLS-00201: identifier 'SYS.DBMS_LOCK'

Bonjour,

j'essaie d'exécuté une procédure toute bête, exemple d'un livre que je li,


Code :
1
2
3
4
5
CREATE OR REPLACE PROCEDURE wait(
ain_seconds                    IN     number) IS
begin
 SYS.DBMS_LOCK.sleep(ain_seconds);
end wait;
mais j’obtiens cette erreur:


Code :
ERROR at line 4: PLS-00201: identifier 'SYS.DBMS_LOCK' must be declared
Je me suis déjà connecter entant que administrateur pour jouer ce code ci:
Code :
GRANT EXECUTE ON DBMS_LOCK TO PUBLIC;
et là encore une erreur qui indique que je n'ai pas assez de privilège:

Code :
ORA-01031: insufficient privileges

Dans le livre c'est aussi dit que:

Code :
1
2
3
BY DEFAULT, the SYS.DBMS_LOCK package IS NOT accessible BY non-DBA users. The username
creation script IN this book’s appendix will GRANT you access, but IF you don’t USE that script, you may need TO
ask your DBA TO explicitly GRANT you execute access TO package SYS.DBMS_LOCK

Je vous remercie d'avance.
Snyper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2010, 22h19   #2
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Il faut donner les droits explicitement au utilisateur, pas au role:

Code :
1
2
3
4
conn sys...
CREATE user t IDENTIFIED BY t;
GRANT CREATE session, CREATE procedure TO t;
GRANT execute ON dbms_lock TO t;
Code :
1
2
3
4
5
6
7
8
9
10
11
conn t/t@...
CREATE OR REPLACE PROCEDURE wait(
ain_seconds                    IN     number) IS
begin
 SYS.DBMS_LOCK.sleep(ain_seconds);
end wait;
/
 
SET timing ON
exec wait (2);
Elapsed: 00:00:02.03
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 10h38   #3
Membre du Club
 
Inscription : octobre 2006
Messages : 194
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 194
Points : 54
Points : 54
Par défaut ORA-01031: insufficiente privileges

Bonjour et merci pour la réponse,

Tout ce passe correctement jusqu'à la ligne de code:

Code :
GRANT execute ON dbms_lock TO t
et même étant logger comme administrateur j'ai l'erreur suivante:

Code :
ORA-01031: insufficiente privileges
alors qu'avec cet utilisateur je suis capable de donner des privilèges aux autres utilisateurs, je ne comprends pas pourquoi il me manque des privilèges avec cet utilisateur?

J'informe que je suis sous oracle express.

Je vous remercie d'avance.
Images attachées
Type de fichier : jpg privileges.jpg (26,3 Ko, 3 affichages)
Snyper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 12h27   #4
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Citation:
Envoyé par Snyper Voir le message
et même étant logger comme administrateur ....
Quel administrateur? SYSTEM n'est pas assez fort, il faut utiliser SYS...
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 14h40   #5
Membre du Club
 
Inscription : octobre 2006
Messages : 194
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 194
Points : 54
Points : 54
Par défaut Merci ça marche....

L'administrateur SYS est plus fort que je ne le savais pas.... merci

Maintenant c'est juste l’exécution qui plante...

SET timing ON exec wait(2); ne marche pas... comment pouvoir tester ma procédure?

Je te remercie.
Snyper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 17h33   #6
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Citation:
Envoyé par Snyper Voir le message
SET timing ON exec wait(2); ne marche pas...
Sûrement tu as un message d'erreur...
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h44   #7
Membre du Club
 
Inscription : octobre 2006
Messages : 194
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 194
Points : 54
Points : 54
Par défaut ORA-00922: missing or invalid option

ORA-00922: missing or invalid option

et il(TOAD) timing comme invalide,

mais si j’exécute la procédure

Ça marche bien.

Merci je pense que je vais passer le statut à résolut?
Snyper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 11h23   #8
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Citation:
Envoyé par Snyper Voir le message
Merci je pense que je vais passer le statut à résolut?
Je suis d'accord.

SET, EXEC - les commandes de SQL*Plus, inutils dans TOAD
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h22.


 
 
 
 
Partenaires

Hébergement Web