Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction NUMTOYMINTERVAL() dans Oracle

Dans Oracle Database, le NUMTOYMINTERVAL() la fonction convertit un nombre en INTERVAL YEAR TO MONTH littéral.

Syntaxe

La syntaxe ressemble à ceci :

NUMTOYMINTERVAL(n, 'interval_unit')

Le n l'argument est le nombre pour lequel convertir.

La valeur de interval_unit spécifie l'unité de n et doit correspondre à l'une des valeurs de chaîne suivantes :

  • YEAR
  • MONTH

L'interval_unit l'argument est insensible à la casse.

Exemple

Voici un exemple pour illustrer :

SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;

Résultat :

+00-01

En voici une autre qui utilise l'année :

SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;

Résultat :

+01-00

Fractions

En voici une qui contient une partie fractionnaire dans le premier argument :

SELECT 
    NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
    NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;

Résultat :

     Year     Month 
_________ _________ 
+10-07    +00-11    

Sensibilité à la casse

Le deuxième argument est insensible à la casse :

SELECT 
    NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
    NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;

Résultat :

      YEAR       year 
__________ __________ 
+150-00    +150-00    

Arguments nuls

Passer null pour l'un ou l'autre des arguments, les résultats sont null :

SET NULL 'null';
SELECT 
    NUMTOYMINTERVAL(1, null),
    NUMTOYMINTERVAL(null, 'year')
FROM DUAL;

Résultat :

   NUMTOYMINTERVAL(1,NULL)    NUMTOYMINTERVAL(NULL,'YEAR') 
__________________________ _______________________________ 
null                       null                           

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois que null se produit à la suite d'un SQL SELECT déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Argument manquant

Appeler la fonction avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT NUMTOYMINTERVAL()
FROM DUAL;

Résultat :

Error starting at line : 1 in command -
SELECT NUMTOYMINTERVAL()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action: