Problemas com Oracle 9i e Delphi (dbexpress)
Ola estou com dificuldades ao utilizar campos data em uma base em oracle, pois possuo um sistema que roda com uma base PostGreSQL, e necessido converter para ler banco Oracle.
Os problemas que apareceram foi com os campos data que no Oracle é DD/MMM/YYYY e campos numericos com decimais que o separador decimal é o (.) e preciso utilizar a (,).
Alguem sabe como faço para configurar o banco para utilizar a data como dd/mm/yyyy e os numeros com decimais com (,) como separador decimal.
dessa forma minha conversão não seria tão traumatica até mesmo pelo tempo que tenho para fazer isso.
Os problemas que apareceram foi com os campos data que no Oracle é DD/MMM/YYYY e campos numericos com decimais que o separador decimal é o (.) e preciso utilizar a (,).
Alguem sabe como faço para configurar o banco para utilizar a data como dd/mm/yyyy e os numeros com decimais com (,) como separador decimal.
dessa forma minha conversão não seria tão traumatica até mesmo pelo tempo que tenho para fazer isso.
Marcosdoerner
Curtidas 0
Respostas
Rfpsatin
29/03/2004
da uma olhada na view v$parameter e v_nls_parameter (acho). Lá vc encontra as configurações regionais de teu oracle. Vc pode mudar isso setando os novos valores no init.ora. lá vc deve ter um parametro que indica a data e tem um tb que indica o separador decimal. Fale p/ seu DBA dar uma olhada nisso e mudar p/ vc.
GOSTEI 0
Wagnerpb
29/03/2004
Caro amigo...
Quando se acessa usando BDE, ela faz a conversão dos caracteres, no caso do acesso via DBExpress, isso não ocorre por isso é necessário setar os parametros...
Coloquei um SQlQuery com a seguinte linha:
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ´.,´
E no evento AfterConnect do componente SQLConnection chamei o método ExecSQl do SQLQuery, foi a única solução que encontrei...
Tb estou com o mesmo problema nas datas, se vc encontrar uma solução agradeceria se vc repassasse...
Quando se acessa usando BDE, ela faz a conversão dos caracteres, no caso do acesso via DBExpress, isso não ocorre por isso é necessário setar os parametros...
Coloquei um SQlQuery com a seguinte linha:
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ´.,´
E no evento AfterConnect do componente SQLConnection chamei o método ExecSQl do SQLQuery, foi a única solução que encontrei...
Tb estou com o mesmo problema nas datas, se vc encontrar uma solução agradeceria se vc repassasse...
GOSTEI 0
Wagnerpb
29/03/2004
Olha ai!!! acabei encontrando a solução para os demais casos...
Coloque outro SQLQuery com a seguinte linha:
ALTER SESSION SET NLS_DATE_FORMAT = ´DD/MM/YYYY HH:MI:SS´
E no evento AfterConnect do SQLConnection chame o método ExecSQL dessa Query;
Coloque outro SQLQuery com a seguinte linha:
ALTER SESSION SET NLS_DATE_FORMAT = ´DD/MM/YYYY HH:MI:SS´
E no evento AfterConnect do SQLConnection chame o método ExecSQL dessa Query;
GOSTEI 0