Oracle
 sql >> Baza danych >  >> RDS >> Oracle

NLS_CHARSET_DECL_LEN() Funkcja w Oracle

W Oracle NLS_CHARSET_DECL_LEN() funkcja zwraca długość deklaracji (w liczbie znaków) NCHAR kolumna.

Składnia

Składnia wygląda tak:

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Gdzie byte_count to szerokość kolumny i char_set_id to identyfikator zestawu znaków kolumny.

Przykład

Oto podstawowy przykład:

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Wynik:

100

Tutaj jest z innym identyfikatorem zestawu znaków:

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Wynik:

50

Pobierz identyfikator zestawu znaków

Możemy użyć NLS_CHARSET_ID() funkcja zwracająca identyfikator zestawu znaków dla danego zestawu znaków:

Przykład:

SELECT NLS_CHARSET_DECL_LEN(
    100, 
    NLS_CHARSET_ID('AL16UTF16')
    )
FROM DUAL;

Wynik:

50

Argument zerowy

Jeśli jakikolwiek argument ma wartość null , wynik to null :

SET NULL 'null';
SELECT 
    NLS_CHARSET_DECL_LEN(null, 1) AS r1,
    NLS_CHARSET_DECL_LEN(100, null) AS r2
FROM DUAL;

Wynik:

     R1      R2 
_______ _______ 
   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ć.

Nieprawidłowa liczba argumentów

Wywołanie funkcji bez przekazywania jakichkolwiek argumentów skutkuje błędem:

SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;

Wynik:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_DECL_LEN()
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:

Przekazywanie zbyt wielu argumentów również skutkuje błędem:

SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
FROM DUAL;

Wynik:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_DECL_LEN(100, 1, 2)
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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy COUNT(rowid) jest szybszy niż COUNT(*)?

  2. Polityka poprawek

  3. Hibernate Create Criteria, aby dwukrotnie dołączyć do tego samego stołu — wypróbowano 2 podejście z błędem 2 różnic

  4. Nie można pobrać identyfikatora ostatniego wstawionego wiersza w Hibernate za pomocą Oracle

  5. Jak sformatować liczbę jako walutę w Oracle