Cara estou fazendo um teste para conversão de caracteres no banco oracle 8i o código é o seguinte:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import oracle.sql.CHAR;
import oracle.sql.CharacterSet;
public class TestaBanco {
private static final String sql = "SELECT ESPL_CODIGO AS Codigo, ESPL_DESCRICAO as Descricao FROM LIVRETO, ESPECIALIDADE_LIVRETO WHERE LIVR_ESPL_CODIGO = ESPL_CODIGO GROUP BY ESPL_CODIGO, ESPL_DESCRICAO ORDER BY ESPL_DESCRICAO";
/**
* @param args
*/
public static void main(String[] args) {
ConnectionDB dados = new ConnectionDB();
Connection con = dados.openConnection();
int charId = CharacterSet.UTF8_CHARSET;
CharacterSet charset = CharacterSet.make(charId);
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
System.out
.println("+---------------------------------------------------------------+");
while (rs.next()) {
String cod = rs.getString("Codigo");
CHAR des = new CHAR(rs.getString("Descricao"),charset);
System.out.println("| Código: " + cod + " Descrição: " + des);
System.out
.println("+---------------------------------------------------------------+");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
dados.closeConnection();
}
}
}
e o valor retornado é o seguinte:
±--------------------------------------------------------------+
| Código: 198 Descrição: TONOMETRIA DE APLANAC?O
±--------------------------------------------------------------+
quando deveria ser
±--------------------------------------------------------------+
| Código: 198 Descrição: TONOMETRIA DE APLANAÇÃO
±--------------------------------------------------------------+
alguem pode me ajudar