[pyar] pyodbc con oracle graba mal los datos

Mariano Mara mariano.mara en gmail.com
Mar Abr 22 12:28:22 ART 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 22/04/14 10:32, Javier Marcon wrote:
> El 22/04/14 09:42, Javier Marcon escribió:
>> El 21/04/14 17:58, Mariano Mara escribió:
>>> On 21/04/14 17:34, Javier Marcon wrote:
>>>> Gracias, probé cambiando los valores de cantidad a int y me
>>>> sigue pasando lo mismo. Aparte graba los articulos repetidos
>>>> (repite siempre el primero) pero debería grabarlos como son
>>>> (todos distintos).
>>> 
>>> Así como lo contás, el error no tiene mucho sentido, me parece
>>> que está quedando algún dato fuera: * el problema es
>>> reproducible con un ejemplo autocontenido? o sea, fuera de tu
>>> aplicación, una simple función que haga lo que queres hacer,
>>> confirme la transacción y termine? ¿lo probaste así? * para
>>> descartar que el problema es algo del driver, deberías instalar
>>> cx_oracle (con instant client de oracle para minimizar los 
>>> instalables) y probar el mismo problema con el driver nativo,
>>> sin pyodbc. Otra vez, una rutina aislada que ejecute el código
>>> debería ser útil (total la dbapi de python implementa siempre
>>> el mismo protocolo para todos los drivers asi que en ejemplo
>>> sirve para más de un driver con nulos o mínimos cambios).
>>> 
>> Gracias. probé poner las sentencias directamete en un archivo 
>> (pastebin.com/HMRR72PU) pero me da el error de
>> "pyodbc.ProgrammingError: ('42000', '[42000]
>> [Oracle][ODBC][Ora]ORA-01460: unimplemented or unreasonable
>> conversion requested\n (1460) (SQLExecDirectW)')"El python está
>> corriendo en un Windows (con Oracle Client 11g) y el Oracle está
>> en un linux.
>> 
>> Gracias,
>> 
>> Javier.
>> 
> Lo raro es que si grabo con pyodbc en Sql Server funciona
> correctamente, si grabo con cx_oracle en Oracle funciona
> correctamente pero si grabo con pyodbc en Oracle me pasa lo que
> mencioné antes.
> 
> Gracias,
> 
> Javier.

Evidentemente es un problema de entendimiento entre el odbc y oracle.
Yo diría que no está interpretando correctamente algún tipo de datos
que le estás pasando con lo que espera la base de datos: revisaría muy
bien con que tipo de datos está la tabla y como estás asegurandote que
pase correctamente.
Fuera de eso, al ser un problema puntual de pyodbc, revisaría el bug
tracker o lista de correo de esa librería para ver si a alguien más le
ha pasado y como se solucionó y, en último caso, mandaría un pedido de
ayuda por la vía que la documentación de la librería así lo indique,
con el ejemplo reproducible completo del problema para que alguien con
más conocimiento específico te ayude.

Mariano


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTVoqLAAoJEFr6LpWE4pnd31cH+wbqLSK1yKJV1sAj48m1LSWR
osq7v9lcZBJjp6mhvl7WywfqUNz4kVQTIFI2YjHvrQVCXDjUnlx7x+nFXvP6GqoG
0picak0RY+suSrNCmGztB4i3DbdFwTgu9J9CkoHgoNzANVgSRmOvUi9nbYh17evn
gNC/io+RrhN6riwNbBqx9iUWvqnWHgCs8vncLbcq8z8XfuOOqlVBlPGra/zcJKBJ
8IXJ93V1EF7OvxHesiZCYobhQfh1zPRVAm7RQdRC9RRgvZR26cLaFRNfXlFQ20V0
4rSr7vQUdO9FMQTRFja+1/70sbsz4pVmH6WUst8neENiXaGha4JEKmt90bG/tpI=
=SPlt
-----END PGP SIGNATURE-----


More information about the pyar mailing list