ORA-00904 sur un appel de procedure ?
Bonjour tout le monde;
Voici ma procédure qui compile nikel-chrome :
Code:
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:
1 2
|
execute pkg_otp.debloque_user('USER001'); |
J'obtiens l'erreur :
Code:
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:
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 ! :cry: