我在Oracle 10g SELECT
查询中选择了以下搜索案例字段
(case
when LOADER_CELLS.CELL_MODE='RW' then 1
when LOADER_CELLS.CELL_MODE='R' then 2
end) as CELL_EDIT_MODE_ID
但如果我把它写成Simple Case表达式,如下所示:
(case LOADER_CELLS.CELL_MODE
when 'RW' then 1
when 'R' then 2
end) as CELL_EDIT_MODE_ID
我在ORA-12704: character set mismatch
行上收到when 'RW'
错误。
我看了一下Oracle文档,看来我的语法是正确的。 http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm
有人可以帮我吗?
答案 0 :(得分:0)
“我认为这可能是编码问题,但我不知道如何将常量字符串”强制转换为NVARCHAR“
你用“N”语法来做。
case LOADER_CELLS.CELL_MODE
when n'RW' then 1
when n'R' then 2
end
例如
SQL> select case a when 'a' then 1 end from foo;
select case a when 'a' then 1 end from foo
*
ERROR at line 1:
ORA-12704: character set mismatch
SQL> select case a when n'a' then 1 end from foo;
CASEAWHENN'A'THEN1END
---------------------