Comment stocker la database Oracle et la convertir en msaccess / excel

J'ai un problème, l'un des besoins de mon client

un programme qui se connecte au server de database oracle, et téléchargez / enregistrez la table dans un file local (par exemple, Microsoft Access ) comme une conversion après que ce client peut entrer un file excel et il sera ajouté à ce file local

mon client souhaite que le file local / la database puisse être stocké hors connection, dans le dossier du programme. Ils veulent que le programme effectue tout le travail afin qu'ils ne me donnent qu'un user et qu'ils passent dans leur database avec un exemple de arrays et les excel qui seront embeddeds au client

et le programme fera le rest download le tabel, convertir, entrer, et le dernier, il va imprimer datatables

Je sais que de nombreux tutoriels viennent avec l'idée de connecter / mettre à jour oracle avec java (avec OLDBC-JDBC) ou ouvrir et modifier le file msaccess (avec la conversion Excel)

mais pour les combiner tous? Comment pouvez-vous le faire dans java?

J'ai déjà vu quelqu'un faire cela, mais dans VB6 et son code est un peu désordonné

FYI: datatables sont GRANDES , elles utilisent environ 600 000 lignes et elles sont mises à jour une fois par mois

Une approche que vous voudrez peut-être explorer si la sortie souhaitée est MS Access est Jackcess . L'un des exemples qu'ils donnent sur leur page Web consiste à copyr une table externe vers MS Access, et c'est tout le code que vous semblez nécessaire:

Database.open(new File("my.mdb")).copyTable("Imported", resultSet); 

Je n'ai pas d'expérience de première main avec cette bibliothèque, mais cela semble plutôt sympa.

Pour la sortie Excel, je suis d'accord avec Chris, POI est le path à parcourir. Cependant, il existe aussi une bibliothèque appelée jXLS , c'est une couche sur POI et cela simplifie beaucoup la création de feuilles XLS formatées, vérifie cet exemple qui convertit un jeu de résultats JDBC (résultat de la requête d'Oracle) en Excel file.

EDIT: en fonction de votre commentaire sur la réponse de Chris, si en fait, tout ce que vous obtenez est la coordonnée db et l'user et passez, vous devrez:

Étape 1: obtenez les noms de table à l'aide de DatabaseMetaData , schématiquement comme ceci:

 Connection c = DriverManager.getConnection (...); DatabaseMetaData md = c.getMetaData(); ResultSet rs = md.getTables(null, null, "%", null); while (rs.next()) { System.out.println(rs.getSsortingng(3)); } 

Étape 2: itérez sur la list de tables obtenue et effectuez la copy du tableau comme indiqué ci-dessus

Si seulement datatables sont nécessaires, pourquoi ne pas la download comme excel qui peut être rendue très facilement à l'aide de POI d'Apache ? Même Excel peut être servi comme source de données (juste pas MS-Access). Est-ce que votre exigence est seulement de le convertir en MS-Access? Ajoutez plus d'informations sur votre déclaration de problème.