Ein Python-Skript, das ich zuvor erstellt habe. Gibt den Datensatz der angegebenen Tabelle in eine CSV-Datei aus.
Im Folgenden erfahren Sie, wie Sie cx_Oracle installieren. http://mokky14.hatenablog.com/entry/2014/12/17/150854
tbl2csv.py
#!/usr/bin/python3
import cx_Oracle
import sys
import csv
from itertools import chain
argvs = sys.argv
argc = len(argvs)
if argc != 2:
print('Usage: %s TableName' % argvs[0])
quit()
table_name = argvs[1].upper()
file_name = table_name + '_data.csv'
with cx_Oracle.connect('scott','tiger','xx.xx.xx.xx/tns_service_name') as conn:
#Abrufen des Tabellenspaltennamens
column_name_sql = 'select column_name from user_tab_columns where table_name = :tbl'
cur_columns = conn.cursor()
cur_columns.execute(column_name_sql, tbl=table_name)
columns = cur_columns.fetchall()
cur_columns.close()
columns = tuple(chain.from_iterable(columns))
#Holen Sie sich alle Datensätze in die Tabelle
data_sql = 'select * from %s' % table_name
cur_data = conn.cursor()
cur_data.execute(data_sql)
with open(file_name, 'w') as f:
csv_writer = csv.writer(f)
csv_writer.writerow(columns)
while 1:
rows = cur_data.fetchmany(50)
if len(rows) == 0:
break
csv_writer.writerows(rows)
cur_data.close()
Holen Sie sich 50 Datensätze aus der Tabelle und geben Sie sie in eine Datei aus. Die Verarbeitung endet, wenn die Anzahl der Abrufe 0 erreicht. Ich bin der Meinung, dass der Weg zum Schreiben einer Abrufschleife nicht gut genug ist. ..
Recommended Posts