Oracle CONVERT() 函数使用指南

Oracle CONVERT() 是一个内置函数,它将一个给定的字符串从一个字符集转为另一个字符集。

Oracle CONVERT() 语法

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

CONVERT(char, dest_char_set[, source_char_set ])

参数

char

必需的。它是要转换的值。它可以是 CHARVARCHAR2NCHARNVARCHAR2CLOBNCLOB 等数据类型。

dest_char_set

必需的。它是将 char 转换为的字符集的名称。

source_char_set

可选的。它是 char 在数据库中存储的字符集的名称。默认值为数据库字符集。

目标字符集 dest_char_set 和源字符集 source_char_set 参数都可以是文字值或包含字符集名称的列。

为了在字符转换中实现完全对应,目标字符集必须包含源字符集中定义的所有字符的表示。如果目标字符集中不存在某个字符,则会出现替换字符。替换字符可以作为字符集定义的一部分定义。

返回值

Oracle CONVERT() 函数将一个给定的字符串从一个字符集转为另一个字符集并返回转换后的结果。

如果 char 的类型是 CHARVARCHAR2, 则返回值的类型是 VARCHAR2。 如果 char 的类型是 NCHARNVARCHAR2, 则返回值的类型是 NVARCHAR2。如果 char 的类型是 CLOB, 则返回值的类型是 CLOB。如果 char 的类型是 NCLOB, 则返回值的类型是 NCLOB

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

Oracle CONVERT() 示例

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

基本用法

下面的语句将 Latin-1 字符串转换为 ASCII:

SELECT
    CONVERT('Ä Ê Í Õ Ø A B C D E ', 'US7ASCII', 'WE8ISO8859P1')
FROM dual;

输出:

CONVERT('ÄÊÍÕØABCDE'
---------------------
A E I ? ? A B C D E ?

NULL 参数

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

SET NULL 'NULL';
SELECT
    CONVERT(NULL, NULL),
    CONVERT(NULL, NULL, NULL)
FROM dual;

输出:

CONVERT(NULL,NULL)    CONVERT(NULL,NULL,NULL)
_____________________ __________________________
NULL                  NULL

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

结论

Oracle CONVERT() 是一个内置函数,它将一个给定的字符串从一个字符集转为另一个字符集。