Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> OCI bulk insert failure with different NLS_LANG setting

OCI bulk insert failure with different NLS_LANG setting

From: C.J. Sun <cjsun_sp_at_yahoo.com>
Date: 24 Mar 2003 14:30:52 -0800
Message-ID: <bd817e2a.0303241430.67def6e7@posting.google.com>


I found a weird problem in OCI bulk insert. It failed if client locale setting
is different from DB server. my DB server locale is NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5 and the table is very simple: SQL> desc foo

 Name                                      Null?    Type
 ----------------------------------------- --------

----------------------------
A VARCHAR2(200) B VARCHAR2(200) C NUMBER(9)

If I set client locale same as
server,i.e.NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5, bulk insert OCIStmtPrepare(), OCIBindByPos(), OCIStmtExecute() runs sucessfully.

However, if I set client locale as NLS_LANG=AMERICAN_AMERICA.UTF8, it throws
bind failure:
OCI Error: ORA-01461: can bind a LONG value only for insert into a LONG column

What's more strange is that if the table has only 2 columns as follow, bulk insert now succeeds with any locale setting. Anyone can help me out ? Thanks.

SQL> desc foo

 Name                                      Null?    Type
 ----------------------------------------- --------

----------------------------
A VARCHAR2(200) C NUMBER(9)
Received on Mon Mar 24 2003 - 16:30:52 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US