Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Edu

s Oracle 10g

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me passa os valores do seu NLS_DATABASE_PARAMETERS e a configuração regional do servidor, instalação PT ou EN! Abraços, :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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,

Compartilhar este post


Link para o post
Compartilhar em outros sites

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..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.