ORA-12704:字符集不匹配ORA-12704:字符集不匹配(ORA-12704: charac

2019-05-12 09:52发布

地狱当我这样做:

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

该CORP_ID记录这是NULL,返回0,但是当我这样做:

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

我得到一个错误:

ORA-12704: character set mismatch

在NVARCHAR2电子邮件字段(30)。 是被我的数据类型,如果是我应该怎么做恢复默认值?

Answer 1:

你应该做

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

字面转换为NVARCHAR。

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



Answer 2:

这个通用的修复工作与定义为VARCHAR2或NVARCHAR2列:

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

只需添加N“” || 在你非Unicode字符串常量。



文章来源: ORA-12704: character set mismatch