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.

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()
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 ?
J'ai vraiment juste besoin des data non triées au cas ou

Merci d'avance