Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2004
pepe2000 pepe2000 is offline
Miembro
 
Registrado: dic 2003
Ubicación: Cajamarca
Posts: 93
Poder: 21
pepe2000 Va por buen camino
Unhappy importar de dbf a oracle. deberia ser facil...

Hola a todos.
En un mismo formulario, he puesto una conexion a DBF y otra a ORACLE. Al momento de pasar datos de una tabla a la otra, aparece un error que pertenece a Oracle.
Probando me he dado cuenta que esto sucede en el caso de campos numericos.
RESUMO:
Alguien puede decirme como paso datos numericos de un DBF a Oracle?
Muchas gracias
Responder Con Cita
  #2  
Antiguo 08-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Seria excelente ver cómo los estas pasando, para sacar algo en claro.

Asi, en frio he de decirte que basta con:

TablaOracleCampo.AsFloat := TablaDBFCampo.AsFloat;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 08-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Unhappy

y por supuesto el error de oracle... es imprescindible!
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 08-03-2004
pepe2000 pepe2000 is offline
Miembro
 
Registrado: dic 2003
Ubicación: Cajamarca
Posts: 93
Poder: 21
pepe2000 Va por buen camino
aqui esta:

el error es:
raised exception class EDBEngineerror with message 'General SQL error.
[Oracle][ODBC][Ora]ORA-01722: numero no válido'. Process stopped.
¿será por el uso de ODBC?. porque importando desde Access a Oracle con:
INSERT INTO T1 SELECT * FROM T2 salía el mismo error (ORA-01722).
Gracias.
Responder Con Cita
  #5  
Antiguo 08-03-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Es posible que en algun registro tengas valores NULL en alguno de tus campos numéricos? Si es así quizá sería bueno traducir los NUL a 0.
__________________
E pur si muove
Responder Con Cita
  #6  
Antiguo 08-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
ORA-01722

ORA-01722invalid number

Cause:The attempted conversion of a character string to a number failed because the character string was not a valid numeric literal. Only numeric fields or character fields containing numeric data may be used in arithmetic functions or expressions. Only numeric fields may be added to or subtracted from dates.

Action:Check the character strings in the function or expression; make sure they contain only numbers, a sign, a decimal point, and the character "E" or "e", then retry the operation.
Seguramente le estas enviando números "formateados" o con una coma como separador de decimales (solamente te reconocerá el punto). Es mejor trabajar directamente con números y no enviar cadenas que contienen números, para evitar estos problemas. De cualquier forma podes enviar una cadena siempre que sigas las recomendaciones de la cita anterior.

El problema no tiene nada que ver con valores NULL, que son perfectamente soportados por Oracle.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 08-03-2004
pepe2000 pepe2000 is offline
Miembro
 
Registrado: dic 2003
Ubicación: Cajamarca
Posts: 93
Poder: 21
pepe2000 Va por buen camino
nada...

he probrado a hacer una tabla DBF, luego otra en ACCESS (con un campo numerico), Luego aplico el siguiente codigo:
Código:
tablaDBF.First;
while not tablaDBF.Eof do begin
   tablaORACLE.append;
   TablaORACLEcampo.asfloat:=TablaDBF.asfloat;
   TablaORACLE.Post;
   TablaDBF.Next
end;
y devuelve el error ORA-01722.
Sé que se trata de campos numericos porque cuando trato de hacer el mismo codigo con strings no tiene problemas.
Espero que me ayuden.
Muchas gracias
Responder Con Cita
  #8  
Antiguo 08-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Quizas sea problema del controlador ODBC que estas usando, que no sabe "platicar" con Oracle y le pasa textos inadecuados. Porque no intentas conectarte directamente a oracle con el BDE, usando el driver Oracle, veras como se arregla el problema y además, te quitas al molesto ODBC del medio.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 08-03-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Cita:
Empezado por jachguate
El problema no tiene nada que ver con valores NULL, que son perfectamente soportados por Oracle.
Eso depende de como le pases los valores. Evidentemente, oracle soporta valores NULL, pero no todas las bases de datos los representan de la misma manera. Además, depende de como esté asignando los valores. Por ejemplo, montado SQL al vuelo podría dar errores.
__________________
E pur si muove
Responder Con Cita
  #10  
Antiguo 08-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Claro marto, a lo que me refería es que el Ora-01722 no tiene nada que ver con valores NULL, salvo claro que intentara insertarse la cadena 'NULL' en un valor numérico, pero por lo ya mencionado, no creo que sea el caso.

Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 08-03-2004
pepe2000 pepe2000 is offline
Miembro
 
Registrado: dic 2003
Ubicación: Cajamarca
Posts: 93
Poder: 21
pepe2000 Va por buen camino
Wink bueno

bueno muchas gracias de todas maneras.
Haré otras pruebas y les comento como quedó todo esto.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:21:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi