sql >> Database teknologi >  >> RDS >> Oracle

NLS_CHARSET_DECL_LEN() Funktion i Oracle

I Oracle er NLS_CHARSET_DECL_LEN() funktion returnerer deklarationslængden (i antal tegn) af en NCHAR kolonne.

Syntaks

Syntaksen ser sådan ud:

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Hvor byte_count er bredden af ​​kolonnen og char_set_id er kolonnens tegnsæt-id.

Eksempel

Her er et grundlæggende eksempel:

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Resultat:

100

Her er det med et andet tegnsæt-id:

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Resultat:

50

Hent tegnsæt-id'et

Vi kan bruge NLS_CHARSET_ID() funktion til at returnere tegnsæt-id'et for et givet tegnsæt:

Eksempel:

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

Resultat:

50

Nul-argument

Hvis et argument er null , resultatet er null :

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

Resultat:

     R1      R2 
_______ _______ 
   null    null

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null opstår som et resultat af en SQL SELECT udmelding.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Forkert antal argumenter

Kaldning af funktionen uden at sende nogen argumenter resulterer i en fejl:

SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;

Resultat:

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:

Og at sende for mange argumenter resulterer også i en fejl:

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

Resultat:

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. Hvordan forbinder man Postgres til localhost-serveren ved hjælp af pgAdmin på Ubuntu?

  2. PostgreSQL Regex-ordgrænser?

  3. Hvordan beregner man retentionsrate i SQL?

  4. Kom godt i gang med Oracle SQL Developer på Windows