- Catégories :
Fonctions de données semi-structurées et structurées (Conversion)
AS_DECIMAL , AS_NUMBER¶
Convertit une valeur VARIANT en une valeur NUMBER à virgule fixe, avec une précision et une échelle facultatives. Cette fonction ne calcule pas les valeurs à virgule flottante.
AS_DECIMAL est un synonyme de AS_NUMBER.
Le type de données DECIMAL est synonyme du type de données NUMBER.
- Voir aussi :
Syntaxe¶
AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )
AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Arguments¶
variant_expr
Une expression qui correspond à une valeur de type VARIANT.
precision
Nombre de chiffres significatifs du nombre décimal à stocker.
La valeur par défaut est
38
.scale
Le nombre de chiffres significatifs après le point décimal.
La valeur par défaut est
0
.
Renvoie¶
La fonction renvoie une valeur de type NUMBER ou NULL :
Si le type de la valeur de l’argument
variant_expr
est DECIMAL ou NUMBER, la fonction renvoie une valeur de type NUMBER.
Si le type de la valeur de l’argument
variant_expr
ne correspond pas au type de la valeur de sortie, la fonction renvoie NULL.Si l’argument
variant_expr
est NULL, la fonction renvoie NULL.
Notes sur l’utilisation¶
Lors de la réduction de l’échelle, cette fonction effectue un arrondi, ce qui peut entraîner des erreurs « out-of-range » (débordements de plage).
Exemples¶
Créer une table et y charger des données :
CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);
INSERT INTO as_number_example (number1)
SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Utilisez la fonction AS_NUMBER dans une requête pour convertir une valeur VARIANT en valeur NUMBER :
SELECT AS_NUMBER(number1, 6, 3) number_value
FROM as_number_example;
+--------------+
| NUMBER_VALUE |
|--------------|
| 2.340 |
+--------------+