Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2011, 16h16   #1
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
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 :
1
2
3
4
 
SELECT * 
FROM ma_table
WHERE fonction_recherchée(champ)
Merci d'avance
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 16h48   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Pas aussi simplement, mais en utilisant TRANSLATE on y arrive :
Code :
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
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 23h32   #3
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
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/

@+
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 13h54   #4
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 440
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 440
Points : 4 183
Points : 4 183
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 :
RTRIM(chaine, '0123456789') IS NULL
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h47.


 
 
 
 
Partenaires

Hébergement Web