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 :

une fonction qui permet de chercher le nombre d'occurence d'un caractere dans une chaine donnée


Sujet :

PL/SQL Oracle

  1. #1
    Membre averti Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Points : 303
    Points
    303
    Par défaut une fonction qui permet de chercher le nombre d'occurence d'un caractere dans une chaine donnée
    Bonjour, j'ai voulu vous fournir une fonction qui permet de chercher le nombre d'occurence d'un caractere dans une chaine donnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE OR REPLACE FUNCTION NBR_OCCURENCE (CHAINE1 VARCHAR2, 
    CHAR VARCHAR2) RETURN NUMBER IS
       NBR NUMBER := 0;
    BEGIN
     SELECT LENGTH(CHAINE1)-LENGTH(REPLACE(CHAINE1,CHAR))
     INTO   NBR
     FROM   DUAL;
     RETURN (NBR);
    END;
    J'espere qu'elle sera utilie pour vous.

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Merci. Pour info une autre solution existait déjà dans la FAQ Oracle:

  3. #3
    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
    La fonction n'est pas compilable :
    PL/SQL: ORA-00936: missing expression
    A cause de la variable CHAR qui est un mot réservé.

    Ensuite le code est faux car le remplacement complet renvoie NULL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT NBR_OCCURENCE('aaaaaaa', 'a') from dual
    ->NULL
    Corrigé, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE FUNCTION NBR_OCCURENCE (CHAINE1 VARCHAR2, carac VARCHAR2) RETURN NUMBER IS
    BEGIN
     RETURN NVL(LENGTH(CHAINE1),0) - NVL(LENGTH(REPLACE(CHAINE1,carac)),0);
    END;

Discussions similaires

  1. Réponses: 22
    Dernier message: 24/05/2012, 15h56
  2. Réponses: 3
    Dernier message: 23/05/2012, 15h03
  3. une fonction qui permet de supprimer les espaces
    Par inayatallah dans le forum Débuter
    Réponses: 5
    Dernier message: 03/01/2010, 17h36
  4. probleme dans une fonction qui affiche le nombre de ligne du texte
    Par étoile de mer dans le forum Débuter
    Réponses: 7
    Dernier message: 19/09/2008, 08h25
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

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