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 :

Fonction sql pour tester si une chaîne de caractères est numérique


Sujet :

PL/SQL Oracle

  1. #1
    Membre habitué Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Points : 145
    Points
    145
    Par défaut Fonction sql pour tester si une chaîne de caractères est numérique
    Bonjour,

    je cherche à savoir s'il existe une fonction sql pour tester si une chaîne de caractères est numérique ou non, genre isnumerique ou isdigit.

    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select * 
    from ma_table
    where fonction_recherchée(champ)
    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pas aussi simplement, mais en utilisant TRANSLATE on y arrive :
    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
    with MaTable as
    (
    select 'ABCDE' as str from dual union all
    select '132456'       from dual union all
    select 'X13456'       from dual union all
    select null           from dual
    )
    select str
         , case when translate(str, '#0123456789', '#') is null then 1 else 0 end as is_numeric
      from MaTable;
     
    STR    IS_NUMERIC
    ------ ----------
    ABCDE           0
    132456          1
    X13456          0
                    1

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Je croyais bien avoir trouvé un truc sympa dans la FAQ, il y a longtemps, mais je suis incapable de mettre la main dessus.
    Sinon, voici la discussion qui y menait:

    http://www.developpez.net/forums/d19...ver-isnumeric/

    @+
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    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
    Tout dépend si on souhaite tester des chiffres à virgule ou pas.
    Si c'est juste pour tester des nombres (sans espaces, sans virgule, sans point)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RTRIM(chaine, '0123456789') IS NULL
    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. Réponses: 4
    Dernier message: 11/03/2014, 13h37
  2. [Turbo Pascal] Fonction qui permet de nettoyer une chaîne de caractères
    Par med.ycf dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 05/03/2014, 23h11
  3. Tester si une chaîne de caractère ne contient que des numéros.
    Par sasy22 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 07/04/2008, 18h05
  4. Réponses: 2
    Dernier message: 14/11/2007, 09h56
  5. Réponses: 4
    Dernier message: 21/09/2005, 17h35

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