W bazie danych Oracle NUMTOYMINTERVAL() funkcja konwertuje liczbę na INTERVAL YEAR TO MONTH dosłowne.
Składnia
Składnia wygląda tak:
NUMTOYMINTERVAL(n, 'interval_unit')
n argument jest liczbą, na którą należy przekonwertować.
Wartość interval_unit określa jednostkę n i musi zostać rozwiązany do jednej z następujących wartości ciągu:
- „
YEAR‘ - „
MONTH‘
interval_unit w argumentach nie jest rozróżniana wielkość liter.
Przykład
Oto przykład do zademonstrowania:
SELECT NUMTOYMINTERVAL(1, 'MONTH')
FROM DUAL; Wynik:
+00-01
Oto kolejny, który używa roku:
SELECT NUMTOYMINTERVAL(1, 'YEAR')
FROM DUAL; Wynik:
+01-00
Ułamki
Oto taki, który zawiera część ułamkową w pierwszym argumencie:
SELECT
NUMTOYMINTERVAL(10.56, 'YEAR') AS "Year",
NUMTOYMINTERVAL(10.56, 'MONTH') AS "Month"
FROM DUAL; Wynik:
Year Month _________ _________ +10-07 +00-11
Wrażliwość na wielkość liter
Drugi argument nie uwzględnia wielkości liter:
SELECT
NUMTOYMINTERVAL(150, 'YEAR') AS "YEAR",
NUMTOYMINTERVAL(150, 'year') AS "year"
FROM DUAL; Wynik:
YEAR year __________ __________ +150-00 +150-00
Argumenty zerowe
Przekazywanie null dla każdego argumentu wynik w null :
SET NULL 'null';
SELECT
NUMTOYMINTERVAL(1, null),
NUMTOYMINTERVAL(null, 'year')
FROM DUAL; Wynik:
NUMTOYMINTERVAL(1,NULL) NUMTOYMINTERVAL(NULL,'YEAR') __________________________ _______________________________ null null
Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.
Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.
Brakujący argument
Wywołanie funkcji z niewłaściwą liczbą argumentów lub bez przekazania żadnych argumentów skutkuje błędem:
SELECT NUMTOYMINTERVAL()
FROM DUAL; Wynik:
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: