sql >> Databasteknik >  >> RDS >> Oracle

NLS_CHARSET_DECL_LEN() Funktion i Oracle

I Oracle, NLS_CHARSET_DECL_LEN() funktion returnerar deklarationslängden (i antal tecken) för en NCHAR kolumn.

Syntax

Syntaxen ser ut så här:

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Där byte_count är bredden på kolumnen och char_set_id är teckenuppsättningens ID för kolumnen.

Exempel

Här är ett grundläggande exempel:

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Resultat:

100

Här är den med ett annat teckenuppsättnings-ID:

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Resultat:

50

Hämta teckenuppsättnings-ID

Vi kan använda NLS_CHARSET_ID() funktion för att returnera teckenuppsättnings-ID för en given teckenuppsättning:

Exempel:

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

Resultat:

50

Nollargument

Om något argument är null , resultatet är 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 returnerar SQLcl och SQL*Plus ett tomt utrymme när null uppstår som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Inkorrekt antal argument

Att anropa funktionen utan att skicka några argument resulterar i ett fel:

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:

Och att skicka för många argument resulterar också i ett fel:

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. Bestäm om Oracle-dejten är på en helg?

  2. Varför kommer inte resultaten från en SQL-fråga tillbaka i den ordning jag förväntade mig?

  3. 20 tips:Förbered din databas för Black Friday och Cyber ​​Monday

  4. Postgres - den senaste versionen 0.14.0 av pg gem ger fel