Bạn chưa hiển thị cho chúng tôi toàn bộ mã bạn sử dụng để kết nối với cơ sở dữ liệu, nhưng có vẻ như từ một nhận xét đến một câu trả lời khác cho thấy bạn đang sử dụng OLE DB. Tôi sẽ tránh sử dụng nó, đặc biệt nếu nó dường như có giới hạn hơi tùy ý là 128 ký tự cho một nguồn dữ liệu.
Tôi cũng chỉ ra rằng bạn cũng có thể tránh phải cài đặt ứng dụng khách Oracle, theo khuyến nghị của một người trả lời khác. Tôi không có nhiều kinh nghiệm với ứng dụng khách 'tức thì', nhưng ứng dụng khách đầy đủ là một bản tải xuống khổng lồ và không cần thiết chỉ để có thể kết nối chương trình C # với Oracle.
Thay vào đó, chúng ta có thể sử dụng thư viện Oracle Managed Data Access. Bạn có thể cài đặt phần mềm này bằng NuGet. Để làm điều này:
- chuyển đến Công cụ> Trình quản lý Gói Thư viện> Bảng điều khiển Trình quản lý Gói,
- đảm bảo rằng dự án chính xác được chọn trong danh sách thả xuống 'Dự án mặc định',
-
nhập
Install-Package odp.net.managed
Điều này sẽ thêm tải xuống thư viện từ NuGet và thêm Oracle.ManagedDataAccess vào Tài liệu tham khảo của dự án của bạn.
Sau đó, nếu bạn thêm using
chỉ thị cho Oracle.ManagedDataAccess.Client
, đoạn mã sau sẽ kết nối với cơ sở dữ liệu Oracle:
string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service_name>)));User Id=<user>;Password=<password>";
Console.WriteLine("Connection string has length " + connStr.Length);
using (var connection = new OracleConnection() { ConnectionString = connStr })
{
connection.Open();
OracleCommand command = new OracleCommand("SELECT * FROM DUAL", connection);
using (OracleDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
}
}