Bonjour,
Je souhaite exporter des tables ORACLE en CSV avant purge. Je ne dispose pas de l'accès aux outils oracle exp, ... (uniquement un Toad, python, ...)
Je viens de faire un Python (débutant) qui descend très rapidement ces données en CSV ce qui me convient parfaitement.
Néanmoins, c'est la construction du curseur qui est longue et gourmande, après la descente en CSV est ultra rapide.
La question en fait c'est, Y a t-il un moyen avec Oracle de lire une table en séquentiel sans la phase longue de construction du curseur en limitant au maximum la charge sur le serveur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 # -*- coding: utf-8 -*- import cx_Oracle import csv db = cx_Oracle.connect('U', 'P', 'BDD', encoding="utf-8", nencoding="utf-8") cur = db.cursor() cur.execute('select * from MA_GROSSE_TABLE') csv_file = open("C:\\Users\\MA_GROSSE_TABLE.csv", "w", encoding='utf8') writer = csv.writer(csv_file, delimiter=';', lineterminator="\n", quoting=csv.QUOTE_NONNUMERIC) i = 0 for result in cur.fetchmany(10000000): i = i+1 checkdigit = 9 - (i-1) % 1000 if checkdigit == 0: print(i) writer.writerow(result) cur.close() db.close() csv_file.close()
J'ai vraiment juste besoin des data non triées au cas ou
Merci d'avance
Partager