我正在使用java和jtds驱动程序(1.2.8)将一些文本从MS SQL Server 2000中的TEXT
列转移到Oracle 12c中的CLOB
列。
MSQL数据库字符集为Latin1_General_CI_AS
,文本列为Latin1_General_CI_AS.
Oracle数据库字符集为WE8ISO8859P15
。
Oracle中的重音字符成为问号。
我试图调试代码,java中的文本正确显示。
我尝试将charset=ISO-8859-1
放在连接字符串中,我尝试在java命令之前放置 - Dfile.encoding=ISO-8859-1
,但没有任何效果。
你有什么想法吗?提前谢谢你
编辑:这是代码:
Statement st = conn1.createStatement();
ResultSet rs = st.executeQuery("select * from table1 where id = 63");
while(rs.next()){
String testo = rs.getString("TESTO");
PreparedStatement ps = conn2.prepareStatement("insert into table2(id, testo) values(?,?)");
ps.setString(1, rs.getString("ID"));
ps.setString(2, testo);
ps.executeQuery();
ps.close();
}
st.close();
Edit2:我只是试图从SQL Developer中保存“èèè”,它显示了问号......从未发生过......男人这很奇怪!
Edit3:从Toad它正确显示...所以这是一个用java(1.8)从Oracle 12c读取CLOB的问题我是否使用SQL Developer(17.4)或者从我的代码中选择...我尝试使用ojdbc6-7-8并包括orai18n但仍然没有运气
Edit4:如果我使用to_char文本正确显示èèè