ORA-12704: case 语句中的字符集不匹配

4 sql oracle

即使两者都是 NVARCHAR2(50),也会出现不匹配错误。它们看起来很好分开。

select O.MEDIC_NO
,O.PRO_TIN
,CASE WHEN O.MEDIC_NO IS NULL THEN '' ELSE O.PRO_TIN END AS PRO_TIN_PREVIOUS
from Q119 o
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 7

问题可能是字符串文字不是 NVARCHAR2(50)。CASE的每个分支都需要返回相同类型的值。

select O.MEDIC_NO
,O.PRO_TIN
,CASE WHEN O.MEDIC_NO IS NULL THEN cast('' as NVARCHAR2(50))
      ELSE O.PRO_TIN END AS PRO_TIN_PREVIOUS
from Q119 o
Run Code Online (Sandbox Code Playgroud)