Oracle DECOMPOSE() 函数使用指南
Oracle DECOMPOSE()
是一个内置函数,它返回将一个 Unicode 分解应用于给定的参数的结果。
Oracle DECOMPOSE()
语法
这里是 Oracle DECOMPOSE()
函数的语法:
DECOMPOSE( string [, { 'CANONICAL' | 'COMPATIBILITY' } ] )
参数
string
-
必需的。
{ 'CANONICAL' | 'COMPATIBILITY' }
-
可选的。如果是
CANONICAL
(不区分大小写),则它应用规范分解,如 Unicode 标准定义 D68 中所述,并返回一个处于 NFD 规范化形式的字符串。如果是COMPATIBILITY
,则应用兼容分解,如 Unicode 标准定义 D65 中所述,并返回一个处于 NFKD 规范化形式的字符串。CANONICAL
是默认值。
两个参数都可以是 CHAR
、VARCHAR2
、NCHAR
或 NVARCHAR2
中的任何数据类型,或者是可以被隐式转换为 VARCHAR2
或 NVARCHAR2
的其他数据类型。
返回值
Oracle DECOMPOSE()
函数返回将一个 Unicode 分解应用于给定的参数的结果。应用的分解由第二个可选参数确定。 此函数的返回值与第一个参数具有相同的字符集。
如果第一个参数的字符集不是 Unicode 字符集之一,则 DECOMPOSE()
返回未修改的参数。
如果任意一个参数为 NULL
, DECOMPOSE()
将返回 NULL
。
Oracle DECOMPOSE()
示例
这里有几个展示了 Oracle DECOMPOSE()
函数用法的示例。
基本用法
下面的示例演示了将 Oracle DECOMPOSE()
函数应用于字符 ö
的结果:
SELECT
DECOMPOSE('ö')
FROM dual;
输出:
DECOMPOSE('ö')
_________________
ö
如果在你的终端出现了 ?
等乱码,您可以使用 ASCIISTR()
获取它的 ASCII 版本,如下:
SELECT
ASCIISTR(DECOMPOSE('ö'))
FROM dual;
输出:
ASCIISTR(DECOMPOSE('?'))
___________________________
o\0308
NULL 参数
如果任意一个参数为 NULL
, DECOMPOSE()
将返回 NULL
。
SET NULL 'NULL';
SELECT
DECOMPOSE(NULL)
FROM dual;
输出:
DECOMPOSE(NULL)
__________________
NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle DECOMPOSE()
是一个内置函数,它返回将一个 Unicode 分解应用于该参数的结果。