problema com o dbExpress x Oracle no cliente

21/08/2006

0

no servidor:
Oracle Database 10g Release 2 (10.2.0.1.0)
com windows 2003

no cliente:
Oracle Database 10g Client Release 2 (10.2.0.1.0)
com windows xp sp2
DBExpress do delphi 7.1

campo to tipo varchar2, as na temtei nvarchar e tambem deu problema

insert no servidor
Fábio
select no servidor
Fábio
select no cliente
Fabio

insert no cliente
Fábio
select no servidor
F¿bio
select no cliente
F?bio


Fabio_newinf

Fabio_newinf

Responder

Posts

21/08/2006

Rosterne

Veja se o CHARACTER SET do seu cliente é o mesmo do SERVIDOR e também atente pra variável NLS_LANG.

set essa variável.

Ex:

NLS_LANG = AMERICAN_AMERICA.WE8MSWIN1252.


Abraço.


Responder

21/08/2006

Fabio_newinf

desculpe mas não sei como fazer o que vc falou. o que estou fazendo é exetando estes sql depois de conectar:

nSQLConnection.ExecuteDirect(
´ALTER SESSION SET NLS_LANGUAGE = ´BRAZILIAN PORTUGUESE´´);
nSQLConnection.ExecuteDirect(
´ALTER SESSION SET NLS_TERRITORY = BRAZIL´);
nSQLConnection.ExecuteDirect(
´ALTER SESSION SET NLS_DATE_FORMAT = ´´DD/MM/YYYY HH24:MI:SS´´´);
nSQLConnection.ExecuteDirect(
´alter session set NLS_NUMERIC_CHARACTERS=´´.,´´´);

tanto no servidor como no cliente.

e tambem nao sei como trocar/setar NLS_LANG e o CHARACTER SET, quais os passos.


Responder

21/08/2006

Rosterne

Pra setar o valor NLS_LANG faça o seguinte:

Windows:

start --> run --> regedit

vá em HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ORACLE_HOME

insira:

Value Name: NLS_LANG
Value Data: AMERICAN_AMERICA.WE8MSWIN1252

Linux:

export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1


Já o CHARACTER SET do banco não pode ser alterado. Para isso vc deverá fazer um export full e dps um import full.

Abraço.


Responder

22/08/2006

Fabio_newinf

o CHARACTER SET e NLS_LANG no servidor estao correto, mas no cliente nao sei, inseri as chaves no regristro e nao adiantou. o que devo instalar no cliente, do oracle, eu tenho o 10201_client_win32.zip que baixei em [url]http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html[/url] mas tinha instalados todos menos o Administrador (555MB) [img:94e73c5fd3]http://img152.imageshack.us/img152/5293/capture20060822095406ek7.jpg[/img:94e73c5fd3] depois de instalar ele funcionou, o que é muito para uma estacao, o que realmente eu deveria ter instalado,
esta sao as opcoes:
[img:94e73c5fd3]http://img201.imageshack.us/img201/2285/capture20060822095825cm8.jpg[/img:94e73c5fd3]
[img:94e73c5fd3]http://img170.imageshack.us/img170/2286/capture20060822095831ep1.jpg[/img:94e73c5fd3]
[img:94e73c5fd3]http://img170.imageshack.us/img170/3304/capture20060822095835eh6.jpg[/img:94e73c5fd3]

alguem tem ideia de qual é:


Responder

22/08/2006

Rosterne

Cara não sei qual feature vc deve selecionar.

O NLS_LANG é o CHARACTERSET do cliente, ou melhor dizendo, a forma representativa do CHARACTAERSET. Essa variável deve está compatível com a do banco.

set ela no sistema:

vá em Properties em My Computer na aba Advanced.

Em Environment Variable insira o valor de NLS_LANG em System Variable.

Essa forma tem precedência sobre o regedit.


Pra ver se o sqlplus está conseguindo ver valor do NLS_LANG do seu regitro, dê o seguite comando:

SQL> @.[¬NLS_LANG¬)

Caso o seu cliente esteja conseguindo ver o valor no registro, o mesmo estará entre colchete.

SP2-0310: unable to open file ´.[AMERICAN_AMERICA.WE8MSWIN1252)´

Espero ter ajudado.


Responder

28/08/2006

Rosterne

Esqueci de mencionar...

Não sei se irá resolver ou se já resolveu, mas tente setar o NLS_LANG do prompt do DOS.

AMERICAN_AMERICA.US8PC437

Coloque na variável de sistema em ´Meu Computador´ na aba Avançado.

ou

set NLS_LANG=AMERICAN_AMERICA.US8PC437

O sqlplus usa o prompt do DOS e como consequência a variável NLS_LANG é definida com um valor diferente, conforme acima.

Espero ter ajudado.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar