Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom galera, Eu li outros posts e na verdade percebi que tem muita gente com esta duvida. Na verdade não consegui entender.Estou tbm com problemas de acentuação no oracle.Logo vi esta msg: Problema resolvido, estava faltando o encoding="utf-8" no arquivo xml. O que é este arquivo e onde ele esta? como alterar? Alguns passaram este select: SELECT * FROM NLS_database_parameters. Mas o que e como alterar?Desde ja agradeço.Carlos Edu.
Fala Rodrigo,Executei os dois comandos q passou mas ainda nao esta aceitando acentuação
Me passa os valores do seu NLS_DATABASE_PARAMETERS e a configuração regional do servidor, instalação PT ou EN! Abraços, :unsure:
E ai Rodrigo, estes são os parametros.PARAMETER VALUENLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET AL32UTF8NLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY $NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSENLS_NCHAR_CHARACTERSET AL16UTF16NLS_RDBMS_VERSION 10.2.0.1.0
E ai Rodrigo, estes são os parametros.PARAMETER VALUENLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET AL32UTF8NLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY $NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSENLS_NCHAR_CHARACTERSET AL16UTF16NLS_RDBMS_VERSION 10.2.0.1.0
Ta ai Rodrigo, o q me pediu.
Cara, o povo nao ajuda.
Carlos EduComo você está inserindo os dados com acentos no oracle?Pois o problema pode não ser o oracle e sim a origem dos dados, que foi o meu caso.Solay
Carlos,
Siga as orientações que a Solay acabou de lhe passar, o problema pode ser realmente na origem dos dados.
Caso contrário, sey banco de dados está criado com character UTF8, não deveria ter problema de acentuação, uma configuração que você pode mudar é as configurações regionais do servidor, exemplo de EN para PT, assim como todos as outras variáveis, SET LOCALE e etc...
Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Estou tentando executar o "ALTER DATABASE CHARACTER SET WE8ISO8859P1;", está aparecendo a seguinte mensagem de erro: "ORA-12712: o novo conjunto de caracteres deve ser um superconjunto do conjunto de caracteres antigo" e não consigo alterar o character set para o valor correto.PARAMETER VALUENLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET AL32UTF8NLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY $NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSENLS_NCHAR_CHARACTERSET AL16UTF16NLS_RDBMS_VERSION 10.2.0.1.0
o characterset do banco de dados não pode ser alterado depois de criado!
Mas o oracle criou sozinho o banco xe na instalação, eu não posso mesmo alterá-lo mais de nenhuma forma?Se eu desinstalar o oracle e instalar novamente eu consigo alterá-lo?
Eu alterei os campos de varchar2 para nvarchar2 e segundo o que eu andei pesquisando, o AL32UTF8 é multibyte, ou seja, dependendo do idioma, cada caracter pode utilizar 2 ou 3 bytes e o tipo nvarchar2 resolve esse problema.Obrigada Rodrigo
Solay,
Os campos com iniciais N de NATIONAL CHARACTER são campos para idiomas extensos, no caso um chinês, coreano, japonês que ultrapassa os códigos ASCII de 255 posições, irá perceber que existe campos do tipo NVARCHAR, NLOB e etc.. na verdade o problema o Carlos possa estar passando é realmente uma configuração entre aplicação, servidor e banco de dados, já que o Oracle sempre dá preferência para as configurações regionais do sistema operacional, depois sessão e banco de dados.
Carlos,
Está complicado mesmo saber o motivo da não aceitação das acentuações, tente baixar uma outra versão da Oracle, no site da Oracle existe duas versões do XE para download, uma UNIVERSAL e ou do OESTE EUROPEU, tente baixar a Universal, que o conjunto obdece os 255 caracteres ASCII.
Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
beleza Rodrigo, obrigado pela ajuda, vou baixar outra versao e tentar. Qualquer coisa posto aqui novamente.
Ola Rodrigo, ola Solay Infelizmente nao deu certo. Rodrigo, o servidor meu é o meu notebook ele é um HP americando, por tanto as config de idioma é Ingles Internacional, as outras especifacaçoes estao todas para Brasil.Pode ter algo a ver? Como resolver? Socorro. rs
Boa tarde pessoal, eu sou novo em oracle estou com este mesmo problema no Oracle 10G , o banco de dados considera cada acento como um caractere , ai se eu tenho uma string que contenha acentos e que ja tenha o tamanho permitido do campo nao consigo inserir pois o banco me retorna que o tamanho excede o numero maximo permitido.. alguem ja descobriu como corrigir isto??Valeu pela atenção
Siga as orientações:
1 - Veja a CONFIGURAÇÃO REGIONAL LOCAL DA MÁQUINA do servidor (Servidor - Onde está instalado o Oracle)
2 - Depois, verifique a CONFIGURAÇÂO REGIONAL da sua máquina (CLIENT).
3 - Verifique o CHARACTERSET do banco de dados. (poderá ser o WEB8ISOP51).
4 - Efetua alguns ALTER SESSION para modificar NLS_FORMAT e NLS_TERRITORY para testes e verificar se está com acentuação.
Abraços,
Para alterar o charset do banco oracle 10 XE, eu achei uma solução, funciona quase perfeitamente, só q causa um erro na pagina de acesso ao banco. Mas se você não utiliza a pagina não tera nenhum problema.Começa assimEntra no sqlplus com o usuario sys as sysdba, depois derruba o banco, altera o charset e inicia o banco novamente. Segue os comandos a baixo#sqlplus /nologconn sys as sysdba;SHUT;STARTUP RESTRICT;Alter database character set INTERNAL_USE WE8ISO8859P1;SHUT;STARTUP;Pronto seu banco esta configurado..
Depende! Aqui no fórum, os problemas de CARACTERES são de diferentes fontes. A do ENCONDIG="UTF8" era para os arquivos de XML. Agora, a instrução SELECT * FROM NLS_DATABASE_PARAMETERS é uma consulta para saber quais configurações de NLS foi criado o seu banco de dados, pois parâmetros de NLS podem ser alterados anível de SESSÃO e SISTEMA. Coisas que podem lhe ajudar é : ALTER SESSION SET NLS_LANGUAGE = "PORTUGUESE"; ALTER SESSION SET NLS_TERRITORY = "BRAZIL"; E veja se começa a aceitar acentuação! Abraços, :rolleyes: