Thread: Global Temporary tables for returning resultsets to ODP.NET client app


Permlink Replies: 3 - Pages: 1 - Last Post: Jun 12, 2008 2:19 PM Last Post By: gkk1969
gkk1969

Posts: 56
Registered: 10/07/02
Global Temporary tables for returning resultsets to ODP.NET client app
Posted: Jun 9, 2008 9:52 AM
Click to report abuse...   Click to reply to this thread Reply
Hi folks,

We get an "ORA-01410: invalid ROWID" exception in our ClickOnce deployed ODP.NET application.

We have WinXP, ODP.NET, ODP.NET 11g, .NET 2.x,ClickOnce, we use Proxy Authentication, we use Connection Pooling, and we use Global Temporary tables for returning resultsets to our client.

Does ODP.NET 11g with connection pooling and proxy authentication support Global Temporary tables for returning resultsets to ODP.NET client app?

Thank you for your time!

Regards,

gkk1969
gdarling

Posts: 1,176
Registered: 01/10/01
Re: Global Temporary tables for returning resultsets to ODP.NET client app
Posted: Jun 9, 2008 11:28 AM   in response to: gkk1969 in response to: gkk1969
Click to report abuse...   Click to reply to this thread Reply
Hi,

Is this behavior specific to proxy authentication? The usual "problem" with global temporary tables is that the data is deleted on commit, and the default for odp.net is to commit.
Generally you work around it by changing the temp table to be ON COMMIT PRESERVE ROWS or wrapping the ODP code in a local transaction.
Does the behavior still occur with connection pooling off? What about with Statement Cache Size=0?

Cheers
Greg
SFT2

Posts: 321
Registered: 03/11/02
Re: Global Temporary tables for returning resultsets to ODP.NET client app
Posted: Jun 10, 2008 3:45 AM   in response to: gkk1969 in response to: gkk1969
Click to report abuse...   Click to reply to this thread Reply
Where did you get this error from? I doubt that that is a SELECT statement ("returning resultsets to our client"). Moreover this error is specific to Oracle 9 and earlier and is absent in Oracle10g. The error description is

Cause: A ROWID was entered incorrectly. ROWIDs must be entered as formatted hexadecimal strings using only numbers and the characters A through F. A typical ROWID format is '000001F8.0001.0006'.
Action: Check the format, then enter the ROWID using the correct format. ROWID format: block ID, row in block, file ID


If you use ROWIDs to access rows in GTT and use inexistent ROWID then you should have got empty result set, not this error.
gkk1969

Posts: 56
Registered: 10/07/02
Re: Global Temporary tables for returning resultsets to ODP.NET client app
Posted: Jun 12, 2008 2:19 PM   in response to: gdarling in response to: gdarling
Click to report abuse...   Click to reply to this thread Reply
Thanks Greg,

Your suggestion did the trick!

regards,

gkk1969
Legend
Guru Guru : 2500 - 1000000 pts
Expert Expert : 1000 - 2499 pts
Pro Pro : 500 - 999 pts
Journeyman Journeyman : 200 - 499 pts
Newbie Newbie : 0 - 199 pts
Oracle ACE Director
Oracle ACE Member
Oracle Employee ACE
Helpful Answer (5 pts)
Correct Answer (10 pts)

Point your RSS reader here for a feed of the latest messages in all forums