connect to oracle

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

hallo

wie kann ich mit python am einfachsten auf eine oracle datenbank verbinden?
hab jetzt schon einige zeit gesucht aber leider nix gefunen (vermutlich falsch gesucht)

vielen vielen dank für eure hilfe. ich bin am verzweifeln.
mfg
mephisto
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Vermutlich http://pypi.python.org/pypi/cx_Oracle/, auch wenn ich damit keine Erfahrung habe.
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

ich hab mir cx_oracle schon angeschaut... ich hab leider nicht raus gefunden wie das funktionieren soll.

€: hab gerade SQLObject gefuden. funktioniert es damit.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ist doch sogar auf der von lutz.horn angegebenen Seite verlinkt: DB-API 2.0. Also kannst du Beispiele für MySQLdb oder psycopg2 fast direkt übernehmen.

Edit: Wenn du ein ORM suchst.. SQLAlchemy kann auch über cx_Oracle auf Oracle-Datenbanken zugreifen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

ich finde auf der seite keinen downlaod für ein lib file... oder sonst was.
wie bau ich sowas in mein programm ein?

sorry für die blöden fragen
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mephisto23 hat geschrieben:ich finde auf der seite keinen downlaod für ein lib file... oder sonst was.
Also ich schon, sogar eine Menge. Du lädst eben das passende Paket runter, installierst es (es gibt eine README-Datei, die kannst du dir durchlesen wenn du Probleme hast) und kannst es dann nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

danke. das hab ich schon versucht...
kann es aber nicht importieren, ich bekomme immer die meldung:

Traceback (most recent call last):
File "<pyshell#2>", line 1, in -toplevel-
import cx_Oracle
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

die datei cx_Oracle hab ich aber wie in der readme steht im python verzeichnis.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hast du den Windows Installer genommen oder selbst kompiliert?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

windows installer

hab es in einer vm ware gemacht. also alles neu.
habe diese file verwendet: Windows Installer (Oracle 10g, Python 2.4)

wenn ich die cx_Oracle datei in das lib verzeichnis kopier passiert auch nichts
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Das Problem gab es schon eimal: http://www.python-forum.de/topic-4763.h ... oracle+dll

Ansonsten ergibt eine Websuche eher den Hinweis, dass es sich um Versionsprobleme handeln könnte.
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

ein installationsproblem scheint es nicht zu sein.
im pathbrowser seh ich die datei.

€: mit einer älteren version funktioniert es auch nicht

normalerweiße sollte es doch gehn einfach die datei cx_Oracle.pyd in den lib ordner zu kopieren oder?
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Keine Ahnung, ich benutze weder Windows noch Oracle :wink:

Unter Linux läuft das so:

Code: Alles auswählen

lutz@hume ~ % easy_install cx_Oracle
Searching for cx-Oracle
Reading http://cheeseshop.python.org/pypi/cx_Oracle/
Reading http://cx-oracle.sourceforge.net
Reading http://cheeseshop.python.org/pypi/cx_Oracle/4.3.3
Best match: cx-Oracle 4.3.3
Downloading http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-4.3.3.tar.gz?download
Processing cx_Oracle-4.3.3.tar.gz
Running cx_Oracle-4.3.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-I_-rP0/cx_Oracle-4.3.3/egg-dist-tmp-ko0ytf
error: cannot locate an Oracle software installation
Das hilft Dir zwar nicht, deutet aber darauf hin, dass eine lokale Installation von Oracle benötigt wird.
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

ok. dann bringt mir das leider nichts.
oracle läuft momentan auf einem testserver
und die produktive maschiene auf der das ganze laufen soll steht in einem Bundesrechenzentrum
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lutz.horn hat geschrieben:Das hilft Dir zwar nicht, deutet aber darauf hin, dass eine lokale Installation von Oracle benötigt wird.
Zum kompilieren werden wohl die Oracle-Header benötigt, das stimmt.

Ich würde ja vorschlagen mit `ldd` zu schauen, gegen welche DLLs die `cx_Oracle.pyd` gelinkt ist. Vielleicht reicht es, Oracle 10g Express Edition zu installieren um die nötigen DLLs zu bekommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mephisto23
User
Beiträge: 18
Registriert: Montag 10. September 2007, 13:47

normalerweiße müsste es doch dastehn wenn einen dll fehlst. oder liege ich da falsch?

edit: habs gerade auf dem pc eines kollegen getestet. wenn man den oracle 10g client drauf hat funktionierts
Antworten