Oracle
 sql >> Datenbank >  >> RDS >> Oracle

NUMTOYMINTERVAL()-Funktion in Oracle

In der Oracle-Datenbank das NUMTOYMINTERVAL() Funktion konvertiert eine Zahl in ein INTERVAL YEAR TO MONTH wörtlich.

Syntax

Die Syntax lautet wie folgt:

NUMTOYMINTERVAL(n, 'interval_unit')

Das n Argument ist die Zahl, für die konvertiert werden soll.

Der Wert für interval_unit gibt die Einheit von n an und muss in einen der folgenden Zeichenfolgenwerte aufgelöst werden:

  • YEAR
  • MONTH

Die interval_unit Beim Argument wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

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

Ergebnis:

+00-01

Hier ist noch eine, die das Jahr verwendet:

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

Ergebnis:

+01-00

Brüche

Hier ist eines, das einen Bruchteil im ersten Argument enthält:

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

Ergebnis:

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

Groß-/Kleinschreibung

Beim zweiten Argument wird die Groß-/Kleinschreibung nicht beachtet:

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

Ergebnis:

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

Null-Argumente

Übergabe von null für beide Argumente ergibt sich null :

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

Ergebnis:

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

Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null tritt als Ergebnis eines SQL SELECT auf Erklärung.

Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.

Fehlendes Argument

Der Aufruf der Funktion mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT NUMTOYMINTERVAL()
FROM DUAL;

Ergebnis:

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: