Conheço 17 maneiras de se conectar a um banco de dados Oracle a partir de um aplicativo .NET.
-
ODBC com driver da Oracle
var connectString = "Driver={Oracle in OraClient11g_home1};Uid=scott;Pwd=secret;DBQ=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
(nome exato do driverOracle in OraClient11g_home1
depende da versão do Oracle instalada)
-
ODBC com driver da Microsoft (somente para 32 bits, obsoleto, não funciona mais com Oracle Client 18c ou mais recente)
var connectString = "Driver={Microsoft ODBC for Oracle};Uid=scott;Pwd=secret;Server=orcl1"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
-
Provedor Oracle para 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();
-
Microsoft OLE DB Provider for Oracle (somente para 32 bits, obsoleto, não funciona mais com Oracle Client 18c ou mais recente)
var connectString = "Provider=MSDAORA;Data Source=orcl1;Password=secret;User ID=scott"; var con = new System.Data.OleDb.OleDbConnection(connectString); con.Open();
-
Provedor de dados do Microsoft .NET Framework para Oracle (obsoleto)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new System.Data.OracleClient.OracleConnection(connectString); con.Open();
-
Provedor de Dados Oracle para .NET (ODP.NET)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new Oracle.DataAccess.Client.OracleConnection(connectString); con.Open();
-
Oracle Data Provider para .NET, Driver Gerenciado (Driver Gerenciado ODP.NET)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new Oracle.ManagedDataAccess.Client.OracleConnection(connectString); con.Open();
-
dotConnect para Oracle da Devart (anteriormente conhecido como OraDirect .NET do Core Lab)
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new Devart.Data.Oracle.OracleConnection(connectString); con.Open();
-
dotConnect Universal da Devart (usa oSystem.Data.OracleClient
obsoleto )
var connectString = "Provider=OracleClient;Data Source=orcl1;User ID=scott;Password=secret"; var con = new Devart.Data.Universal.UniConnection(connectString); con.Open();
-
ODBC com driver 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 para ADO.NET da Progress
var connectString = "Data Source=orcl1;User ID=scott;Password=secret"; var con = new DDTek.Oracle.OracleConnection(connectString); con.Open();
-
ODBC com driver da 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 com Oracle Driver da Easysoft (não funcionou para mim)
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 com Oracle WP Driver da Easysoft (não funcionou para mim)
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();
-
Provedor ADO.NET para Oracle OCI da CData
var connectString = "Data Source=orcl1;User=scott;Password=secret"; var con = new System.Data.CData.OracleOci.OracleOciConnection(connectString); con.Open();
-
ODBC com Driver para 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 com Oracle Driver com SQL Connector da Magnitude (anteriormente Simba)
var connectString = "Driver={Simba Oracle ODBC Driver};TNS=orcl1;UID=scott;PWD=secret"; var con = new System.Data.Odbc.OdbcConnection(connectString); con.Open();
Em geral todos estão funcionando. Para novos aplicativos, você deve usar ODP.NET ou Driver Gerenciado ODP.NET . Driver gerenciado ODP.NET é bastante novo e ainda tem algumas limitações e também os "mais novos" bugs.
Os provedores terceirizados podem ter custos adicionais.
Além do Driver Gerenciado ODP.NET , Progress e Driver Easysoft ODBC-Oracle WP todos os drivers/provedores precisam ter um Oracle (Instant-) Client instalado.
Desenvolvi um aplicativo no github que executa todas essas 32 variantes (17 de 64 bits + 15 de 32 bits) de uma só vez.