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

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

WBOY
WBOYoriginal
2022-04-07 11:27:5822541parcourir

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;

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'以外的字符。

2 Utilisez la fonction regexp_like :

Le code est le suivant :

select * from table where regexp_like(column,'^[0-9]+[0-9]$');

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!

Déclaration:
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