Je connais 17 façons de se connecter à une base de données Oracle à partir d'une application .NET.
-
ODBC avec pilote d'Oracle
var connectString = "Driver={Oracle in OraClient11g_home1};Uid=scott;Pwd=secret;DBQ=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
(nom exact du pilote
Oracle in OraClient11g_home1
dépend de la version d'Oracle installée) -
ODBC avec pilote de Microsoft (uniquement pour 32 bits, obsolète, ne fonctionne plus avec Oracle Client 18c ou plus récent)
var connectString = "Driver={Microsoft ODBC for Oracle};Uid=scott;Pwd=secret;Server=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
Fournisseur Oracle pour OLE DB
var connectString = "Provider=OraOLEDB.Oracle;Data Source=orcl1;Password=secret;User ID=scott"; var con = new System.Data.OleDb.OleDbConnection(connectString); con.Open();
-
Fournisseur Microsoft OLE DB pour Oracle (uniquement pour 32 bits, obsolète, ne fonctionne plus avec Oracle Client 18c ou plus récent)
var connectString = "Provider=MSDAORA;Data Source=orcl1;Password=secret;User ID=scott"; var con = new System.Data.OleDb.OleDbConnection(connectString); con.Open();
-
Fournisseur de données Microsoft .NET Framework pour Oracle (obsolète)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new System.Data.OracleClient.OracleConnection(connectString); con.Open();
-
Fournisseur de données Oracle pour .NET (ODP.NET)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new Oracle.DataAccess.Client.OracleConnection(connectString); con.Open();
-
Fournisseur de données Oracle pour .NET, pilote géré (pilote géré ODP.NET)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new Oracle.ManagedDataAccess.Client.OracleConnection(connectString); con.Open();
-
dotConnect pour Oracle de Devart (anciennement connu sous le nom d'OraDirect .NET de Core Lab)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new Devart.Data.Oracle.OracleConnection(connectString); con.Open();
-
dotConnect Universal de Devart (utilise
System.Data.OracleClient
obsolète )var connectString = "Provider=OracleClient;Data Source=orcl1;User ID=scott;Password=secret"; var con = new Devart.Data.Universal.UniConnection(connectString); con.Open();
-
ODBC avec pilote de Devart
var connectString = "Driver={Devart ODBC Driver for Oracle};Uid=scott;Pwd=secret;Server=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
DataDirect Connect pour ADO.NET de Progress
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new DDTek.Oracle.OracleConnection(connectString); con.Open();
-
ODBC avec pilote de Progress
var connectString = "Driver={DataDirect 8.0 Oracle Wire Protocol};Uid=scott;Pwd=secret;ServerName=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
ODBC avec le pilote Oracle d'Easysoft (n'a pas fonctionné pour moi)
var connectString = "Driver={Easysoft ODBC-Oracle Driver};Database=orcl1;Uid=scott;Pwd=secret;Server=orcl1;SID=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
ODBC avec le pilote Oracle WP d'Easysoft (n'a pas fonctionné pour moi)
var connectString = "Driver={Easysoft ODBC-Oracle WP Driver};Database=orcl1;Uid=scott;Pwd=secret;Server=orcl1;SID=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
Fournisseur ADO.NET pour Oracle OCI de CData
var connectString = "Data Source=orcl1;User=scott;Password=secret"; var con = new System.Data.CData.OracleOci.OracleOciConnection(connectString); con.Open();
-
ODBC avec pilote pour Oracle OCI de CData
var connectString = "Driver={CData ODBC Driver for Oracle OCI};Data Source=orcl1;User=scott;Password=secret"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
ODBC avec pilote Oracle avec connecteur SQL de Magnitude (anciennement Simba)
var connectString = "Driver={Simba Oracle ODBC Driver};TNS=orcl1;UID=scott;PWD=secret"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
En général, tous fonctionnent. Pour une nouvelle application, vous devez utiliser ODP.NET ou pilote géré ODP.NET . Pilote géré ODP.NET est assez nouveau et a encore quelques limitations et aussi les bogues "les plus récents".
Les fournisseurs tiers peuvent entraîner des frais supplémentaires.
En dehors du pilote géré ODP.NET , Progress et pilote Easysoft ODBC-Oracle WP tous les pilotes/fournisseurs doivent avoir un client Oracle (instantané) installé.
J'ai développé une application dans github qui exécute toutes ces 32 variantes (17 64 bits + 15 32 bits) à la fois.