Maison >base de données >Oracle >Comment convertir des données de caractères en données numériques dans Oracle

Comment convertir des données de caractères en données numériques dans Oracle

PHPz
PHPzoriginal
2023-04-17 09:19:415459parcourir

La base de données Oracle est un système de gestion de base de données relationnelle très populaire. Elle possède des types de données riches, notamment des types numériques, des types de caractères, des types de date, des types Blob, etc. Dans les applications pratiques, nous rencontrons souvent le besoin de convertir des données de type caractère en un type numérique. Cet article explique comment convertir des données de caractères en données numériques dans la base de données Oracle.

La base de données Oracle prend en charge plusieurs types de nombres, notamment les entiers (INT), les virgules flottantes (FLOAT), les doubles précisions (DOUBLE), etc. Lorsque nous devons convertir des données alphabétiques en données numériques, nous pouvons utiliser la fonction intégrée TO_NUMBER() de la base de données Oracle pour y parvenir. La syntaxe de la fonction

TO_NUMBER() est la suivante :

TO_NUMBER(string, [format], [nls_lingual])

Parmi eux, la chaîne représente les données de caractères qui doivent être converties ; number, qui est facultatif ; nls_langue Représente les paramètres régionaux, qui sont également facultatifs.

Si le paramètre format n'est pas spécifié, la base de données Oracle effectuera la conversion selon le format numérique de la session en cours par défaut. Si la chaîne contient des caractères spéciaux, tels que $,, etc., vous devez alors utiliser le paramètre format pour spécifier les règles de conversion.

Exemple 1 :

Nous créons d'abord une table pour stocker les données de caractères :

CREATE TABLE test_number (
id NUMBER(10),
data VARCHAR2(50)
);

Puis insérez-en dans la table Data :

INSERT INTO test_number (id, data) VALUES (1, '123');
INSERT INTO test_number (id, data) VALUES (2, '45.67');
INSERT INTO test_number (id, data) VALUES ( 3, ' -8.9');
INSERT INTO test_number (id, data) VALUES (4, '$123.456');

Ensuite, nous utilisons la fonction TO_NUMBER() pour convertir les données de caractères en données numériques :

SELECT id, TO_NUMBER(data ) AS num FROM test_number;

Le résultat de l'exécution est le suivant :

ID NUM
1 123
2 45.67
3 -8.9
4 123.456

Exemple 2 :

Dans les applications réelles, nous pouvons vous rencontrer le besoin pour convertir des données de caractères en données entières. Dans ce cas, vous devez utiliser le paramètre format pour spécifier les règles de conversion.

Par exemple, nous avons un tableau pour stocker les données de score des élèves :

CREATE TABLE test_score (
id NUMBER(10),
nom VARCHAR2(50),
score VARCHAR2(50)
);

Insérer des données dans le tableau Données :

INSERT INTO test_score (id, name, score) VALUES (1, '张三', '90');
INSERT INTO test_score (id, name, score) VALUES (2, '李思' , '85.5 ');
INSERT INTO test_score (id, nom, score) VALUES (3, '王五', '78');
INSERT INTO test_score (id, name, score) VALUES (4, 'Zhao Liu' , '60 +');

Nous pouvons utiliser l'instruction SQL suivante pour convertir le champ de score en données entières :

SELECT id, name, TO_NUMBER(score, '999') AS score_int FROM test_score ;

Dans ce qui précède Instruction SQL, '999' représente une chaîne formatée, où chaque 9 représente un chiffre, et s'il n'y a pas suffisamment de chiffres, 0 est ajouté devant. Par conséquent, cette instruction convertit les données caractères en données entières.

Les résultats de l'exécution sont les suivants :

ID NAME SCORE_INT
1 Zhang San 90
2 Li Si 85
3 Wang Wu 78
4 Zhao Liu 60

Il est à noter que si la chaîne contient des caractères non numériques, alors la fonction TO_NUM BER( ) renverra une erreur. Par conséquent, lorsque vous utilisez cette fonction, vous devez vous assurer que la chaîne à convertir répond aux exigences de format des nombres, sinon vous devez utiliser d'autres fonctions pour nettoyer les données.

Résumé :

La base de données Oracle fournit la fonction TO_NUMBER(), qui peut convertir les données alphabétiques en données numériques. Lorsque vous utilisez cette fonction, vous devez faire attention à la spécification des règles de conversion et vous assurer que la chaîne à convertir répond aux exigences de format des nombres. Cet article présente deux exemples et espère être utile aux lecteurs.

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