Pregunta

Tengo que desarrollar una herramienta en C # que recupere algunos datos de una base de datos Oracle. Dado que nuestro soporte de TI tiene problemas para instalar el cliente de Oracle, quiero poder conectarme a la base de datos sin tener el cliente instalado. La idea es instalar (y tal vez registrar) una biblioteca adicional junto con la aplicación.

¿Qué alternativas existen al cliente de 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 estoy interesado en problemas de escalabilidad, ya que también podemos movernos lejos del cliente Oracle con proyectos futuros más grandes.

Por supuesto, una solución gratuita sería buena, pero no estamos limitados a eso.

¿Fue útil?

Solución

Hay un par de sabores diferentes del Oracle ODP. Controlador de red . ¿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 algunas DLL y registrándolas. Eso no requiere una instalación completa del cliente Oracle.

Otros consejos

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

  1. Instale Oracle Data Access Components 11g caja de desarrollo. ODAC 11g es compatible con versiones anteriores de 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:

    " ID de usuario = scott; contraseña = tigre; fuente de datos = " + " (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.

Despliegue feliz.

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 mientras hacen referencia a una sola DLL. Hay más información aquí .

Las versiones actuales se pueden encontrar aquí .

El cliente de biblioteca empresarial System.Data.OracleClient es una alternativa viable al proveedor ODP.NET de Oracle. Sin embargo, hay algunas advertencias que debe conocer, ya que el uso del 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 convertirse en un CLOB para que se devuelva al OracleClient.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top