2009-01-30 9 views
7

Je dois développer un outil en C# qui récupère certaines données d'une base de données Oracle. Étant donné que notre service informatique rencontre des problèmes lors de l'installation du client Oracle, je souhaite pouvoir me connecter à la base de données sans que le client ne soit installé. L'idée est de simplement installer (et peut-être enregistrer) une bibliothèque supplémentaire avec l'application.Pilotes Oracle alternatifs pour .net

Quelles sont les alternatives au client Oracle et quels sont leurs avantages et leurs inconvénients?

Ceci est pour une petite application (1 formulaire, 2 ou 3 requêtes, le résultat affiché dans un DataGrid, probablement pas plus de 10-20 ensembles de données), mais je suis également intéressé par les problèmes d'évolutivité, car nous pouvons aussi éloignez-vous du client Oracle avec de futurs projets plus importants.

Bien sûr, une solution freeware serait bien, mais nous ne sommes pas limités à cela.

Répondre

8

Il existe plusieurs variantes du Oracle ODP.Net driver. Quelle version essayez-vous d'utiliser?

Il semble que vous souhaitiez Oracle 11g ODAC 11.1.0.6.21 avec Xcopy Deployment, qui vous permet de déployer Oracle Instant Client et le pilote ODP.Net simplement en copiant et en enregistrant quelques DLL. Cela ne nécessite pas une installation complète du client Oracle.

+1

Exactement. Notre réseau d'entreprise est chaotique, sans suivi de ce qui est installé où. Je veux m'assurer que l'application fonctionnera sur tous les ordinateurs sur lesquels elle est installée, sans avoir besoin de déterminer le client Oracle installé et de demander à l'informatique de le mettre à niveau et d'attendre qu'ils le fassent ... – Treb

+1

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

+0

@JohnB - Merci, mis à jour le lien –

0

Le client de bibliothèque d'entreprise System.Data.OracleClient est une alternative viable au fournisseur ODP.NET d'Oracle. Il existe cependant de nombreuses mises en garde que vous devriez savoir, car l'utilisation du client Microsoft rendra extrêmement difficile le travail avec n'importe quel type d'objet volumineux, qu'il s'agisse de chaînes XML, CLOB, LOB ou BLOB. De plus, la colonne Oracle XmlType n'est pas prise en charge et doit être castée en CLOB pour être retournée dans OracleClient.

+0

Si vous avez besoin de travailler avec des objets LOB, j'ai écrit un article de blog sur le sujet: http: //dotnetchris.wordpress.com/2008/04/10/writting-lobs-clobs-à-oracle-using-c-aspnet-20/IMO c'est la meilleure solution viable, assurez-vous simplement que vous avez un pool de connexion qui fonctionne pour l'utiliser. –

+0

Extrait de MSDN pour System.Data.OracleClient: "Oracle 8i Client ou version ultérieure doit également être installé." Ce que je veux éviter, je le crains ... – Treb

+0

OracleClient est également déconseillé par MS maintenant. – gbjbaanb

9

Votre tâche peut être atteint sans la nécessité d'un logiciel tiers:

  1. Installer Oracle Data Access Components 11g dans votre boîte de développement. ODAC 11g est rétrocompatible avec 9i et 10g
  2. Ajoutez une référence à la bibliothèque ODAC dans vos projets .NET (Oracle.DataAccess.dll). Autoriser votre application à se connecter sans l'utilisation de TNSNAMES.ORA.
  3. Pour ce faire, vous devez inclure le descripteur de connexion dans la chaîne de connexion:

    "id utilisateur = scott; password = tigre, source de données =" + "(DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)" + "(HOST = serveur de vente) (PORT = 1521)) (CONNECT_DATA =" + "(SERVICE_NAME = sales.us.acme.com)))"

Puisque vous incluez le descripteur de connexion Dans la chaîne de connexion, le client léger n'est pas requis dans les ordinateurs ciblés.

Bon déploiement.

3

Oracle dispose actuellement d'une version entièrement gérée d'ODP.NET, permettant aux développeurs de se connecter aux bases de données Oracle en ne référençant qu'une seule DLL. Il y a plus d'informations here.

Les versions actuelles peuvent être trouvées here.

+0

Merci, même si ce développement arrive environ 4 ans trop tard pour moi ... mais je suis certain que je rencontrerai de nouveau Oracle dans ma vie ;-) – Treb

+1

ha, eh bien, j'espère que cela aidera d'autres personnes qui trouveront cet article de Google –

Questions connexes