Page 1 of 1

ODAC 6.25.2.15 - ORA-01475 must reparse cursor to change bind variable datatype

Posted: Wed 16 Apr 2008 12:11
by usuarioincorrecto
Hi;

I'd like to report a bug in the ODAC version.
Please, forgive my English grammar, but I'm Spanish.

We have installed ODAC 6.25.2.15 for Delphi 6.
When we have tested our application, an ORA-01475 has raised.

We have found out that:

- When the first record or a field (number type) is null, and the next record is not null, it raises this error.
- If we have a Select statement, and it recovers two fields with the same name, but from different tables, it fails, unless you give them an alias (example: select a.field1, b.field1, ......, from table1 a, table2 a where......). It raises this ORA - 01475

I have seen this problem in the Web.

I have installed previous version of ODAC - 6.25.2.14 for Delphi 6 and it works OK.

I have reinstalled ODAC 6.25.2.15 for Delphi 6 and it has failed again.

... so I will use ODAC 6.25.2.14. It doesn't fail.

I don't know what is wrong, and the changes that have been made, but there exists a quite big error.

Before we installed ODAC 6.25.2.14, with ODAC 4.40.1.18 it worked ok, but with ODAC 6.25.2.15 it fails.

We use Delphi 6 and Oracle 8i.
The Query we use, is in a TdataModule, and we use Master/Detail.
It doesn't matter if we use Direct mode or not. It fails.

I have tried to build a little application to reproduce it, but I haven't been able to reproduce it. Our application is too complex to be sent by email. I will continue searching and if possible, I will send you a little application, but please, I'd like you to search on it.

We have seen this problem occurs when the first record (of a number (8) field type) is NULL, when we recover two fields with the same name but from other tables), and the next record has value...but I haven't been able to find out more information. Sorry.

There exists a problem, but I cannot build a small application to reproduce it.

I think you will ask me to send you an example.... but I cannot reproduce it.

Best Regards.

Posted: Wed 16 Apr 2008 13:27
by jfudickar
But you can use the monitor to collect the executed statements.

Also you can send the select statements and the ddl statements for the base objects.

Greetings
Jens

ORA - 01475

Posted: Wed 16 Apr 2008 14:58
by usuarioincorrecto
Hi;

If I send my SELECT statement, as I said before, It will not be useful for anyone, because you need the Creation Scripts of the Tables, and all their relations, constraints, triggers...

The monitor you are telling me, how do I use it?. Where can I find it?... I'll try it.

But be sure, there exists a bug.

Thanks

Posted: Wed 16 Apr 2008 15:27
by jfudickar
For the download, have a look at
http://www.crlab.com/dbmonitor/download.html

Also you had to look at the monitor component (and the help file of the monitor component).


And about your sql's. For the support it's mostly helpfull to have the create table statements and the select statement.

Beleive me, they can look into this without having the full application.

If you don't want to post it here, send it via mail to the support directly.

Greetings
Jens

... ORA-01475

Posted: Wed 16 Apr 2008 19:10
by usuarioincorrecto
Hi;

OK. I have downloaded it.

But the fact that astonish me, is that with previous version, it works OK, and with this new version, it fails.

Why ???? ... What is different about the way of working with DataType (When it first finds a Null value, and the next record has value) between this version and the previous one ???.

I have tried with a little application, but with a unique Query, created at execution time, it works OK... It fails when the Query is created on a TDataModule, and/or the Select statement includes two or more fields with the same name but from two or more tables of NUMBER TYPE, and/or the first record recovered is null and the second record recovered is not null.
If I give an Alias to these fields with the same name, but from different tables, it works ok.
It also works ok, if I write a NVL(FIELDNAME, 0) in the SELECT statement to avoid NULL values in the first record.

The error always raises when I try to do the QUERY.NEXT function, inside a WHILE structure. It raises when It the Query tries to move to the next record.

I'll install monitor, and I'll try to build a small application.

Thank you.
Regards

ORA-01475 must reparse cursor to change bind variable datatype

Posted: Mon 21 Apr 2008 08:39
by usuarioincorrecto
Hi;

I have reproduced the problem, and I've sent a little application to your support team.

The problem is when using MASTER/DETAIL, a MasterField, a DataSource, a TOraTable and a TOraQuery, (I don't know the exact circunstances.) and when we use ORACLE 8i.
If we use ORACLE 10g, it works OK.

We work with Delphi 6 and ORACLE 8i, and nowadays, trying the application with ORACLE 10g.

With previous ODAC version (ODAC PROFESSIONAL 6.25.2.14), it WORKS OK with ORACLE 8i or ORACLE 10g.

Is now, with ODAC PROFESSIONAL 6.25.2.15, when we have seen the problem.

I beg you to respond me as soon as possible.

Thank you
Best Regards.