import cx_Oracle

G

GrayGeek

After cx_Oracle and the related Oracle tools for Python 2.2.3 +
Boa-constructor on Win2000, I added
"import cx_Oracle"
to the top of a test script.
It gives me an error about being unable to find the OCISetDefault entry
point in 'oci.dll'.
Google says nothing about this error, and neither does the cx_Oracle author.
Anyone have a solution for this problem?
 
?

=?ISO-8859-1?Q?Bernard_Delm=E9e?=

It gives me an error about being unable to find the OCISetDefault entry
point in 'oci.dll'.

cx_Oracle works on top of the regular oracle client, which you'll
need to install before it works. The OCI libraries are part of that.
 
G

GrayGeek

Bernard said:
cx_Oracle works on top of the regular oracle client, which you'll
need to install before it works. The OCI libraries are part of that.

I have it installed, and have used it to create webpages using Oracle's
HTP.P function, and I also accessed tables on the Oracle9 server from JDev9
and from PLSQLDeveloper. The oci.dll is in the Oracle Home/dll directory.
As my first post indicated, cx_Oracle is able to see oci.dll, it just can't
communicate with it properly.
???
 
U

Uwe Hoffmann

GrayGeek said:
Bernard Delmée wrote:




I have it installed, and have used it to create webpages using Oracle's
HTP.P function, and I also accessed tables on the Oracle9 server from JDev9
and from PLSQLDeveloper. The oci.dll is in the Oracle Home/dll directory.
As my first post indicated, cx_Oracle is able to see oci.dll, it just can't
communicate with it properly.
???
i think that the binaries were built against another version of oracle.
i had a similar problem with DCOracle2 (versions 8.0.5 vs. 8.1.7 or
7.3.3 vs. 8.0.5).
As far as i remember OCISetDefault was one of the problematic symbols.
 
G

GrayGeek

Uwe said:
i think that the binaries were built against another version of oracle.
i had a similar problem with DCOracle2 (versions 8.0.5 vs. 8.1.7 or
7.3.3 vs. 8.0.5).
As far as i remember OCISetDefault was one of the problematic symbols.

I'm hoping that we can switch from Java to Python but since we are
standardizing on Oracle having a reliable Python connection to Oracle 9i is
important. mmm... Maybe I can use PostgreSQL for a proof of concept...
 
A

Andy Todd

GrayGeek said:
Uwe Hoffmann wrote:




I'm hoping that we can switch from Java to Python but since we are
standardizing on Oracle having a reliable Python connection to Oracle 9i is
important. mmm... Maybe I can use PostgreSQL for a proof of concept...

Is $ORACLE_HOME/bin on your path? This is how cx_Oracle picks up the
oci.dll. Its not necessary for the Oracle toolks like JDeveloper and
SQL*Plus, but its essential for third party tools.

