Seite 1 von 1
					
				connect to oracle
				Verfasst: Mittwoch 31. Oktober 2007, 08:42
				von mephisto23
				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
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:09
				von lutz.horn
				Vermutlich 
http://pypi.python.org/pypi/cx_Oracle/, auch wenn ich damit keine Erfahrung habe.
 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:17
				von mephisto23
				ich hab mir cx_oracle schon angeschaut... ich hab leider nicht raus gefunden wie das funktionieren soll.
€: hab gerade  SQLObject gefuden. funktioniert es damit.
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:20
				von Leonidas
				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.
 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:25
				von mephisto23
				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
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:29
				von Leonidas
				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.
 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:36
				von mephisto23
				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.
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:47
				von Leonidas
				Hast du den Windows Installer genommen oder selbst kompiliert?
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 09:49
				von mephisto23
				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
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 10:47
				von lutz.horn
				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.
 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 10:53
				von mephisto23
				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?
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 11:03
				von lutz.horn
				Keine Ahnung, ich benutze weder Windows noch Oracle  
 
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.
 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 11:13
				von mephisto23
				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
			 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 11:22
				von Leonidas
				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.
 
			
					
				
				Verfasst: Mittwoch 31. Oktober 2007, 11:30
				von mephisto23
				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