我Db的字符集是utf8,创建了下面的一个表;
CREATE TABLE M_CHEMICAL ( 
ID_CHEMICAL NUMBER(19) NOT NULL,
CAS_NO NVARCHAR2(36) NOT NULL,
CAS_NO_RETRIEVAL_STRING NVARCHAR2(36),
FLG_UNUSED NUMBER(5) NOT NULL,
C_UID NUMBER(19) NOT NULL,
C_DATE TIMESTAMP(6) NOT NULL,
UD_UID NUMBER(19) NOT NULL,
UD_DATE TIMESTAMP(6) NOT NULL
);
在执行select COALESCE(CAS_NO, '-') from M_CHEMICAL;的时候,出现了
ORA-12704: 字符集不匹配。
我将sql改为select COALESCE(CAS_NO, N'-') from M_CHEMICAL;,就可以正常执行了,我从网上查找资料,很多资料都说可能是由于客户端和服务器端的字符集不一样导致了这种错误。现在我Db的字符集是utf8,我在客户端的环境变量中追加了NLS_LANG=AMERICAN_AMERICA.UTF8配置,执行不加N的SQL文,还是出现了字符集不匹配的错误,请问各位,不加N,能正常执行SQL文吗?