Acessar campos numéricos do Oracle com o DBExpress pode apresentar problemas de formatação e o erro ???TDBXError with message ‘ORA-01722: número inválido’??? no ApplyUpdates, uma forma de resolver/contornar este problema é definir o parâmetro NLS_NUMERIC_CHARACTERS na conexão do Oracle.

Adicione o código no evento AfterConnect do TSQLConnection:

procedure TMainDM.SQLConnectionAfterConnect(Sender: TObject);
const
  SQL = 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''.,''';
begin
  SQLConnection.ExecuteDirect(SQL);
end;
Bookmark and Share: