Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Problems inserting into NVARCHAR2 from JDBC
Has anyone successfully been able to insert a value into an NVARCHAR2
column via JDBC?
I am trying to bind a java string to an NVARCHAR2 column in an insert statement (I am running 8.1.5 with my DB character set WE8ISO8859P1 and national character set UTF8).
When I try the following simple test insert:
PreparedStatement l_stmt = l_conn.prepareStatement("insert into test_table values (?)");
l_stmt.setString(1,"test from java"); int l_result = l_stmt.executeUpdate(); out.println("updated " + l_result);
I get the following SQLException:
java.sql.SQLException: ORA-12704: character set mismatch
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:207) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:540) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1273)at
at
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:899)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:946)
at
oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1306)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1341)
at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:256)
at TestServlet.doGet(TestServlet.java:59)
However, I can successfully do a select from the NVARCHAR2 column and get the result (It is only the insert that fails).
This select works:
PreparedStatement l_stmt = l_conn.prepareStatement("select col1 from test_table");
ResultSet l_rset = l_stmt.executeQuery(); l_rset.next(); String l_value = l_rset.getString(1); out.println("value=" + l_value);
The table here is very simple:
SQL> desc test_table
Name Null? Type ------------------- -------- ---------------- COL1 NVARCHAR2(30)
Has anyone been sucessful in getting something like this to work?
thanks,
--Barry
Received on Tue Apr 20 1999 - 14:24:44 CDT
![]() |
![]() |