2011-04-01 26 views
7

Tengo 2 bases de datos, Oracle y SQlite. Y quiero crear copias exactas de algunas de las tablas de Oracle en SQLite en una de mis aplicaciones. La mayoría de estas tablas contiene más de 10.000 filas, por lo que copiar cada tabla al pasar cada fila programáticamente no es eficiente. Además, la estructura de la tabla puede cambiar en el futuro, por lo que quiero lograrlo de forma genérica sin codificar las sentencias de SQL. ¿Hay alguna forma de hacer esto?Crear copias de las tablas de la base de datos Oracle en una base de datos SQLite

p.s. - Esta aplicación se está desarrollando utilizando Qt framework. Todas las consultas y bases de datos están representadas por objetos del módulo QtSql.

Respuesta

5

No se puede ayudar con Qt framework, pero para grandes cantidades de datos es mejor usar operaciones de copia masiva.

Exportar datos de Oracle http://download.oracle.com/docs/cd/B25329_01/doc/admin.102/b25107/impexp.htm#BCEGAFAB

Importar datos en SQLite http://www.sqlite.org/cvstrac/wiki?p=ImportingFiles

IHTH

+0

Gracias refugio, para su respuesta rápida. Pero tal como aparece, esta descarga debe realizarse utilizando la interfaz gráfica de usuario Oracle Database XE o SQL * Loader. ¿Pero hay alguna forma de que pueda hacer esto en mi código de aplicación? Si es posible, esta será la solución ideal. – kasper360

+0

Casi siempre hay una forma de ejecutar un programa externo desde el código de la aplicación. Puede ser tan simple como crear una línea de comando como cmdLine = "SQL * Loader out -oTabDelimited -T $ {TableName} -F $ {outFilename}" y usar el sistema cmd para ejecutarlo, es decir, system (cmdLine); (Esta es solo una idea general de cómo hacerlo, así que busque en las páginas de ayuda de su lenguaje en el que está escrito su código. (Qt?) Busque un cmd de ejecución, un cmd de sistema u otro. Entonces puede Úselo con variables como mi ejemplo y repítalo según sea necesario para administrar todas las actividades de DB. Advertencia, la administración de DB en el código puede ser bastante compleja. – shellter

5

Lo que probablemente realmente desea utilizar es el Oracle Database Mobile Server, que permite sincronizar automáticamente un SQLite y una base de datos Oracle .

El lanzamiento reciente de Oracle Database Mobile Server (formalmente llamado Oracle Database Lite Mobile Server) admite la sincronización entre una base de datos Oracle y una base de datos SQLite o Berkeley DB que se ejecuta en el cliente. Admite el intercambio de datos síncrono y asíncrono, así como las comunicaciones seguras entre el cliente y el servidor. Puede configurar el servidor móvil para que se sincronice en función de varias opciones sin la necesidad de modificar la aplicación que está accediendo a la base de datos.

También puede encontrar un excelente discussion forum para las preguntas de los desarrolladores e implementadores que utilizan el servidor móvil.

Cuestiones relacionadas