Oracle COLLATION() 函数使用指南

Oracle COLLATION() 是一个内置函数,它返回给定表达式的派生排序规则的名称。

Oracle COLLATION() 语法

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

COLLATION(expr)

参数

expr

必需的。 expr 必须求值为类型为 CHAR、VARCHAR2、LONG、NCHAR 或 NVARCHAR2 的字符字符串。

返回值

Oracle COLLATION() 函数返回给定表达式的派生排序规则的名称。

此函数返回命名排序规则和伪排序规则。如果派生的排序规则是 Unicode Collation Algorithm (UCA) 排序规则,则函数返回其名称的长格式。此函数在包含它的 SQL 语句编译期间进行评估。如果由于评估 expr 时出现排序规则冲突而导致派生的排序规则未定义,则函数返回 NULL。

Oracle COLLATION() 示例

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

基本用法

SELECT COLLATION('Hello')
FROM dual;

输出:

COLLATION('HELLO')
_____________________
USING_NLS_COMP

让我们为 COLLATION() 函数传入一个指定了排序规则的表达式,看看会发生什么:

SELECT COLLATION('Hello' COLLATE LATIN_AI)
FROM dual;

输出:

COLLATION('HELLO'COLLATELATIN_AI)
____________________________________
LATIN_AI

在本示例中,我们传入一个 'Hello' COLLATE LATIN_AI 表达式,它指定了 'Hello' 使用的排序规则为 LATIN_AI,然后 COLLATION() 返回了 LATIN_AI。

NULL 参数

如果参数为 NULL, COLLATION() 将返回默认的排序规则。

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

输出:

COLLATION(NULL)
__________________
USING_NLS_COMP

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

结论

Oracle COLLATION() 是一个内置函数,它返回给定表达式的派生排序规则的名称。