2009-01-30 12 views
7

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.Controladores Oracle alternativos para .net

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

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

Respuesta

8

Hay un par de diferentes sabores del Oracle ODP.Net driver. ¿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 unos pocos archivos DLL y registrándolos. Eso no requiere una instalación de cliente de Oracle completa.

+1

Exactamente. La red de nuestra compañía es caótica, sin seguimiento de lo que está instalado en el lugar. Quiero asegurarme de que la aplicación se ejecutará en todas las computadoras en las que esté instalada, sin necesidad de determinar el cliente de Oracle instalado y solicitarle a TI que lo actualice y esperar a que lo haga ... – Treb

+1

Nuevo enlace: http : //www.oracle.com/technetwork/database/windows/downloads/index-101290.html – JohnB

+0

@JohnB - Gracias, actualizó el enlace –

0

El cliente de biblioteca empresarial System.Data.OracleClient es una alternativa viable al 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.

+0

Si necesita trabajar con LOB, escribí una publicación en el blog sobre el tema: http: //dotnetchris.wordpress.com/2008/04/10/writting-lobs-clobs-to-oracle-using-c-aspnet-20/IMO es la mejor solución viable, solo asegúrese de que tiene la agrupación de conexiones funcionando para usarla. –

+0

Tomado de MSDN para System.Data.OracleClient: "También debe tener instalado Oracle 8i Client o posterior". Exactamente lo que quiero evitar, me temo ... – Treb

+0

OracleClient también está obsoleto por MS ahora. – gbjbaanb

9

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

  1. Oracle Data Access Components 11g Instalar 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 = ventas-servidor) (PORT = 1521)) (CONNECT_DATA =" + "(SERVICE_NAME = sales.us.acme.com)))"

Puesto que usted está incluyendo el descriptor de conexión en la cadena de conexión, el thin client no es necesario en las computadoras de destino.

Implementación feliz.

3

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

Las versiones actuales se pueden encontrar here.

+0

Gracias, a pesar de que ese desarrollo me llega 4 años demasiado tarde ... pero estoy seguro de que me encontraré con Oracle nuevamente en mi vida ;-) – Treb

+1

ha, bueno, con suerte esto ayudará a otros que se encuentren con esta publicación de Google –

Cuestiones relacionadas