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 :

Extraire la valeur du token d'une chaine au format JSON


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 83
    Points : 42
    Points
    42
    Par défaut Extraire la valeur du token d'une chaine au format JSON
    Bonjour à tous.
    j'ai une procédure qui permet de retourner une chaine au format JSON. et à l'intérieur de cette chaine je voudrais récupérer la valeur du token. comment faire ?
    voici la procédure :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    procedure GetToken(  p_url  IN  CHAR,  p_username IN CHAR DEFAULT NULL,  p_password IN CHAR DEFAULT NULL) is
     
      http_request   UTL_HTTP.req;
      http_response  UTL_HTTP.resp;
      http_text           VARCHAR2(32767);
      content varchar2(4000):='{ "login":"'||p_username||'","password":"'||p_password||'"}';
     
    BEGIN
      -- Make a HTTP request and get the response.
      http_request  := UTL_HTTP.begin_request(p_url, 'POST','HTTP/1.1');
     
      utl_http.set_header(http_request, 'user-agent', 'chrome/87.0'); 
      utl_http.set_header(http_request, 'content-type', 'application/json');
      utl_http.set_header(http_request, 'Content-Length', length(content));
     
     
    utl_http.write_text(http_request, content);
     
    http_response := utl_http.get_response(http_request);
     
     
      -- Loop through the response.
      BEGIN
        LOOP
          UTL_HTTP.read_text(http_response, http_text, 32766);
          DBMS_OUTPUT.put_line (http_text);
        END LOOP;
      EXCEPTION
        WHEN UTL_HTTP.end_of_body THEN
          UTL_HTTP.end_response(http_response);
      END;
    EXCEPTION
      WHEN OTHERS THEN
        UTL_HTTP.end_response(http_response);
        RAISE;
     
    END ;
    et voici un exemple de la chaine qui est retournée:
    {"etat":{"code":200,"message":"success","count":2},"reponse":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MDY4MTg5MjIsImV4cCI6MTYwNjkwNTMyMiwianRpIjoiNWNKOGtGejNRM0hxc2xNbjFtbmVCOSJ9.sAj0TpjNmJo5iWj5L5FFnq8mQlT4-U_V5rpCyHedUD49NKb9c-o9idiAALSr8akOTro4Y7o6eAJZQw4hhQsysQ","message":"La mise à jour du Token a été faite"}}

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 137
    Points : 1 917
    Points
    1 917
    Par défaut
    Bonjour,

    Quelle est la version complète de la BDD?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    oracle database 12.1

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 137
    Points : 1 917
    Points
    1 917
    Par défaut
    Tu peux utiliser JSON_TABLE. Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select token 
    into v_token
    from json_table(http_text, '$.reponse'
                         columns (token varchar2(4000) path '$.token')
                        );

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    ou en plsql : Parser le résultat et récupérer les données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE
    	vjson CLOB;
    	token VARCHAR2(500);
    BEGIN
    	vjson := '{"etat":{"code":200,"message":"success","count":2},"reponse":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MDY4MTg5MjIsImV4cCI6MTYwNjkwNTMyMiwianRpIjoiNWNKOGtGejNRM0hxc2xNbjFtbmVCOSJ9.sAj0TpjNmJo5iWj5L5FFnq8mQlT4-U_V5rpCyHedUD49NKb9c-o9idiAALSr8akOTro4Y7o6eAJZQw4hhQsysQ","message":"La mise à jour du Token a été faite"}}';
    	APEX_JSON.parse(vjson); 
      token 	:= APEX_JSON.get_varchar2(p_path => 'reponse.token');
        dbms_output.put_line('token : '|| token);
      END;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

Discussions similaires

  1. évaluation d'une chaine au format JSON
    Par ridan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/03/2007, 16h17
  2. [RegEx] Récupérer une valeur à la suite d'une chaine
    Par Space Cowboy dans le forum Langage
    Réponses: 3
    Dernier message: 17/12/2006, 00h37
  3. comparer une valeur de formulaire et une chaine de caractere.
    Par minirom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/08/2006, 10h53
  4. Extraire les n premiers termes d'une chaine
    Par knecmotet dans le forum C++
    Réponses: 4
    Dernier message: 03/03/2005, 15h05
  5. [Débutant][Token] découper une chaine
    Par _Eric_ dans le forum Langage
    Réponses: 14
    Dernier message: 06/07/2004, 10h36

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