without visual studio odp net manageddataaccess example c# oracle database-connection

c# - visual - Controladores Oracle alternativos para.net



oracle database odp net (4)

Tengo que desarrollar una herramienta en C # que recupere algunos datos de un Oracle DB. Como nuestro soporte de TI está teniendo problemas con la instalación del cliente de Oracle, quiero poder conectarme a la base de datos sin tener instalado el cliente. La idea es simplemente instalar (y tal vez registrar) una biblioteca adicional junto con la aplicación.

¿Qué alternativas existen para el cliente Oracle y cuáles son sus ventajas y desventajas?

Esto es para una aplicación pequeña (1 formulario, 2 o 3 consultas, el resultado se muestra en un DataGrid, probablemente no más de 10-20 conjuntos de datos), pero también me interesan los problemas de escalabilidad, ya que también podemos alejarnos del Cliente de Oracle con proyectos futuros más grandes.

Por supuesto, una solución de software gratuito sería agradable, pero no estamos limitados a eso.


El cliente de biblioteca empresarial System.Data.OracleClient es una alternativa viable para el proveedor ODP.NET de Oracle. Sin embargo, hay varias advertencias que debe saber, usar el cliente de Microsoft hará que sea extremadamente difícil trabajar con cualquier tipo de objetos grandes, ya sean cadenas XML, CLOB, LOB o BLOB. Además, la columna Oracle XmlType no es compatible y debe enviarse a un CLOB para que se devuelva al OracleClient.


Su tarea se puede lograr sin necesidad de ningún software de terceros:

  1. Instale Oracle Data Access Components 11g en su caja de desarrollo. ODAC 11g es compatible con versiones anteriores 9i y 10g
  2. Agregue una referencia a la biblioteca ODAC en sus proyectos .NET (Oracle.DataAccess.dll).
  3. Permita que su aplicación se conecte sin el uso de TNSNAMES.ORA. Para hacerlo, debe incluir el descriptor de conexión en la cadena de conexión:

    "user id = scott; password = tiger; data source =" + "(DESCRIPTION = (DIRECCIÓN = (PROTOCOLO = tcp)" + "(HOST = servidor de ventas) (PORT = 1521)) (CONNECT_DATA =" + "( SERVICE_NAME = sales.us.acme.com))) "

Dado que está incluyendo el descriptor de conexión en la cadena de conexión, no se requiere el thin client en las computadoras de destino.

Feliz despliegue.


Hay un par de diferentes sabores del controlador Oracle ODP.Net . ¿Qué versión estás tratando de usar?

Parece que desea Oracle 11g ODAC 11.1.0.6.21 con Xcopy Deployment, que le permite implementar Oracle Instant Client y el controlador ODP.Net simplemente copiando algunos archivos DLL y registrándolos. Eso no requiere una instalación de cliente de Oracle completa.


Oracle actualmente tiene una versión de ODP.NET que está completamente administrada, lo que permite a los desarrolladores conectarse a las bases de datos de Oracle al hacer referencia solo a una sola DLL. Hay más información aquí .

Las versiones actuales se pueden encontrar aquí .