sql >> Database >  >> RDS >> Oracle

NLS_CHARSET_NAME() Functie in Oracle

In Oracle Database, de NLS_CHARSET_NAME() functie retourneert de tekensetnaam van een bepaalde tekenset, gebaseerd op zijn ID. Je geeft de tekenset-ID door als argument, en de functie geeft zijn naam terug.

Syntaxis

De syntaxis gaat als volgt:

NLS_CHARSET_NAME(number)

Waar number is de tekenset-ID waarvoor u de naam wilt retourneren.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT NLS_CHARSET_NAME(1)
FROM DUAL;

Resultaat:

US7ASCII

Hier is het met een andere tekenset-ID:

SELECT NLS_CHARSET_NAME(871)
FROM DUAL;

Resultaat:

UTF8

Nullargument

Als het argument null is , het resultaat is null :

SET NULL 'null';
SELECT NLS_CHARSET_NAME(null)
FROM DUAL;

Resultaat:

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.

Ongeldige tekenset-ID

Het doorgeven van een ongeldige tekenset-ID resulteert in null :

SET NULL 'null';
SELECT NLS_CHARSET_NAME(19999)
FROM DUAL;

Resultaat:

null

Het doorgeven van het verkeerde gegevenstype levert echter een fout op:

SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_NAME('oops')
FROM DUAL
Error report -
ORA-01722: invalid number

Onjuist aantal argumenten

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

SELECT NLS_CHARSET_NAME()
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT NLS_CHARSET_NAME()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

Maar het doorgeven van ID's van meerdere tekensets resulteert in de naam van de eerste die wordt geretourneerd:

SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;

Resultaat:

UTF8

  1. Belangrijkste veelvoorkomende problemen met MHA en hoe u ze kunt oplossen

  2. SQL Server ANSI_NULLS uitgelegd

  3. Hoe ervoor te zorgen dat er regelmatig een back-up wordt gemaakt van databases

  4. Kan de kolom die wordt gebruikt in een externe sleutelbeperking niet wijzigen