数据库:oracle 92
一、以下语句能正常执行
SELECT Id,Concat(CodeId1,'00000') FROM Code_Region; 二、但下面语句报错
SELECT Id,CASE WHEN CodeId1 IS NULL THEN '1' ELSE Concat(CodeId1,'00000') END CodeId FROM Code_Region;
错误提示:
ora-12704 :字符集不匹配 三、如果改成这样却能正常执行.
SELECT Id,CASE WHEN CodeId1 IS NULL THEN '1' ELSE Concat('22','00000') END CodeId FROM Code_Region; 在sql plus和PLSQL Developer中都一样. 感觉不象字符集的问题,因为第一条语句能执行。
一、以下语句能正常执行
SELECT Id,Concat(CodeId1,'00000') FROM Code_Region; 二、但下面语句报错
SELECT Id,CASE WHEN CodeId1 IS NULL THEN '1' ELSE Concat(CodeId1,'00000') END CodeId FROM Code_Region;
错误提示:
ora-12704 :字符集不匹配 三、如果改成这样却能正常执行.
SELECT Id,CASE WHEN CodeId1 IS NULL THEN '1' ELSE Concat('22','00000') END CodeId FROM Code_Region; 在sql plus和PLSQL Developer中都一样. 感觉不象字符集的问题,因为第一条语句能执行。
由于CONCAT的特性是,结果R的字符集合和S1相同,所以,
你的语句调整一下即可:把Concat(CodeId1,'00000')调整为Concat('00000',CodeId1)
SELECT Id,CASE WHEN CodeId1 IS NULL THEN '1' ELSE Concat('00000',CodeId1) END CodeId FROM Code_Region;
这样就可以了。