Oracle NLS_COLLATION_NAME() 函数使用指南

Oracle NLS_COLLATION_NAME() 是一个内置函数,它根据给定的排序规则 ID 返回对相应的排序规则名称。

Oracle NLS_COLLATION_NAME() 语法

这里是 Oracle NLS_COLLATION_NAME() 函数的语法:

NLS_COLLATION_NAME(collation_id [, flag ])

参数

collation_id

必需的。 排序规则 ID。它应该为一个 NUMBER 值。

flag

可选的。 可选的 flag 参数仅适用于 Unicode Collation Algorithm (UCA) 排序。该参数确定函数返回排序规则名称的短形式还是长形式。该参数必须是一个字符表达式,求值为值 'S''s''L''l',其含义如下:

  • 'S''s' - 返回排序名称的短形式
  • 'L''l' - 返回排序名称的长形式

如果省略 flag,则默认值为 'L'

返回值

Oracle NLS_COLLATION_NAME() 函数根据给定的排序规则 ID 返回对相应的排序规则名称。

此函数返回一个 VARCHAR2 值。如果您指定了无效的排序 ID,则该函数返回 null。

如果任意一个参数为 NULLNLS_COLLATION_NAME() 将返回 NULL

Oracle NLS_COLLATION_NAME() 示例

这里有几个展示了 Oracle NLS_COLLATION_NAME() 函数用法的示例。

基本用法

下面的语句返回 ID 为 16383 的排序规则名称:

SELECT
    NLS_COLLATION_NAME(16383)
FROM dual;

输出:

NLS_COLLATION_NAME(16383)
____________________________
BINARY

下面的语句返回 ID 为 147455 的排序规则名称:

SELECT
    NLS_COLLATION_NAME(66)
FROM dual;

输出:

NLS_COLLATION_NAME(66)
_________________________
UNICODE_BINARY

flag 参数

Oracle NLS_COLLATION_NAME() 允许您使用 flag 参数指定返回排序规则名称的短形式还是长形式。

下面的示例返回排序规则名称的短形式:

SELECT
    NLS_COLLATION_NAME(208897, 'S')
FROM dual;

输出:

NLS_COLLATION_NAME(208897,'S')
_________________________________
UCA0610_DUCET

下面的示例返回排序规则名称的长形式:

SELECT
    NLS_COLLATION_NAME(208897, 'L')
FROM dual;

输出:

NLS_COLLATION_NAME(208897,'L')
___________________________________________
UCA0610_DUCET_S4_VS_BN_NY_EN_FN_HN_DN_MN

如果您需要返回排序规则名称的长形式,您可以省略 flag 参数,因为这是默认的行为。下面的示例说明这一点:

SELECT
    NLS_COLLATION_NAME(208897)
FROM dual;

输出:

NLS_COLLATION_NAME(208897)
___________________________________________
UCA0610_DUCET_S4_VS_BN_NY_EN_FN_HN_DN_MN

NULL 参数

如果任意一个参数为 NULLNLS_COLLATION_NAME() 将返回 NULL

SET NULL 'NULL';
SELECT
    NLS_COLLATION_NAME(NULL)
FROM dual;

输出:

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle NLS_COLLATION_NAME() 是一个内置函数,它根据给定的排序规则 ID 返回对相应的排序规则名称。