В Oracle Database, NLS_COLLATION_ID()
функцията връща идентификатора на дадено съпоставяне. Вие предавате името на съпоставянето при извикване на функцията и тя връща идентификатора на съпоставянето.
Синтаксис
Синтаксисът е така:
NLS_COLLATION_ID(expr)
Където expr
е името на съпоставянето от тип VARCHAR2
.
Пример
Ето един основен пример:
SELECT NLS_COLLATION_ID('XAZERBAIJANI')
FROM DUAL;
Резултат:
70
Ето още няколко примера:
SELECT
NLS_COLLATION_ID('UCA0620_THAI') AS "1",
NLS_COLLATION_ID('UCA0620_TSPANISH') AS "2",
NLS_COLLATION_ID('CANADIAN_M') AS "3",
NLS_COLLATION_ID('FRENCH_M') AS "4"
FROM DUAL;
Резултат:
1 2 3 4 _________ _________ _______ _______ 208920 208917 4116 4112
Невалидно съпоставяне
Предаването на невалидно име за съпоставяне води до null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID('Oops!')
FROM DUAL;
Резултат:
null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null
възниква в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Нулев аргумент
Предаването на null
връща null
:
SET NULL 'null';
SELECT NLS_COLLATION_ID(null)
FROM DUAL;
Резултат:
null
Неправилен брой аргументи
Извикването на функцията без предаване на аргументи води до грешка:
SELECT NLS_COLLATION_ID()
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID() 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_COLLATION_ID('JAPANESE_M', 'THAI_M')
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT NLS_COLLATION_ID('JAPANESE_M', 'THAI_M') 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: