2009-06-01 10 views

Respuesta

1

Logré hacer esto con cx_Oracle.

Utilicé la función sys.xmltype.createxml() en la instrucción que inserta las filas en una tabla con campos XMLTYPE; luego utilicé prepare() y setinputsizes() para especificar que las variables de vinculación que utilicé para los campos XMLTYPE eran del tipo cx_Oracle.CLOB.

0

(editado para eliminar la mención de un módulo que no es Oracle Python DB-API y agregar alguna información más relevante y con suerte útil).

No conozco ninguna alternativa a cx_oracle (como el autor de DCOracle2 says, "DCOracle2 no está en este momento en buen estado y no hay soporte disponible", por lo que no es realmente una alternativa).

Sin embargo, un reciente article en el propio sitio de Oracle afirma que (al menos con lanzamientos recientes como Oracle 10g XE - y presumiblemente lanzamientos cx_oracle recientes) Python puede trabajar con el soporte XML de Oracle - No sé si el ejemplos en ese artículo pueden ayudarlo a resolver sus problemas, ¡pero espero que sí!

+0

que parece ser para PostgreSQL, Oracle no ... –

+0

Vaya, tienes razón, así que _didn't_ recuerdo mal - lo siento - (Voy a la investigación! esto ahora que tengo un momento, y edito o elimino mi respuesta inútil (con disculpas, nuevamente). –

1

me las arreglé para conseguir que esto funcione, envolviendo la llamada XMLElement en una llamada a XMLType.GetClobVal():

Por ejemplo:

select xmltype.getclobval(xmlelement("rowcount", count(1))) 
from... 

Ni idea de las limitaciones todavía, pero me tiene fuera de problemas. Encontrado la información relevante acerca del sitio de Oracle: Mastering Oracle+Python, Part 1: Querying Best Practices

Cuestiones relacionadas