UNICODEの列と文字列リテラルとUNIONするSQL
NCHARやNVARCHAR2の列と文字列リテラルを返す列をUNIONするようなばあい、そのままではエラーになります。
SQL> DESC Table1; 名前 NULL? 型 ---------------- -------- --------------------------- COLUMN1 NCHAR(10) COLUMN2 NVARCHAR2(30) SQL> SELECT COLUMN1, COLUMN2 2 FROM Table1 3 UNION 4 SELECT 'あああああ' AS COLUMN1, 5 'いいいいい' AS COLUMN2 6 FROM DUAL; SELECT COLUMN1, COLUMN2 * 行1でエラーが発生しました。: ORA-12704: character set mismatch
文字列リテラルは、前に'N'をつけてやると、UNICODEとして記述できますので、同じケースなら以下のようにすると、うまくいきます。
SQL> SELECT COLUMN1, COLUMN2 2 FROM Table1 3 UNION 4 SELECT N'あああああ' AS COLUMN1, 5 N'いいいいい' AS COLUMN2 6 FROM DUAL; COLUMN1 COLUMN2 ---------- ---------- えええええ くくくくく あああああ いいいいい