ORA-12704:字符集不匹配

时间:2013-04-12 09:04:39

标签: oracle oracle11g coalesce

当我这样做时:

select COALESCE (CORP_ID, 0) from crmuser.accounts;

Null的CORP_ID记录返回0但是当我这样做时:

select COALESCE (EMAIL, 'NO EMAIL') from crmuser.accounts

我收到错误:

ORA-12704: character set mismatch

NVARCHAR2中的EMAIL字段(30)。是我的数据类型,如果是,我该怎么做才能返回默认值?

2 个答案:

答案 0 :(得分:19)

你应该做

select COALESCE (EMAIL, n'NO EMAIL') from crmuser.accounts

将文字转换为NVARCHAR。

例如 http://sqlfiddle.com/#!4/73929/1 VS http://sqlfiddle.com/#!4/73929/2

答案 1 :(得分:1)

此通用修补程序适用于定义为VARCHAR2或NVARCHAR2的列:

select COALESCE (EMAIL, N'' || 'NO EMAIL') from crmuser.accounts

只需添加N'' ||在非Unicode字符串常量之前。