sql >> Database >  >> RDS >> Oracle

NLS_CHARSET_DECL_LEN() Functie in Oracle

In Oracle, de NLS_CHARSET_DECL_LEN() functie retourneert de declaratielengte (in aantal tekens) van een NCHAR kolom.

Syntaxis

De syntaxis gaat als volgt:

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Waar byte_count is de breedte van de kolom en char_set_id is de tekenset-ID van de kolom.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Resultaat:

100

Hier is het met een andere tekenset-ID:

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Resultaat:

50

De tekenset-ID ophalen

We kunnen de NLS_CHARSET_ID() . gebruiken functie om de tekenset-ID voor een bepaalde tekenset te retourneren:

Voorbeeld:

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

Resultaat:

50

Nullargument

Als een argument null is , het resultaat is null :

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

Resultaat:

     R1      R2 
_______ _______ 
   null    null

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Onjuist aantal argumenten

Het aanroepen van de functie zonder het doorgeven van argumenten resulteert in een fout:

SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;

Resultaat:

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:

En het doorgeven van te veel argumenten resulteert ook in een fout:

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

Resultaat:

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. Hoe een externe sleutel in SQLite te laten vallen

  2. Amazon RDS (MySQL of MariaDB) migreren naar een On-Prem Server

  3. Twee tabellen samenvoegen met een verschillend aantal kolommen

  4. Een resultatenset retourneren