it-swarm-vi.tech

Oracle.DataAccess. Phụ thuộc khách hàng

Trước hết, tôi muốn sử dụng Oracle.DataAccess.dll để sử dụng OracleBulkCopy.

Tôi muốn biết tất cả các dll mà tôi cần để có thể đọc từ cơ sở dữ liệu và sau đó thực hiện một bản sao trong Oracle. Hiện tại, chúng tôi chỉ sử dụng một dll để thực hiện tất cả các lần đọc từ cơ sở dữ liệu, chúng tôi đang sử dụng Oracle.ManagedDataAccess.Client. Nhưng tôi không thể sử dụng nó để thực hiện một số lượng lớn.

Tôi không muốn cài đặt ODP.NET cho người dùng, tôi muốn đưa dll trực tiếp vào chương trình. Vì vậy, tôi muốn biết các dll tối thiểu cần thiết để có thể sử dụng Oracle.DataAccess.dll trong 32 bit và 64 bit.

Tôi biết rằng có một số bài viết cũ về điều này, nhưng nó cũ yên tĩnh và các dll được liệt kê đã hết hạn. Tôi không thể tìm thấy một số trong số họ.

Tôi đã cài đặt ODP.net cho ODAC12 và tôi đã truy xuất tất cả các dll được liệt kê trong post . Tôi cũng đã thử với bài này . Các dll được liệt kê đang chỉ ra phiên bản 11.

Tôi đã thực hiện một dự án giả mở một kết nối, đọc một bảng và số lượng lớn nó trong một bảng khác. Tôi đã sao chép các dll được liệt kê từ các bài đăng trong thư mục gốc của dự án và tôi đã bao gồm Oracle.DataAccess.dll trong dự án. 

Khi tôi chạy chương trình của mình trong 64 bit, tôi gặp lỗi sau:

Không thể tải tệp hoặc hội 'Oracle.DataAccess, Version = 4.121.2.0, Văn hóa = trung lập, PublicKeyToken = 89b483f429c47342 '

Khi tôi chạy nó trong 32 bit, tôi gặp lỗi này:

Không thể tải DLL 'OraOps12.dll': Mô-đun được chỉ định không thể là tìm. (Ngoại lệ từ HRESULT: 0x8007007E) "

Các dll mà tôi bao gồm là:

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

Tôi quản lý để làm cho nó hoạt động.

  • Tải xuống phiên bản tốt của ODAC sẽ nhắm mục tiêu dự án của bạn.

    1. Đối với 32bit dự án, bạn cần tải xuống ODAC12 ..._ x32.Zip (ODAC121021Xcopy_32bit.Zip).

    2. Đối với 64 bit dự án, bạn cần tải xuống ODAC12 ..._ x64.Zip

  • Giải nén nó trong một thư mục trống tùy thuộc vào phiên bản bạn muốn (32 bit so với 64 bit).

  • Xác định vị trí trong thư mục instantclient_12_1 tất cả các dll bằng cách tìm kiếm * đậm trong thanh tìm kiếm windows. Bạn cần lấy:

  1. oci.dll

  2. ociw32.dll

  3. orannzsbb12.dll

  4. oraociei12.dll

  5. oraons.dll

  • Định vị trong thư mục odp.net4 hoặc odp.net20 tùy thuộc vào phiên bản .NET của bạn hai dll này:
  1. OraOps12.dll

  2. Oracle.DataAccess.dll

  • Sao chép các dll 32 bit hoặc 64 bit đó và đặt chúng trực tiếp vào đường dẫn đầu ra của dự án của bạn. Ví dụ: trong C:\...\vsProjects\BulkInsert\BulkInsert\bin\Debug.

  • Duyệt Oracle.DataAccess.dll trong dự án của bạn bằng cách chỉ vào đường dẫn đầu ra.

 enter image description here

12
billybob

Tôi đã trải qua vấn đề tương tự; cài đặt các thành phần truy cập dữ liệu Oracle (odac ODTwithODAC122010.Zip ) cho giải pháp. 

1
engntsn

Có vẻ như bạn không cài đặt ứng dụng khách Oracle Instant (hoặc bất kỳ phiên bản Oracle Client nào khác). Đây là điều kiện tiên quyết cho nhà cung cấp ODP.NET không được quản lý. 

Cài đặt ứng dụng khách Oracle Instant và bạn vẫn ổn. Nếu không bạn sẽ không nhận được gì ngoài rắc rối.

0
Wernfried Domscheit