Bonjour tout le monde;
Voici ma procédure qui compile nikel-chrome :

Code : 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
 
PROCEDURE debloque_user(p_nom_user IN VARCHAR2) IS
Requete varchar2(250);
v_ddl_cmd varchar2(4000);
v_new_pwd varchar2(30); 
 
BEGIN
  Requete:='ALTER USER '||p_nom_user||' ACCOUNT UNLOCK';
  Execute immediate Requete;
 
  v_new_pwd := pkg_otp.CreateRandomPassword;
  Requete:='UPDATE utilisateur_ora SET UTO_PWD_GPL='||v_new_pwd||' WHERE UTO_USR_GPL='||p_nom_user||'';
  Execute immediate Requete;
  Requete:='ALTER USER '||p_nom_user||' IDENTIFIED BY '||v_new_pwd||'';
  Execute immediate Requete;
  COMMIT;
 
END debloque_user;
Or lorsque je la teste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
execute pkg_otp.debloque_user('USER001');
J'obtiens l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Erreur commençant à la ligne 10 de la commande :
execute pkg_otp.debloque_user('USER001')
Rapport d'erreur :
ORA-00904: "USER001" : identificateur non valide
ORA-06512: à "USER.PKG_OTP", ligne 158
ORA-06512: à ligne 1
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:
Un desc de la table UTILISATEUR_ORA :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Nom             NULL     Type              
--------------- -------- ----------------- 
UTO_SEQ         NOT NULL NUMBER(38)        
UTO_USR_GPL              VARCHAR2(50 CHAR) 
UTO_PWD_GPL              VARCHAR2(30 CHAR) 
UTO_TYP_USR              VARCHAR2(30 CHAR) 
UTO_USR_NAME    NOT NULL VARCHAR2(8)       
UTO_JAN_SEQ              NUMBER(38)        
UTO_STA         NOT NULL VARCHAR2(30)      
UTO_DATE_STATUT          TIMESTAMP(6)      
UTO_ID_ORA               NUMBER(10)        
UTO_ID_THREAD            NUMBER(10)
Je ne comprends pas, je lui donne bien un varchar2 en parametre. Les noms de colonnes sont corrects.
Help !