Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция NLS_CHARSET_NAME() в Oracle

В Oracle Database, NLS_CHARSET_NAME() функцията връща името на набора от символи на даден набор от знаци въз основа на неговия идентификатор. Вие предавате идентификатора на набора от знаци като аргумент и функцията връща името му.

Синтаксис

Синтаксисът е така:

NLS_CHARSET_NAME(number)

Където number е идентификационният номер на набора от знаци, за който искате да върнете името.

Пример

Ето един основен пример:

SELECT NLS_CHARSET_NAME(1)
FROM DUAL;

Резултат:

US7ASCII

Ето го с различен идентификатор на набор от знаци:

SELECT NLS_CHARSET_NAME(871)
FROM DUAL;

Резултат:

UTF8

Нулев аргумент

Ако аргументът е null , резултатът е null :

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

Резултат:

null

По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.

Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.

Невалиден идентификатор на набора от знаци

Предаването на невалиден идентификатор на набор от знаци води до null :

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

Резултат:

null

Предаването на грешен тип данни обаче връща грешка:

SELECT NLS_CHARSET_NAME('oops')
FROM DUAL;

Резултат:

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

Неправилен брой аргументи

Извикването на функцията без предаване на аргументи води до грешка:

SELECT NLS_CHARSET_NAME()
FROM DUAL;

Резултат:

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:

Но предаването на множество идентификатори на набор от знаци води до връщане на името на първия:

SELECT NLS_CHARSET_NAME(871, 1)
FROM DUAL;

Резултат:

UTF8

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция ASCIISTR() в Oracle

  2. Има ли най-добрият начин да избегнете изпълнението на процес повече от веднъж в Oracle?

  3. Завъртане/въртяща се таблица с агрегиране в Oracle

  4. Примери за синтаксис за присъединяване на oracle

  5. Сравнете низове, игнориращи акценти в SQL (ORACLE)