Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus

Grund für die Herstellung

Ich mache eine Oracle-Webanwendung, aber ich habe es geschafft, Daten zur Bestätigung und Sicherung einfach auszugeben.

Voraussetzungen

OS:Windows 8.1 Python:2.7.10 x64 Erforderliche Module: cx_Oracle, xlwt

Code

output_oracle_to_excel.py


# -*- coding: utf-8 -*-

from __future__ import unicode_literals

import os,sys
import csv
import codecs
import numbers
import unittest
import cStringIO
import itertools

import cx_Oracle

import xlwt

from itertools import chain

os.environ["NLS_LANG"] = "JAPANESE_JAPAN.AL32UTF8"

ORACLE_CONF = {
	'ID'		: 'SCHEMENAME'
	, 'PASS'	: 'SCHEMEPASSWORD'
	, 'HOST'	: '192.168.1.5'
	, 'SID'		: 'XE'
}

def fetchTables( table_name ):
	output_file_name = 'DB_to_Excel_' + HOST + '_' + ID + '_' + table_name + '.xls'

	wb = xlwt.Workbook()				#Erstellen Sie eine neue Arbeitsmappe
	ws = wb.add_sheet( table_name )		#Neues Arbeitsblatt erstellen

	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))

	data_sql = 'select * from "%s"' % table_name
	cur_data = conn.cursor()
	cur_data.execute(data_sql)

	nRow = 0
	nLine = 0
	for value in columns:
		ws.write(nRow, nLine, value) 
		nLine = nLine + 1

	row = cur_data.fetchone()

	nRow	= 1
	while row != None:										#Wenn Sie die Daten haben
		nLine = 0
		for value in row:									#Elementschleife abrufen
			if isinstance( value , cx_Oracle.LOB ):
				value = value.read()
			ws.write(nRow, nLine, value)					#Schreiben Sie in Excel
			nLine = nLine + 1
		nRow = nRow + 1
		row = cur_data.fetchone()							#Zum nächsten Datensatz

	cur_data.close()
	wb.save( output_file_name )							#Excel-Datei speichern


def fetchAllTables( conn ):
	str_sql = "select TABLE_NAME from user_tables where TABLE_NAME LIKE '%USER%' or TABLE_NAME LIKE '%SHOP%' ORDER BY TABLE_NAME"
	cur_tables = conn.cursor()
	cur_tables.execute( str_sql )
	rows = cur_tables.fetchall()
	i = 0
	lst_table = list()
	for row in rows:
		print row[0]
		lst_table.append( row[0] )
		fetchTables(lst_table[i])
		i = i + 1

conn = cx_Oracle.connect( ORACLE_CONF['ID'] , ORACLE_CONF['PASS'] , ORACLE_CONF['HOST'] + '/' + ORACLE_CONF['SID'] )

fetchAllTables( conn )

Kommentar

Oracle-Zeichencode

os.environ["NLS_LANG"] = "JAPANESE_JAPAN.AL32UTF8" Es wird angegeben durch. In letzter Zeit hat die Anzahl von UTF-8 zugenommen, daher denke ich, dass UTF-8 so verwendet werden kann, wie es ist.

Verbindungsinformationen

ORACLE_CONF = { 'ID' : 'SCHEMENAME' , 'PASS' : 'SCHEMEPASSWORD' , 'HOST' : '192.168.1.5' , 'SID' : 'XE' } Bitte ändern Sie dies entsprechend Ihrer Umgebung

Name der Ausgabedatei

def fetchTables( table_name ): output_file_name = 'DB_to_Excel_' + HOST + '' + ID + '' + table_name + '.xls'

Der Dateiname wird im Teil von generiert. Wenn die mit HOST: 192.168.1.5 und ID: SCHEMENAME erfasste Tabelle beispielsweise "TEST_USER" lautet, DB_to_Excel_192.168.1.5_SCHEMENAME_TEST_USER.xls Das Ausgabeergebnis wird in der Datei gespeichert.

