Bugs item #1000650, was opened at 2006-05-23 15:36
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000650&group_id=1000125
Category: None
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Nobody (None)
Assigned to: Nobody (None)
Summary: Error in accessing PostgreSQL via unixODBC from Oracle
Initial Comment:
Hello!
We have an Opteron machine running Linux and Oracle 10.1.0.3. We access a PostgreSQL 8.0.3 database running under Linux on an AMD Athlon via unixODBC and the postgresql ODBC driver psqlodbc 8.02.0002.
On the Opteron machine we compiled a postgresql 8.1.3 client (libraries), the unixodbc 2.2.11 framework and the psqlodbc 8.02.0002 driver. Everything was configured so that the binaries are all 32bit as the Oracle hsodbc driver demands.
Here is the error message we get when trying to acces the CRM (postgresql) database via sqlplus ( Oracle 10g ):
SQL> select count(*) from "my_table"@crm;
select count(*) from "my_table"@crm
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][unixODBC]ERROR: current transaction is
aborted, commands ignored until end of transaction block;
Error while executing the query (SQL State: S1000; SQL Code: 1)
ORA-02063: preceding 3 lines from CRM
with best regards
Matthias Weiss
----------------------------------------------------------------------
>Comment By: Ludek Finstrle (luf)
Date: 2006-05-23 17:12
Message:
If it's your first statement to postgresql feel free to attach mylog output. In other way there is new setting for transaction handling in psqlodbc 08.02.0002. I'm sorry I don't have it here so I wrote it only from my mind. There is new automatic rollback per transaction/per statement.
Regards,
Luf
----------------------------------------------------------------------
Comment By: Jonah Harris (jharris)
Date: 2006-05-23 17:05
Message:
THIS IS NOT A BUG. It has to do with the difference in the way Oracle and PostgreSQL view transactions. PostgreSQL aborted the current transaction due to some error in your use of it, Oracle didn't view that as an error so it doesn't know about the "aborted" state. From Oracle, you need to perform an explicit ROLLBACK and then you can use the connection again.
----------------------------------------------------------------------
You can respond by visiting:
http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000650&group_id=1000125