ODP.NET types represent Oracle native datatypes and PL/SQL datatypes as a structure or as a class. ODP.NET type structures follow value semantics, while ODP.NET type classes follow reference semantics. ODP.NET types provide safer and more efficient ways of obtaining Oracle native data and PL/SQL datatypes in a .NET application than .NET types. For example, an OracleDecimal structure holds up to 38 precisions, while a .NET Decimal holds up to only 28 precisions.
Table 3-8 lists datatypes supported by ODP.NET and their corresponding ODP.NET types: datatypes in the first column refer to both Oracle native datatypes and PL/SQL datatypes of that name. Those datatypes that exist only in PL/SQL are indicated by (PL/SQL only) after the datatype name. The entries for the PL/SQL datatypes also represent the subtypes of the datatypes, if any. The third column lists the .NET Framework datatype that corresponds to the Value property of each ODP.NET type.