Wenn Sie die Ausgabetabelle eingrenzen oder nicht eingrenzen

def fetchAllTables( conn ): str_sql = "select TABLE_NAME from user_tables where TABLE_NAME LIKE '%USER%' or TABLE_NAME LIKE '%SHOP%' ORDER BY TABLE_NAME" Es ist möglich, wenn Sie die WHERE-Klausel von ändern.

Recommended Posts

Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus
Ändern Sie das Standardausgabeziel in eine Datei in Python
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Konvertieren Sie eine Excel-Datei für verschiedene Zwecke in Python in Text
Python> Bibliothek> Betriebssystem> os.walk ()> Verzeichnisstruktur / Implementierung abrufen, um jeden Dateipfad im angegebenen Verzeichnis abzurufen
So stellen Sie die Ausgabeauflösung für jeden Keyframe in Blender ein
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
[Python] Lesen Sie die angegebene Zeile in der Datei
Öffnen Sie eine Excel-Datei in Python und färben Sie die Karte von Japan
Python-Skript, das alle Datensätze der Oracle-Tabelle in eine CSV-Datei ausgibt
Wechseln Sie das zu ladende Modul für jede Ausführungsumgebung in Python
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Geben Sie die Anzahl der CPU-Kerne in Python aus
Passen Sie die Verteilung jeder Gruppe in Python an
Ausgabe in Form eines Python-Arrays
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Schlechter Beitrag zur Verwendung von "animeface-2009" in Python und Implementierung der Funktion zur Ausgabe in eine XML-Datei im PASCAL VOC-Format
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
[Bash] Übergibt den Inhalt der Datei beim Lesen an Variablen für jede Spalte
Vergleichen Sie die Summe jedes Elements in zwei Listen mit dem in Python angegebenen Wert
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
So ermitteln Sie die Anzahl der Stellen in Python
Option [Python] zum Deaktivieren der Ausgabe von click.progressbar
[Python] So geben Sie Listenwerte der Reihe nach aus
Um das Äquivalent von Rubys ObjectSpace._id2ref in Python zu tun
Verwenden Sie Pandas, um nur die angegebenen Zeilen des Datenrahmens in die Excel-Datei zu schreiben
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
Geben Sie "Farn programmgesteuert zeichnen" in den Zeichenprozess in Python ein
Erstellen Sie eine Multiplikationstabelle für jedes Element in einer Tabelle (Python).
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
[Python] So ändern Sie die in xlsb gespeicherte EXCEL-Datei in xlsx
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
[Python] Programmieren, um die Nummer von a in einer Zeichenfolge zu finden, die eine bestimmte Anzahl von Malen wiederholt.
So ermitteln Sie die kumulative Summe für jede Gruppe mithilfe von DataFrame in Spark [Python-Version]
Geben Sie die in S3 Bucket enthaltene Schlüsselliste in eine Datei aus
So bestimmen Sie die Existenz eines Selenelements in Python
So ändern Sie die Protokollstufe von Azure SDK für Python
Wrap (Teil der) AtCoder Library in Cython zur Verwendung in Python
Wie Sie die interne Struktur eines Objekts in Python kennen
Speichern Sie die Binärdatei in Python
[Python] PCA-Scratch im Beispiel "Einführung in die multivariate Analysemethode"
So überprüfen Sie die Speichergröße einer Variablen in Python
Ausgabe in eine CSV-Datei mit Python
Ändern Sie automatisch die Größe von Screenshots für den App Store für jeden Bildschirm in Python
Schlafverarbeitung für einen bestimmten Zeitraum (Sekunden) oder länger in Python
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
Fühlen Sie sich frei, das Legendenlabel mit Seaborn in Python zu ändern
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
Ich habe versucht, den Inhalt jedes von Python pip gespeicherten Pakets in einer Zeile zusammenzufassen