OracleArrayDataReader / Instantiate Class

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
asaake
Posts: 17
Joined: Tue 25 Mar 2008 16:51

OracleArrayDataReader / Instantiate Class

Post by asaake » Tue 25 Mar 2008 17:09

I'm using an actual trial version of your product for getting an overview if it's usable in our project.

My questions are:

1)
With "Oracle Package Wizard" I've generated an access class for a package.

The result parameter of one package function (GetPicklists) is casted to "OracleArrayDataReader" which seems to be undocumented.

What is the difference to a normal OracleDataReader ?

2)
The result on the PL/SQL side is an Oracle type named "PicklistTT". The hierarchy is:

-- Picklist Entry

CREATE OR REPLACE TYPE PentryT IS OBJECT ( ...)

-- All entries of a Picklist

CREATE OR REPLACE TYPE PentryTT IS TABLE OF PentryT;

-- A Picklist

CREATE OR REPLACE TYPE PicklistT IS OBJECT (
entries PentryTT
...
);

-- All Picklists

CREATE OR REPLACE TYPE PicklistTT IS TABLE OF PicklistT;

A result of this type is returned from the function. I've generated the necessary classes for it with "Oracle Object Wizard".

How do I get the data from OracleArrayDataReader into an aray or a list of my C# PicklistT object?

Thanks,
Andreas

Alexey.mdr
Posts: 729
Joined: Thu 13 Dec 2007 10:24

Post by Alexey.mdr » Wed 26 Mar 2008 13:05

1) This class maintains reading OracleTable and OracleArray types from embedded tables.
The difference between OracleDataReader and OracleArrayDataReader is in the source.
It is either straight database query or the embedded table that has been returned to the client as a parameter value.

2) You can get data from OracleArrayDataReader likewise from OracleDataReader, by reading all elements.
Probably it'd be easier to write code that bypasses the wizard and reads values from the package as OracleTable.

Post Reply