Maison > base de données > Oracle > le corps du texte

Comment Oracle détermine-t-il si les données sont de type numérique ?

WBOY
Libérer: 2022-04-07 11:27:58
original
22529 Les gens l'ont consulté

Méthode : 1. Utilisez "trim(translate(column,'0123456789',' ')) is NULL;" pour déterminer si les données sont un nombre ; 2. Utilisez "regexp_like(column,'^[0-9] +[0 -9]$');" détermine si les données sont un nombre.

Comment Oracle détermine-t-il si les données sont de type numérique ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment Oracle détermine-t-il si les données sont de type numérique ?

sélectionnez*à partir du nom de la table où Dans notre développement quotidien, nous pouvons rencontrer un tel problème, qui consiste à déterminer si une certaine colonne est entièrement composée de nombres. sachez qu'Oracle ne nous donne pas Fournissez une telle fonction prête à l'emploi, alors sur la base de mon expérience, j'ai résumé deux méthodes efficaces (nom de colonne : colonne, nom de table : table) :

Utilisez la fonction trim+translate : .

Le code est le suivant :

select * from table where trim(translate(column,'0123456789',' ')) is NULL;
Copier après la connexion

Ce qu'il faut noter ici c'est que le troisième paramètre de la fonction traduire est un espace, pas '', car si le troisième paramètre de traduire est vide, il retournera toujours '' , le filtrage ne peut donc pas être réalisé à des fins purement numériques.

De cette façon, tous les nombres sont convertis en espaces. S'ils sont tous composés de nombres, une fois coupés, ils seront naturellement vides, atteignant ainsi l'objectif ci-dessus. Bien sûr, si vous souhaitez exclure les éléments vides, vous pouvez écrire comme ceci :

Le code est le suivant :

select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。
Copier après la connexion

2 Utilisez la fonction regexp_like :

Le code est le suivant :

select * from table where regexp_like(column,'^[0-9]+[0-9]$');
Copier après la connexion

Ce qui devrait. Il convient de noter ici que la fonction regexp_like n'est pas disponible dans toutes les versions d'Oracle. Elle peut être utilisée dans toutes.

regexp_like est l'une des quatre fonctions qu'Oracle prend en charge les expressions régulières : regexp_like, regexp_replace, regexp_instr, regexp_substr. Pour des informations plus détaillées à cet égard, veuillez prêter attention aux documents pertinents.

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal