Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função NUMTOYMINTERVAL() no Oracle


No banco de dados Oracle, o NUMTOYMINTERVAL() função converte um número em um INTERVAL YEAR TO MONTH literal.

Sintaxe


A sintaxe fica assim:
NUMTOYMINTERVAL(n, 'interval_unit')

O n argumento é o número para o qual converter.

O valor para interval_unit especifica a unidade de n e deve resolver para um dos seguintes valores de string:
  • 'YEAR '
  • 'MONTH '

O interval_unit argumento não diferencia maiúsculas de minúsculas.

Exemplo


Segue um exemplo para demonstrar:
SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL;

Resultado:
+00-01

Aqui está outro que usa o ano:
SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL;

Resultado:
+01-00

Frações


Aqui está um que contém uma parte fracionária no primeiro argumento:
SELECT 
    NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
    NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL;

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

Sensibilidade de maiúsculas e minúsculas


O segundo argumento não diferencia maiúsculas de minúsculas:
SELECT 
    NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
    NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL;

Resultado:
      YEAR       year 
__________ __________ 
+150-00    +150-00    

Argumentos nulos


Passando null para qualquer argumento resulta em null :
SET NULL 'null';
SELECT 
    NUMTOYMINTERVAL(1, null),
    NUMTOYMINTERVAL(null, 'year')
FROM DUAL;

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

Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que null ocorre como resultado de um SQL SELECT demonstração.

No entanto, você pode usar SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido.

Argumento ausente


Chamar a função com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT NUMTOYMINTERVAL()
FROM DUAL;

Resultado:
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: