Como descobrir o charset no Oracle?
Após os primeiros problemas de acentuação na minha aplicação web já senti aquela sensação desagradável: meu grande companheiro, o “problema de charset”, estava de volta. Após um pouco de procura no Google logo aprendi como descobrir o charset do banco de dados Oracle:
SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET';
É bom ressaltar que o charset retornado pela consulta se refere ao banco todo, e não a uma schema/usuário em particular. Ele é aplicado, até onde entendi, a todos os schemas/usuários criados dentro desse banco de dados. Claro, é aí que mora o problema: quer converter o charset maluco do seu banco para UTF-8? Prepare-se para perder horas. Não há um comando mágico para isso (é Oracle, o que você esperava?), é preciso fazer backup, criar o banco de novo e importar o backup. De todo o banco de dados.
Estou me preparando psicologicamente pra esse martírio. Quando tiver terminado o procedimento publico um post sobre como proceder.
Já falei que odeio o Oracle? Já, é verdade.

August 22nd, 2008 às 10:43 am
[...] Ontem comentei o meu problema com charset entre Oracle e uma aplicação web que estou fazendo. O problema era o seguinte: ao preencher campos de texto de um formulário com caracteres acentuados, os mesmos eram inseridos como se fossem dois caracteres de interrogação (??). [...]
October 29th, 2008 às 1:38 am
“é Oracle, o que você esperava?”, que frase mais infâme… Se você quer comandos mágicos pra trabalhar com banco de dados use access meu amigo, o Oracle é pra quem sabe o que é um banco de dados(assim como o DB2) e não pra quem quer um “wizard” pra fazer as coisas…
October 29th, 2008 às 7:25 am
Ivens, se você quer fingir que não entendeu o meu comentário, tudo bem. Em algum momento eu falei que um wizard resolveria os meus problemas?