Como descobrir o charset no Oracle?

Em: 21/08/2008 Tags: Referencie do seu blog (Trackback)

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.

Artigos relacionados:

3 respostas para “Como descobrir o charset no Oracle?”

  1. Uma solução para problemas de charset com Oracle e Rails | Caio Moritz Ronchi disse:

    [...] 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 (??). [...]

  2. Ivens disse:

    “é 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…

  3. Caio Moritz Ronchi disse:

    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?

Escreva um comentário (utilize o formato Markdown)