OracleClientFactory Class
An OracleClientFactory object allows applications to instantiate ODP.NET classes in a generic way.
Class Inheritance
System.Object
System.Data.Common.DbProviderFactory
Oracle.DataAccess.Client.OracleClientFactory
Declaration
// C#
public sealed class OracleClientFactory : DbProviderFactory
Requirements
| Provider | ODP.NET, Unmanaged Driver | ODP.NET, Managed Driver | ODP.NET Core |
|---|---|---|---|
| Assembly | Oracle.DataAccess.dll |
Oracle.ManagedDataAccess.dll |
Oracle.ManagedDataAccess.dll |
| Namespace | Oracle.DataAccess.Client |
Oracle.ManagedDataAccess.Client |
Oracle.ManagedDataAccess.Client |
| .NET Framework | See System Requirements | See System Requirements | - |
| .NET Core | - | - | See System Requirements |
Thread Safety
All public static methods are thread-safe, although instance methods do not guarantee thread safety.
Example
// C#
using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;
class FactorySample
{
static void Main()
{
string constr = "user id=scott;password=tiger;data source=oracle";
DbProviderFactory factory =
DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
DbConnection conn = factory.CreateConnection();
try
{
conn.ConnectionString = constr;
conn.Open();
DbCommand cmd = factory.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from emp";
DbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
Console.WriteLine(reader["EMPNO"] + " : " + reader["ENAME"]);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}