IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Aide pour procédure PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 48
    Points : 36
    Points
    36
    Par défaut Aide pour procédure PL/SQL
    Salut Tout le monde je suis débutant en PL/SQL je veux créer une procédure qui ajoute un utilisateur et qui crypte le mot de passe
    voila le code :


    Code sql : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    SQL> create or replace procedure authid current_user
      2  create_user(l_key in varchar2,
      3   l_userid in varchar2,
      4   l_nomprenom in varchar2,
      5   l_tel in varchar2,
      6   l_fax in varchar2,
      7   l_site in number, 
      8   l_log in varchar2,
      9   l_service in number,
     10   l_password in varchar2,)
     11  is
     12   
     13  l_data varchar2(2000);
     14  key_check_flag number;
     15  l_encrypted_string varchar2(2000);
     16   
     17  begin
     18              --- the key and the input data must have a length
     19   
     20              -- divisible by eight (the key must be exactly 8 bytes long).
     21   
     22              l_data := rpad(l_password,(trunc(length(l_password)/8)+1)*8,chr(0));
     23              key_check_flag := mod(length(l_key),8);
     24                    if key_check_flag != 0 then
     25                     raise_application_error(-20199,'clé doit être de 8 caractères de long');
     26                    end if;
     27              -- encrypt the input string
     28                    dbms_obfuscation_toolkit.desencrypt
     29                       (input_string => l_data,
     30                       key_string => l_key,
     31                     encrypted_string => l_encrypted_string);
     32              -- dbms_output.put_line('l_string encrypted: ' || l_encrypted_string);
     33   
     34  insert into users 
     35  (userid, nomprenom, tel, fax, site, date_creation, createur,service,password) 
     36   values (lower(l_userid), upper(
     37  l_nomprenom), l_tel, l_fax, l_site, sysdate, l_log, 
     38  l_service, l_encrypted_string);
     39  end;
     40  /
     
    Avertissement : Procédure créée avec erreurs de compilation.
     
    SQL> begin
      2  create_user('titcha','marwen','11111111','66666666','www.marwen.com','aa','bb','123456789');
      3  end;
      4  /
    create_user('titcha','marwen','11111111','66666666','www.marwen.com','aa','bb','123456789');
    *
    ERREUR à la ligne 2 :
    ORA-06550: Ligne 2, colonne 1 :
    PLS-00905: l'objet MARWEN.CREATE_USER n'est pas valide
    ORA-06550: Ligne 2, colonne 1 :
    PL/SQL: Statement ignored

  2. #2
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Avertissement : Procédure créée avec erreurs de compilation.
    Il faut commencer par le début, en traitant les erreurs lors de la compilation de ton package

    Compile le et tape
    sho err

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Il y a une virgule en trop après le dernier paramètre de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    l_password IN varchar2,)
    et authid n'est pas à sa place.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    Merci pour la réponse je corrige la procédure.
    Nouveau code
    Code sql : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    SQL> create or replace procedure
      2  create_user(l_key in varchar2,
      3   l_userid in varchar2,
      4   l_nomprenom in varchar2,
      5   l_tel in varchar2,
      6   l_fax in varchar2,
      7   l_site in number, 
      8   l_log in varchar2,
      9   l_service in number,
     10   l_password in varchar2)
     11  is
     12   
     13  l_data varchar2(2000);
     14  key_check_flag number;
     15  l_encrypted_string varchar2(2000);
     16   
     17  begin
     18   
     19              l_data := rpad(l_password,(trunc(length(l_password)/8)+1)*8,chr(0));
     20              key_check_flag := mod(length(l_key),8);
     21                    if key_check_flag != 0 then
     22                     raise_application_error(-20199,'clé doit être de 8 caractères de long');
     23                    end if;
     24                    dbms_obfuscation_toolkit.desencrypt
     25                       (input_string => l_data,
     26                       key_string => l_key,
     27                     encrypted_string => l_encrypted_string);
     28           
     29   
     30  insert into users (userid, nomprenom, tel, fax, site, date_creation, createur,service,password)
     
     31   values (lower(l_userid), upper(l_nomprenom), l_tel, l_fax, l_site, sysdate, l_log, l_service, 
    l_encrypted_string);
     32  end;
     33  /
     
    Avertissement : Procédure créée avec erreurs de compilation.
     
    SQL> sho err
    Erreurs pour PROCEDURE CREATE_USER :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    30/1     PL/SQL: SQL Statement ignored
    30/70    PL/SQL: ORA-00904: "CREATEUR" : identificateur non valide

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 48
    Points : 36
    Points
    36
    Par défaut
    je corrige le problème j'ai saisi un champ invalide qui n'existe pas dans la table users


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 11h33
  2. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 17h02
  3. Aide pour une requete SQL
    Par hpghost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/01/2005, 16h01
  4. Aide pour une requete SQL
    Par hpghost dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 08/01/2005, 11h15
  5. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo