2017-02-17 4 views
1

Ich habe eine Voraussetzung, Oracle DB mit Python zu verbinden und sie als Dataframe zu verdecken. Möchten Sie wissen, welche einfachen Pakete verfügbar sind und wie sie installiert werden?Wie verbinde ich Oracle DB mit meinem Python-Skript?

Ich benutze Anaconda 3 (Python 3.5.2), versuchte ich mit Cx_oracle aber konnte wegen der Abhängigkeiten nicht installieren. Habe von SQLAlchemy gehört und weiß nicht, wie ich es benutzen soll.

+0

SQLAlchemy bringt keine eigenen Treiber mit. Du brauchst immer noch etwas wie 'cx_Oracle'. Können Sie diese Aussage erweitern: "Ich habe es mit cx_oracle versucht, konnte aber wegen Abhängigkeiten nicht installieren"? Die Behebung dieser Probleme ist wahrscheinlich die beste Vorgehensweise. – Chris

+0

Der genaue Fehler, der auftritt, ist "ImportError: DLL laden fehlgeschlagen:% 1 ist keine gültige Win32-Anwendung". Ich habe die vorkompilierte Version Cx_oracle installiert. – prady

+0

An dieser Stelle würde ich diese Frage löschen und eine neue über diesen Fehler stellen. Auf diese Weise wirst du mehr Augen darauf bekommen. – Chris

Antwort

0

Endlich klappte es nach unten folgt,

1.Download und Version 12 von http://www.oracle.com/technetwork/topics/winsoft-085727.html entpacken. 2. Fügen Sie "ORACLE_HOME" als Windows-Umgebungsvariable hinzu und legen Sie den Wert auf ... \ instantclient_12_1 fest (nicht dessen Ordner!). 3. Fügen Sie denselben Pfad zur Umgebungsvariablen "Path" hinzu. 4.Nur jetzt installieren Sie Cx_Oracle. 5. Starten Sie das System neu

Vielen Dank für alle!

0

Ich habe Erfahrung mit SQLAlchemy + MySQL.

Aus der Dokumentation von SQLAlchemy,

engine = create_engine('oracle://username:[email protected]:port/database') ist die Verbindungszeichenfolge.

Wo:

username = username

password = Passwort

host = Hostname/IP zB (127.0.0.1)

port = Portnummer

database = Datenbankname

engine = create_engine('oracle://username:[email protected]:port/database') 
sql = 'Your SQL query in string.' 
df = pd.read_sql(sql,con=engine) 

Dies sollte die SQL-Antwort in einen Datenrahmen lesen.

+0

Versucht löst einen Fehler aus "Kein Modul namens 'cx_Oracle'". Wie ich bereits erwähnt habe, konnte ich cx_oracle wegen Abhängigkeiten nicht installieren. Pip install oder conda install funktioniert nicht. – prady

+0

@ Prady, Mein Schlechter. SQLAlchemy verwendet standardmäßig cx_Oracle. –

Verwandte Themen