web-dev-qa-db-fra.com

Dépendances d'Oracle.DataAccess.Client

Tout d'abord, je veux utiliser le Oracle.DataAccess.dll pour utiliser OracleBulkCopy.

Je veux connaître toutes les dlls dont j'ai besoin pour pouvoir lire à partir d'une base de données, puis effectuer une copie en bloc dans Oracle. Actuellement, nous utilisons une seule dll pour effectuer toutes les lectures à partir de bases de données, nous utilisons Oracle.ManagedDataAccess.Client. Mais je ne peux pas l'utiliser pour effectuer un bulkCopy.

Je ne veux pas installer ODP.NET pour les utilisateurs, je veux inclure la dll directement dans le programme. Je veux donc connaître le minimum de dll requis pour pouvoir utiliser le Oracle.DataAccess.dll en 32 bits et en 64 bits.

Je sais qu'il y a quelques vieux articles à ce sujet, mais c'est vieux et les dll listées sont obsolètes. Je ne peux pas en trouver quelques-uns.

J'ai installé ODP.net pour ODAC12 et j'ai retrouvé toutes les dll listées dans ce post . J'ai aussi essayé avec ce post . Les dll listées soulignent la version 11.

J'ai créé un projet factice qui ouvre une connexion, lit une table et la place dans une autre table. J'ai copié les dlls répertoriées à partir des publications à la racine du projet et j'ai inclus Oracle.DataAccess.dll dans le projet. 

Lorsque j'exécute mon programme en 64 bits, l'erreur suivante apparaît:

Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess, Version = 4.121.2.0, Culture = neutre, PublicKeyToken = 89b483f429c47342 '

Quand je le lance en 32 bits, j'obtiens cette erreur:

Impossible de charger DLL 'OraOps12.dll': le module spécifié ne peut pas être a trouvé. (Exception de HRESULT: 0x8007007E) "

Les dll que j'ai inclus sont:

  • oci.dll
  • ociw32.dll
  • Oracle.DataAccess.dll
  • orannzsbb12.dll
  • oraocci12.dll
  • oraociei12.dll
  • OraOps12.dll
8
billybob

J'ai réussi à le faire fonctionner.

  • Téléchargez la bonne version de l’ODAC qui ciblera votre projet.

    1. Pour un projet 32bit , vous devez télécharger le fichier ODAC12 ..._ x32.Zip (ODAC121021Xcopy_32bit.Zip).

    2. Pour le projet 64bit , vous devez télécharger le fichier ODAC12 ..._ x64.Zip.

  • Décompressez-le dans un dossier vide en fonction de la version souhaitée (32 bits ou 64 bits).

  • Recherchez dans le dossier instantclient_12_1 toutes les dll en recherchant * .dll dans la barre de recherche de Windows. Vous devez saisir:

  1. oci.dll

  2. ociw32.dll

  3. orannzsbb12.dll

  4. oraociei12.dll

  5. oraons.dll

  • Recherchez dans le dossier odp.net4 ou odp.net20 en fonction de votre version .NET ces deux dll:
  1. OraOps12.dll

  2. Oracle.DataAccess.dll

  • Copiez les DLL 32 bits ou 64 bits et insérez-les directement dans le chemin de sortie de votre projet. Par exemple, dans C:\...\vsProjects\BulkInsert\BulkInsert\bin\Debug.

  • Parcourez Oracle.DataAccess.dll dans votre projet en pointant sur le chemin de sortie.

 enter image description here

12
billybob

J'ai eu le même problème Installez les composants d’accès aux données Oracle (odac ODTwithODAC122010.Zip ) pour la solution. 

1
engntsn

On dirait que vous n'avez pas installé le client Oracle Instant (ou toute autre version du client Oracle). Il s'agit d'une condition préalable pour le fournisseur ODP.NET non géré. 

Installez le client Oracle Instant et tout va bien. Sinon, vous n'obtiendrez que des ennuis.

0