problema com o dbExpress x Oracle no cliente
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
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
Curtidas 0
Respostas
Rosterne
21/08/2006
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.
set essa variável.
Ex:
NLS_LANG = AMERICAN_AMERICA.WE8MSWIN1252.
Abraço.
GOSTEI 0
Fabio_newinf
21/08/2006
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.
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.
GOSTEI 0
Rosterne
21/08/2006
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.
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.
GOSTEI 0
Fabio_newinf
21/08/2006
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:
alguem tem ideia de qual é:
esta sao as opcoes:
alguem tem ideia de qual é:
GOSTEI 0
Rosterne
21/08/2006
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.
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.
GOSTEI 0
Rosterne
21/08/2006
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.
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.
GOSTEI 0