it-swarm.com.de

ORA-12704: Nicht übereinstimmender Zeichensatz

Zum Teufel, wenn ich tue:

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

Die CORP_ID-Datensätze, die Null sind, geben 0 zurück.

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

Ich bekomme einen Fehler: 

ORA-12704: character set mismatch

Das EMAIL-Feld in NVARCHAR2 (30). Ist mein Datentyp und wenn ja Was muss ich tun, um die Standardwerte zurückzugeben?

du solltest tun

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

um das Literal in NVARCHAR zu konvertieren.

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

19
DazzaL

Dieser generische Fix funktioniert mit Spalten, die als VARCHAR2 oder NVARCHAR2 definiert sind:

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

Fügen Sie einfach N '' || hinzu vor Ihrer Nicht-Unicode-Zeichenfolgekonstante.

1
Cristi S.