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 :

Utiliser la fonction sha1 dans une requête


Sujet :

PL/SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut Impossible d'utiliser DBMS_CRYPTO
    Bonjour à tous,

    J'ai récupéré la fonction get_sha1_hash_val de ce topic http://www.developpez.net/forums/d93...chage-sha-md5/

    Mais je n'arrive pas à l'utiliser dans mes requetes...
    Je tourne sur une base 10.2G.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select get_sha1_hash_val('tada') from dual;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Error starting at line 1 in command:
    select get_sha1_hash_val('tada') from dual
    Error report:
    SQL Error: ORA-01465: nombre hexadécimal non valide
    01465. 00000 -  "invalid hex number"
    *Cause:    
    *Action:
    Merci à tous pour votre aide

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Et si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT get_sha1_hash_val(UTL_RAW.cast_to_raw ('tada')) FROM dual;
    C'est du raw qui est attendu et non du varchar2

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Error starting at line 1 in command:
    SELECT get_sha1_hash_val(UTL_RAW.cast_to_raw ('tada')) FROM dual
    Error report:
    SQL Error: ORA-06521: PL/SQL : Erreur lors de la mise en correspondance de la fonction
    ORA-06512: à "DAMIEN.DBMS_CRYPTO_FFI", ligne 131
    ORA-06512: à "DAMIEN.DBMS_CRYPTO", ligne 69
    ORA-06512: à "DAMIEN.GET_SHA1_HASH_VAL", ligne 6
    06521. 00000 -  "PL/SQL: Error mapping function"
    *Cause:    An error was detected by PL/SQL trying to map the mentioned
               function dynamically.
    *Action:   Check the stacked error (if any) for more details.
    Pourtant j'ai bien installé le DBMS_CRYPTO et compagnie.

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par madevilts Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Error starting at line 1 in command:
    SELECT get_sha1_hash_val(UTL_RAW.cast_to_raw ('tada')) FROM dual
    Error report:
    SQL Error: ORA-06521: PL/SQL : Erreur lors de la mise en correspondance de la fonction
    ORA-06512: à "DAMIEN.DBMS_CRYPTO_FFI", ligne 131
    ORA-06512: à "DAMIEN.DBMS_CRYPTO", ligne 69
    ORA-06512: à "DAMIEN.GET_SHA1_HASH_VAL", ligne 6
    06521. 00000 -  "PL/SQL: Error mapping function"
    *Cause:    An error was detected by PL/SQL trying to map the mentioned
               function dynamically.
    *Action:   Check the stacked error (if any) for more details.
    Pourtant j'ai bien installé le DBMS_CRYPTO et compagnie.
    Sous quel outil lances-tu la commande ? SQL*Plus ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Oups j'ai oublié de le dire. je lance sous sqldeveloper pour tester (est ce une erreur ?)
    A terme le script doit tourner sous sqlplus.

    NB: personne n'a demandé à quoi sert le MD5, je rassure tout le monde, ce n'est pas pour des mots de passe, ça me permet juste à hasher une chaine de texte pour vérifier si des données ont été changé

  6. #6
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Essaie de le lancer sous SQL*Plus.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL> select get_sha1_hash_val(UTL_RAW.cast_to_raw('tada')) FROM dual;
    select get_sha1_hash_val(UTL_RAW.cast_to_raw('tada')) FROM dual
           *
    ERROR at line 1:
    ORA-06521: PL/SQL: Error mapping function
    ORA-06512: at "DAMIEN.DBMS_CRYPTO_FFI", line 131
    ORA-06512: at "DAMIEN.DBMS_CRYPTO", line 69
    ORA-06512: at "DAMIEN.GET_SHA1_HASH_VAL", line 6
    Voila sous sqlplus

  8. #8
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Et si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> var sh1 number;
    SQL> exec :sh1 := DBMS_CRYPTO.hash_sh1;
    PL/SQL procedure successfully completed.
     
    SQL> select DBMS_CRYPTO.HASH (utl_raw.cast_to_raw('tada'), :sh1) from dual;
    DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('TADA'),:SH1)
    ---------------------------------------------------------------------------
    42E4A3E115D92F068E02948367C0288D975A9314

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    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
     
    SQL> var sh1 number;
    exec :sh1 := DBMS_CRYPTO.hash_sh1;
    SELECT DBMS_CRYPTO.HASH (utl_raw.cast_to_raw('tada'), :sh1) FROM dual;
    DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('TADA'),:SH1)SP2-0734: unknown command beginning "DBMS_CRYPT..." - rest of line ignored.
    SQL>
    PL/SQL procedure successfully completed.
     
    SQL> SELECT DBMS_CRYPTO.HASH (utl_raw.cast_to_raw('tada'), :sh1) FROM dual
           *
    ERROR at line 1:
    ORA-06521: PL/SQL: Error mapping function
    ORA-06512: at "DAMIEN.DBMS_CRYPTO_FFI", line 131
    ORA-06512: at "DAMIEN.DBMS_CRYPTO", line 69
     
     
    SQL>
    Peut etre un problème dans la lib ? je l'ai pris sur internet et elle a l'air correct. Je suis un newb complet en PL / package donc ça explique peut etre mes petits soucis.

  10. #10
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par madevilts Voir le message
    Peut etre un problème dans la lib ? je l'ai pris sur internet et elle a l'air correct.
    Qu'est-ce que tu as pris sur internet ? DBMS_CRYPTO ?

    C'est un package standard, il doit être fourni.

    Que donne la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> select owner, object_name, object_type from all_objects where object_name = 'DBMS_CRYPTO';

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    J'ai du faire l'erreur là.
    Ca me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     SELECT owner, object_name, object_type FROM all_objects WHERE object_name = 'DBMS_CRYPTO';
    SP2-0734: unknown command beginning "DBMS_CRYPT..." - rest of line ignored.

  12. #12
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Lance là sous SQL*Developper

  13. #13
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    OWNER                          OBJECT_NAME                    OBJECT_TYPE         
    ------------------------------ ------------------------------ ------------------- 
    SYS                            DBMS_CRYPTO                    PACKAGE             
    SYS                            DBMS_CRYPTO                    PACKAGE BODY        
    PUBLIC                         DBMS_CRYPTO                    SYNONYM             
    SYSTEM                         DBMS_CRYPTO                    PACKAGE             
    SYSTEM                         DBMS_CRYPTO                    PACKAGE BODY        
    DAMIEN                         DBMS_CRYPTO                    PACKAGE             
    DAMIEN                         DBMS_CRYPTO                    PACKAGE BODY        
     
    7 rows selected
    Voila

    Merci de ton aide et de me donner de ton temps

  14. #14
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Il ne devrait se trouver que dans SYS.

    1. Supprimes-le du user DAMIEN.
    2. Connecte-toi en tant que SYS
    3. Donnes les droits d'exécution pour ce package au user DAMIEN
    4. Reconnectes toi avec DAMIEN
    5. Relance ta fonction.

  15. #15
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Si tu veux, j'ai téléchargé le package et l'ai installé via sqldeveloper.
    j'ai l'impression que la c'est déjà faux vu que tu indiques qu'il existe d'origine.


  16. #16
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par madevilts Voir le message
    Si tu veux, j'ai téléchargé le package et l'ai installé via sqldeveloper.
    j'ai l'impression que la c'est déjà faux vu que tu indiques qu'il existe d'origine.
    Tu l'as installé pour quel(s) user(s) oracle ?

  17. #17
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Avec mon user (DAMIEN).

    En fait, j'ai l'impression que je me plante déjà pour l'installer. Comment faut il faire ?

    Je veux bien dropper de DAMIEN et le mettre sur SYS mais si j'installe pas comme il faut, ça marchera jamais :'(

  18. #18
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par madevilts Voir le message
    le mettre sur SYS
    NON SURTOUT PAS !!!
    Il est déjà sur SYS et c'est celui-là qui doit être exécuté. Pour cela je t'ai indiqué la marche à suivre.

    Il ne faut jamais toucher aux objets de SYS, sans ça tu risques de planter ta base.

  19. #19
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Donc je n'ai pas a l'installer c'est cela ?

    EDIT : suite demain car je n'ai pas le mdp pour le sys.

  20. #20
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par madevilts Voir le message
    Donc je n'ai pas a l'installer c'est cela ?
    Exact, il est déjà installé sous SYS. Le problème que tu vas peut-être rencontré c'est que tu n'as pas les droits nécessaires pour l'exécuter :
    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
    19
    20
    21
    22
    23
    SQL> connect test/pwd@ora10g
    Connected.
     
    SQL> select DBMS_CRYPTO.HASH (utl_raw.cast_to_raw('tada'), :sh1) from dual;
    select DBMS_CRYPTO.HASH (utl_raw.cast_to_raw('tada'), :sh1) from dual
           *
    ERROR at line 1:
    ORA-00904: : invalid identifier
     
     
    SQL> connect sys/xxxx@ora10g as sysdba
    Connected.
     
    SQL> grant execute on DBMS_CRYPTO to test;
    Grant succeeded.
     
    SQL> connect test/pwd@ora10g
    Connected.
     
    SQL> select DBMS_CRYPTO.HASH (utl_raw.cast_to_raw('tada'), :sh1) from dual;
    DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('TADA'),:SH1)
    ---------------------------------------------------------------------------
    42E4A3E115D92F068E02948367C0288D975A9314

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PostgreSQL] Utiliser une fonction PHP dans une requête SQL
    Par Toiine dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/11/2014, 13h16
  2. utilisation de la fonction Partdate() dans une requête
    Par jm6570 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/02/2010, 12h55
  3. Utiliser fonction utilisateur dans une requête
    Par schoubz dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/06/2008, 21h30
  4. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 10h53
  5. utilisation de fonction membre dans une autre
    Par tcharles dans le forum C++
    Réponses: 4
    Dernier message: 14/12/2005, 18h19

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