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

SQL Oracle Discussion :

traitement des chaînes ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de mascoco
    Profil pro
    chef
    Inscrit en
    Octobre 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : chef

    Informations forums :
    Inscription : Octobre 2006
    Messages : 66
    Par défaut traitement des chaînes ?
    Bonjour,
    Je suis nouveau en PL/SQL, je souhaite faire un petit programme en pl/sql qui extrait les données à partir d’une page HTML grâce au package UTL_FILE et les insérer dans une table déjà crée.

    Exemple de la page HTML : Article_Auteur, on suppose que la page est élaborée de telle manière à ce qu’il y a toujours deux points après les occurrences « Article » et « Auteur » (histoire de faciliter la recherche des noms dans le fichier), ensuite un « espace » puis le nom de l’article ou de l’auteur.

    Article : titreArticle1, Auteur : nomAuteur1
    Article : titreArticle2, Auteur : nomAuteur2
    Article : titreArticle3, Auteur : nomAuteur3
    …… ………… ……. ……….
    …… ………… ……. ……….
    …… ………… ……. ……….
    …… ………… ……. ……….
    Article : titreArticleN, Auteur : nomAuteurN


    Mon Problème est : comment faire le test avec les chaînes de caractères en PL/SQL pour traiter une ligne quelconque extraite avec UTL_FILE.GET_LINE(…) ?

    Je veux juste voir quelques exemples de boucles qui traitent les chaînes de caractères sans utiliser le FSEEK, car je n'ai pas encore abordé les fonctions et les procédures (faut faire le programme sans fonctions ni procédure).

    J’attend votre réponse avec impatience c’est un peu urgent les gars.

    Merci

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    INSTR et SUBSTR devrait répondre au problème.

  3. #3
    Membre actif Avatar de mascoco
    Profil pro
    chef
    Inscrit en
    Octobre 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : chef

    Informations forums :
    Inscription : Octobre 2006
    Messages : 66
    Par défaut exemple ?
    Citation Envoyé par Fred_D
    INSTR et SUBSTR devrait répondre au problème.
    merci,
    pouvez vous me donner juste un exemple de comparaison de deux chaines avec un index qui se déplace pour tester tout le fichier stp c urgent

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Si tu lis ton fichier par un utl_file.get_line, ta ligne est dans une variable.
    Suffit juste de décomposer ta variable pour récupérer les valeurs.
    la doc de INSTR et SUBSTR est assez claire :
    INSTR te donne la position d'une chaine dans une autre (avec en option le n° de l'occurence). Renvoie 0 si pas trouvé.
    SUBSTR decoupe ta chaine depuis une position sur une certaine longueur.

    Si c'est juste de la recherche, il suffit de tester si le INSTR est > 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    v_ligne = UTL_FILE.GET_LINE(fichier);
    IF INSTR(v_ligne, 'Article : ' || v_cherche || ',')> 0 then 'TROUVE '|| v_cherche; 
    END IF;
    Pour récupérer une valeur de ta chaine, utilise SUBSTR avec des INSTR qui donneront la position départ et 2 INSTR que tu soustrait pour avoir la longueur.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2012, 09h17
  2. Traitement des sous-chaînes
    Par vg-matrix dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2008, 18h23
  3. Traitement des sous-chaînes
    Par vg-matrix dans le forum Débuter
    Réponses: 1
    Dernier message: 03/08/2008, 02h22
  4. Réponses: 2
    Dernier message: 11/10/2007, 17h36
  5. traitement des caractères spéciaux avec XSLT
    Par Mirgue dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/07/2004, 16h57

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