Extrait du numéro de chaîne avec la fonction d'Oracle

J'ai besoin de créer une DB Oracle fonction qui prend une chaîne de caractères comme paramètre. La chaîne contient des lettres et des chiffres. J'ai besoin d'extraire tous les chiffres de cette chaîne. Par exemple, si j'ai une chaîne comme RO1234, j'ai besoin d'être en mesure d'utiliser une fonction, disons extract_number('RO1234'), et le résultat serait 1234.

Pour être encore plus précis, c'est le genre de requête SQL qui cette fonction devrait être utilisée.

SELECT DISTINCT column_name, extract_number(column_name) 
FROM table_name
WHERE extract_number(column_name) = 1234;

QUESTION: Comment puis-je ajouter une fonction telle que, pour ma base de données Oracle, afin d'être en mesure de l'utiliser comme dans l'exemple ci-dessus, à l'aide de l'un de Oracle SQL Developer ou SQLTools applications client?

Vous pouvez utiliser intégré la fonction regex_replace, SELECT REGEXP_REPLACE(column_name,'[[:alpha:]]') from tbl, au moins vous effectuez une recherche dans Google, voir ce(community.oracle.com/thread/598281) oracle communauté fournit quelques moyens utiles
Je pourrais utiliser un bon exemple. Je ne suis pas bon avec Oracle
"J'ai besoin d'extraire tous les chiffres de cette chaîne" - ce qui arrivera si la chaîne d'entrée contient plusieurs numéros? E. g. que doit votre de retour de la fonction pour l'entrée '1234abc5678' ?
compte tenu de la forme des valeurs stockées sur cette colonne, il n'est pas nécessaire de considérer cette possibilité.
Votre exemple de requête semble avoir des erreurs, c'est à dire des guillemets simples autour de table_name (et, éventuellement, également à tort autour de column_name). Aussi, pourquoi voudriez-vous avoir l'extrait numéro dans la colonne d'une liste, quand vous savez déjà exactement ce qu'elle est, comme vous l'avez spécifié dans le WHERE état?

OriginalL'auteur Vali S | 2015-09-30