当我这样做时:
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)。是我的数据类型,如果是,我该怎么做才能返回默认值?
答案 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字符串常量之前。