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

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

В Oracle, NLS_CHARSET_DECL_LEN() функцията връща дължината на декларацията (в брой знаци) на NCHAR колона.

Синтаксис

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

NLS_CHARSET_DECL_LEN(byte_count, char_set_id)

Където byte_count е ширината на колоната и char_set_id е идентификационният номер на набора от знаци на колоната.

Пример

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

SELECT NLS_CHARSET_DECL_LEN(100, 1)
FROM DUAL;

Резултат:

100

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

SELECT NLS_CHARSET_DECL_LEN(100, 2000)
FROM DUAL;

Резултат:

50

Вземете идентификатора на набора от символи

Можем да използваме NLS_CHARSET_ID() функция за връщане на идентификатора на набора от символи за даден набор от знаци:

Пример:

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

Резултат:

50

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

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

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

Резултат:

     R1      R2 
_______ _______ 
   null    null

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

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

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

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

SELECT NLS_CHARSET_DECL_LEN()
FROM DUAL;

Резултат:

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:

И предаването на твърде много аргументи също води до грешка:

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

Резултат:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да експортирам съдържанието на таблица на Oracle във файл?

  2. Как мога да използвам регулярен израз за разделяне на низ, като използвам низ като разделител?

  3. Oracle PL/SQL:Пример DBMS_SCHEDULER.CREATE_JOB

  4. Какъв е еквивалентът на таблицата Oracle Dual в MS SqlServer?

  5. Възможно ли е да се запита колона, разделена със запетая, за конкретна стойност?