ORA-12704: set di caratteri non corrispondenti

L’inferno quando lo faccio:

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

Il CORP_ID registra che Null restituisce 0 ma quando lo faccio:

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

Ottengo un errore:

 ORA-12704: character set mismatch 

Il campo EMAIL in NVARCHAR2 (30). Is is My Datatype e, in caso affermativo, cosa devo fare per restituire i valori predefiniti?

dovresti fare

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

convertire il letterale in NVARCHAR.

ad es. http://sqlfiddle.com/#!4/73929/1 vs http://sqlfiddle.com/#!4/73929/2

Questa correzione generica funziona con colonne definite come VARCHAR2 o NVARCHAR2:

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

Basta aggiungere N ” || prima della costante di stringa non Unicode.