Insert UNICODE character into non-Unicode Oracle database

From Ittichai Chammavanijakul's Wiki
Revision as of 15:53, 5 March 2013 by Ittichai (talk | contribs) (Created page with "* To an Unicode database <pre> SQL> select * from v$nls_parameters where parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); PARAMETER VALUE -------------------...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  • To an Unicode database

SQL> select * from v$nls_parameters where parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');

PARAMETER		       VALUE
------------------------------ ------------------------------
NLS_CHARACTERSET	       AL32UTF8
NLS_NCHAR_CHARACTERSET	       AL16UTF16

-- At Unix prompt
$ export NLS_LANG=AMERICAN_AMERICA.UTF8

SQL> desc ic_test_table

 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 A						    VARCHAR2(1000)

SQL> insert into ic_test_table values('こんにちは ワールド');

SQL> commit;
 

SQL> select * from ic_test_table;

A
--------------------------------------------------------------------------------
こんにちは ワールド

  • To Non-Unicode database

SQL> select * from v$nls_parameters where parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');

PARAMETER		       VALUE
------------------------------ ------------------------------
NLS_CHARACTERSET	       WE8MSWIN1252
NLS_NCHAR_CHARACTERSET	       AL16UTF16

-- At Unix prompt
$ export NLS_LANG=AMERICAN_AMERICA.UTF8
$ export ORA_NCHAR_LITERAL_REPLACE=TRUE

SQL> desc ic_test_table

 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 A						    NVARCHAR2(1000)

SQL> insert into ic_test_table values(N'こんにちは ワールド');

SQL> commit;
 

SQL> select * from ic_test_table;

A
--------------------------------------------------------------------------------
こんにちは ワールド