ORA-12704:字符集不匹配

Err*_*ion 13 oracle coalesce oracle11g

当我这样做时:

select COALESCE (CORP_ID, 0) from crmuser.accounts;
Run Code Online (Sandbox Code Playgroud)

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

select COALESCE (EMAIL, 'NO EMAIL') from crmuser.accounts
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

ORA-12704: character set mismatch
Run Code Online (Sandbox Code Playgroud)

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

Daz*_*zaL 21

你应该做

select COALESCE (EMAIL, n'NO EMAIL') from crmuser.accounts
Run Code Online (Sandbox Code Playgroud)

将文字转换为NVARCHAR.

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