This content has been marked as final. Show 4 replies
The error message just tells you that it is not allowed to convert your string from WE8ISO8859P1 to UFT8. The reason could be that WE8ISO8859P1 is not supported in your database installation.
It very much depends on you database version. Here you can find more information (11g!): http://download.oracle.com/docs/cd/B28359_01/server.111/b28298/applocaledata.htm#i669888
This should show which NLS Stettings are supported.
SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = 'CHARACTERSET'After a little bit of digging I found that "WE8ISO8859P1 ... is not a subset of UTF8" (http://download.oracle.com/docs/cd/B10501_01/server.920/a96529/ch5.htm#1019808)
Message was edited by:
Thanks for your answers.
For 1), SQL> SELECT * FROM V$NLS_VALID_VALUES WHERE value='WE8ISO8859P1';
For 2), yes, I see the "WE8ISO8859P1 ... is not a subset of UTF8", but when a column's datatype is varchar2, this statement is executable and no any error. What I consider is whether convert() is not support CLOB datatype? Whether CLOB datatype has special convert way?
We had a problem with that, and we found we were using JDBC driver from a previous version of Oracle (we were using JDBC v 9.02 and the Oracle was 18.104.22.168).
In our case, we copied /oracle/jdbc/*.jar to /apache/webapps/myapp/WEB-INF/lib
For this particular case, JDBC drivers in version 11 and 9 have different file names, so you must delete ojdbc14.jar and classes12.jar from /webapps/myapp/WEB-INF/lib to avoid class conflicts.
We updated JDBC drivers and this fixed the problem.