0

SELECTOracle 10gクエリで次の Searched Case フィールドを選択しています。

(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

誰かがこれについて私を助けることができますか?

4

1 に答える 1

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
---------------------
于 2013-01-19T08:19:07.547 に答える