ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

21
ODP.NET
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    0

Transcript of ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Page 1: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET

Page 2: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Access Oracle from .NET Using C#

Alex Hoyos

Oct 2004

Page 3: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Agenda

• Define MS .NET

• Web development and .NET (basic stuff)

• IDE used

• Different ways of talking to Oracle from .NET

• ODP.NET – crack it open and get it ready

• Samples

Page 4: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

What is MS NET. Architecture  IL (Intermediate Language),

CLR (Common Language Runtime), Base Class Library (BCL) is a common library used by all

languages, GC (Garbage collection) is the responsibility of the CLR, not the language. – .NET 20K feet high view…

Page 5: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

What is MS .NET

OPERATING SYSTEM

CLR - COMMON LANGUAGE RUNTINE

BASE CLASS LIBRARY

ADO.NET

ODP.NET

ASP.NET Web Forms Web Services

Windows FORMS

VB C++ C# J# ..

Page 6: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP + .NET lingo

• Assembly: Microsoft’s term for the module that is created when a DLL or .EXE is complied by a .NET compiler.

ODP.net Assembly is Oracle.DataAccess.dll

Namespaces: Oracle.DataAccess.Client (e.g.

OracleConnection)

Oracle.DataAccess.Types (e.g. OracleClob Class)

Page 7: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Oracle: Best Database for .NET

• ODP.NET allows full access to .NET– No limitation to using .NET functionality.Still requires you install the Oracle Client

Software (9 or above)

Page 8: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Oracle and .NET Data Access

• Oracle Data Provider for .NET (ODP.NET)– Developed by Oracle– Best performing provider– Exposes the most Oracle DB features– Based upon Microsoft ADO.NET spec

• 3rd party Oracle providers– Microsoft .NET Data Provider for Oracle (Microsoft)– Connect for .NET (DataDirect)

• Other Oracle data access methods– OLE DB .NET via OLE DB– ODBC .NET via ODBC

Page 9: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Basics• Available today in production for free

– http://otn.oracle.com/tech/windows/odpnet

– Original release: Dec. 2002

• Can be used with Oracle8, Oracle8i, Oracle9i, and Oracle10g database servers– Database server can be on Unix, Linux, Windows, etc.

– Database client on Windows

• Supports VS.NET 2002 and 2003• Supports .NET Framework 1.0 and 1.1

Page 10: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Object Model

DataSet OracleDataAdapter

OracleTransaction

OracleCommand

OracleConnection

OracleDataReader

Connected Layer(ODP.NET)

DisconnectedLayer

Oracle

OracleCommandBuilder

DataLayer

Page 11: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Features

• Full PL/SQL support– Packaged, non-packaged, anonymous, autonomous

– *Batch SQL available with anonymous PL/SQL

• Native Oracle data types– LOBS, REF Cursors, BFiles, N-data types, Dates,

TimeStamps, Longs, Raws, etc.

– Safe type mapping to .NET data types

• *Connection pooling– Min, Max, Timeout, Lifetime, Increment, Decrement

* Performance tip

Page 12: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Installation

* Performance tip

• The Oracle.DataAccess.dll assembly is installed in the ORACLE_

• BASE\ORACLE_HOME\bin directory.• Documentation and the readme.txt are installed in the

ORACLE_BASE\ORACLE_HOME\ODP.NET\doc directory.• Samples are provided in the ORACLE_BASE\ORACLE_HOME\

ODP.NET\Samples directory.

Page 13: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Visual Studio .NET Integration

• Dynamic Help– ODP.NET documentation available – Hit F1 key

• Intellisense

• Connection pooling is enabled in ODP.NET (by default).

Page 14: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Connection Options

• Proxy user authenticationOracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=customer;Password=lion;" +

"Data Source=oracle;Proxy User Id=appserver;Proxy Password=eagle; ";

con.Open();

• Operating System Authentication

OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=/;Data Source=oracle;";

con.Open();

* Performance tip

Page 15: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Connection

– Connection pools are created by the connection pooling service using the ConnectionString as a signature to uniquely identify a pool.

OracleConnection con = new OracleConnection();

con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;" +

"Min Pool Size=5;Max Pool Size=20;Connection Lifetime=120;” +

“Connection Timeout=60; Incr Pool Size=5; Decr Pool Size=2";

con.Open();

NOTES:• Connection Lifetime = Maximum life time (in seconds) of the connection

(default 0)• Connection Lifetime enforced when a connection is going back to the

connection pool.• Connections are closed every three minutes (connection Lifetime..)

* Performance tip

Page 16: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Workshop Example VS.NET

• NOTE: Right-click and select “open in new Window” to prevent the current powerpoint from being overlaid and thus allowing you to continue. If you have a popup blocker, this may prevent a new window from opening. E.g. with Google Popup blocker, you need to press the ctrl key simultaneously.

WebEx Pre-recorded Sessions

• Create Skeleton ASP.NET Web Application • Add Populate Dept functionality• Add Insert Dept Functionality• Execute Application

Page 17: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

ODP.NET Performance and Scalability Tips

• Close all ODP.NET objects when finished (e.g. OracleConnection)

– Do not count on the garbage collector to do this automatically

• Use anonymous PL/SQL when batching commands

– Makes only one DB round trip

– Use associative arrays to bind parameters

• Use FetchSize (OracleDataReader) and RowSize (OracleCommand) to tune data retrieval performance

• Use InitialLOBFetchSize and InitialLongFetchSize to tune LOB and LONG retrieval performance

Page 18: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

Performance

• Use Anonymous PL/SQL blocks.

Page 19: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

FAQ

• Q: Can ODP.NET work with Oracle8, Oracle8i, Oracle9i, and Oracle10g database (DB) servers?

• Yes, but you will need to use an Oracle9i Release 2 client or higher

Page 20: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

FAQ

• Q: Do I need to install ODP.NET on my Oracle DB server?

• A: No. You only need to install ODP.NET on your client or middle-tier machine, wherever you use the .NET Framework.

Page 21: ODP.NET. Access Oracle from.NET Using C# Alex Hoyos Oct 2004.

“Thank you.” “Thank you.”