10
votes

Comment exporter une table en format CSV ou Excel

J'ai besoin d'exporter une table Oracle sur un format de fichier CSV / Excel (ainsi que les en-têtes de colonne). Une solution via cx_oracle ou via SQLPLUS Bienvenue.

code Python du commentaire: xxx


4 commentaires

Le module csv est facile à utiliser. S'il vous plaît poster le code que vous avez écrit jusqu'à présent.


Con = CX.Connect () Cur = Con.Cursor () Imprimante = CUR.EXECTE (SQLCODE) CONCOMMIT ()


Ce code ne fait rien avec "imprimante" (devrait être appelé E.G. Query_Result). Vous n'avez pas besoin du commit () s'il s'agit d'une requête en lecture seule. Obtenez votre code à la scène où vous pouvez imprimer les résultats de la requête à Stdout. Ensuite, posez une question sur la tâche assez indépendante de créer un fichier CSV etc.


Ne postez pas de code dans un commentaire. Veuillez Mettre à jour la question avec votre code.


3 Réponses :


2
votes

Pour créer un fichier XLS, utilisez XLWT Module à partir du Projet Python-Excel .


0 commentaires

14
votes

Peut-être utiliser le module CSV (à partir de la bibliothèque standard):

import csv
cursor = connection.cursor() # assuming you know how to connect to your oracle db
cursor.execute('select * from table_you_want_to_turn_to_csv')
with open('output_file.csv', 'wb') as fout:
    writer = csv.writer(fout)
    writer.writerow([ i[0] for i in cursor.description ]) # heading row
    writer.writerows(cursor.fetchall())


5 commentaires

Toujours ouvrir les fichiers CSV avec Python2 en mode binaire. Avec Python3, utilisez newline = '' .


Bon point Jean, ajouté. (Je viens de regarder Bugs.python.org/issue4847#msg82661 )


En outre, serait-il possible d'extraire les titres de table avec elle?


Jetez un coup d'œil au curseur.description, dans Modifier ci-dessus ou écrivez simplement les titres comme un tuple - écrivain.writerow (["Heading1 '," Heading2 ", ...,])


Pour un grand nombre de lignes, Tune curseur. Arraysisize pour obtenir des performances optimales.



1
votes