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

Home -> Community -> Usenet -> c.d.o.misc -> Problems inserting into NVARCHAR2 from JDBC

Problems inserting into NVARCHAR2 from JDBC

From: Barry Lind <barrylind_at_wiggenout.com>
Date: Tue, 20 Apr 1999 12:24:44 -0700
Message-ID: <371CD47C.264B51E6@wiggenout.com>


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
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:721)

    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

Original text of this message

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