You don't mention which version of Oracle you are using. There are
binaries for either Oracle 8i or 9i with Python 2.2 on the home page
(http://www.computronix.com/utilities.shtml#Oracle) but they won't work
with earlier versions of Oracle. Although, with a bit of luck and a
following wind the 8i binary can be used to access a 9i database (it
just can't do anything with the new features). But on the whole you will
be better off getting the appropriate driver for your database version.

Regards,
Andy
 
G

GrayGeek

Andy said:
Is $ORACLE_HOME/bin on your path? This is how cx_Oracle picks up the
oci.dll. Its not necessary for the Oracle toolks like JDeveloper and
SQL*Plus, but its essential for third party tools.

Yes. cx_Oracle has no problem finding oci.dll, it just can find the right
'entry point'.
You don't mention which version of Oracle you are using. There are
binaries for either Oracle 8i or 9i with Python 2.2 on the home page
(http://www.computronix.com/utilities.shtml#Oracle) but they won't work
with earlier versions of Oracle. Although, with a bit of luck and a
following wind the 8i binary can be used to access a 9i database (it
just can't do anything with the new features). But on the whole you will
be better off getting the appropriate driver for your database version.

I started using Python 2.3 and when I ran into this problem my first tack
was to remove Python 2.3 and revert to Python 2.2, but Python 2.2 shows the
same problem. We use both Oracle 8i and Oracle 9i. I am attempting to
connect to my Oracle 9i database. I have tried both binaries and the
"import cx_Oracle" dies in both using Python 2.2 against Oracle 9i.
 
W

Waldemar Osuch

GrayGeek said:
Yes. cx_Oracle has no problem finding oci.dll, it just can find the right
'entry point'.


I started using Python 2.3 and when I ran into this problem my first tack
was to remove Python 2.3 and revert to Python 2.2, but Python 2.2 shows the
same problem. We use both Oracle 8i and Oracle 9i. I am attempting to
connect to my Oracle 9i database. I have tried both binaries and the
"import cx_Oracle" dies in both using Python 2.2 against Oracle 9i.

I had similar problem once on a machine with two Oracle installations.
cx_Oracle was finding oci.dll all right but it was the wrong one.
When I found a machine with only one version of Oracle the problem
went away.
After this hurdle was over I had nothing but positive impressions from
using cx_Oracle module.

waldemar
 
G

GrayGeek

Waldemar said:
I had similar problem once on a machine with two Oracle installations.
cx_Oracle was finding oci.dll all right but it was the wrong one.
When I found a machine with only one version of Oracle the problem
went away.
After this hurdle was over I had nothing but positive impressions from
using cx_Oracle module.

waldemar

mmm... the only Oracle onnection on my box is for the 9i database.
 
A

Andy Todd

GrayGeek said:
Waldemar Osuch wrote:




mmm... the only Oracle onnection on my box is for the 9i database.

So, just to clarify, on your Windows box you now have *only* Python 2.2
and the Oracle 9i client? I'm presuming also that your database is on
another machine. And you've installed the appropriate cx_Oracle binary?
Works for me;

PythonWin 2.2.1 (#34, Apr 9 2002, 19:34:33) [MSC 32 bit (Intel)] on win32.
Portions Copyright 1994-2001 Mark Hammond ([email protected]) -
see 'Help/About PythonWin' for further copyright information.
>>> import cx_Oracle
>>> cx_Oracle.version '3.1'
>>> db=cx_Oracle.connect('andy/andy@melchett')
>>> cursor=db.cursor()
>>> cursor.execute("SELECT user FROM dual")
[ said:
>>> print cursor.fetchall() [('ANDY',)]
>>>

I also tried it with cx_Oracle version 2.5a, and then on my other
machine with Python 2.3, the 9i client and version 3.0a of cx_Oracle.

So, my guess is that you are still suffering from a DLL confusion
(somewhere).

Regards,
Andy
 
G

GrayGeek

Andy said:
So, just to clarify, on your Windows box you now have *only* Python 2.2
and the Oracle 9i client? I'm presuming also that your database is on
another machine. And you've installed the appropriate cx_Oracle binary?
Works for me;

Your assumptions are correct. But, it doesn't work for me.
PythonWin 2.2.1 (#34, Apr 9 2002, 19:34:33) [MSC 32 bit (Intel)] on
win32. Portions Copyright 1994-2001 Mark Hammond
([email protected]) - see 'Help/About PythonWin' for further
copyright information.
import cx_Oracle
cx_Oracle.version '3.1'
db=cx_Oracle.connect('andy/andy@melchett')
cursor=db.cursor()
cursor.execute("SELECT user FROM dual")
[ said:
print cursor.fetchall() [('ANDY',)]

I also tried it with cx_Oracle version 2.5a, and then on my other
machine with Python 2.3, the 9i client and version 3.0a of cx_Oracle.

So, my guess is that you are still suffering from a DLL confusion
(somewhere).

Probably true, but JDev9 and PSQLDeveloper doesn't have any connection
problems.
??
 
A

Andy Todd

[snip]
So, just to clarify, on your Windows box you now have *only* Python 2.2
and the Oracle 9i client? I'm presuming also that your database is on
another machine. And you've installed the appropriate cx_Oracle binary?
Works for me;


Your assumptions are correct. But, it doesn't work for me.

PythonWin 2.2.1 (#34, Apr 9 2002, 19:34:33) [MSC 32 bit (Intel)] on
win32. Portions Copyright 1994-2001 Mark Hammond
([email protected]) - see 'Help/About PythonWin' for further
copyright information.
import cx_Oracle
cx_Oracle.version '3.1'
db=cx_Oracle.connect('andy/andy@melchett')
cursor=db.cursor()
cursor.execute("SELECT user FROM dual")
[ said:
print cursor.fetchall() [('ANDY',)]

I also tried it with cx_Oracle version 2.5a, and then on my other
machine with Python 2.3, the 9i client and version 3.0a of cx_Oracle.

So, my guess is that you are still suffering from a DLL confusion
(somewhere).


Probably true, but JDev9 and PSQLDeveloper doesn't have any connection
problems.
??

Well, you've got me beaten. I tried to break my system by downloading
the Windows binary for Python 2.2 and Oracle8i, even though I have the
9i client - and it still worked.

The only combination I haven't tried, and I'm not going to, is the
cx_Oracle binary built against the Oracle9i client with the Oracle8i
client software which I suspect would break in the manner you describe.

As many people are successfully using cx_Oracle and you are the only one
seeing this problem I still suspect the solution to your problem is in
the combination of software you have running on your machine rather than
a bug in cx_Oracle, Python or Oracle.

Officially-throwing-in-the-towel-ly y'rs,
Andy
 
G

GrayGeek

Andy said:
[snip]
mmm... the only Oracle onnection on my box is for the 9i database.


So, just to clarify, on your Windows box you now have *only* Python 2.2
and the Oracle 9i client? I'm presuming also that your database is on
another machine. And you've installed the appropriate cx_Oracle binary?
Works for me;


Your assumptions are correct. But, it doesn't work for me.

PythonWin 2.2.1 (#34, Apr 9 2002, 19:34:33) [MSC 32 bit (Intel)] on
win32. Portions Copyright 1994-2001 Mark Hammond
([email protected]) - see 'Help/About PythonWin' for further
copyright information.
import cx_Oracle
cx_Oracle.version
'3.1'
db=cx_Oracle.connect('andy/andy@melchett')
cursor=db.cursor()
cursor.execute("SELECT user FROM dual")
[<StringVar object at 0x012AAF08>]
print cursor.fetchall()
[('ANDY',)]


I also tried it with cx_Oracle version 2.5a, and then on my other
machine with Python 2.3, the 9i client and version 3.0a of cx_Oracle.

So, my guess is that you are still suffering from a DLL confusion
(somewhere).


Probably true, but JDev9 and PSQLDeveloper doesn't have any connection
problems.
??

Well, you've got me beaten. I tried to break my system by downloading
the Windows binary for Python 2.2 and Oracle8i, even though I have the
9i client - and it still worked.

The only combination I haven't tried, and I'm not going to, is the
cx_Oracle binary built against the Oracle9i client with the Oracle8i
client software which I suspect would break in the manner you describe.

As many people are successfully using cx_Oracle and you are the only one
seeing this problem I still suspect the solution to your problem is in
the combination of software you have running on your machine rather than
a bug in cx_Oracle, Python or Oracle.

Officially-throwing-in-the-towel-ly y'rs,
Andy

Thanks for the effort, Andy. I think I will uninstall everything (except my
Oracle client) and reinstall.... again. Ya never know. That MS register
can do funny things....
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,736
Latest member
zacharyharris

Latest Threads

Top