Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cơ sở dữ liệu Oracle TNS Độ dài của giá trị cho 'nguồn dữ liệu' khóa vượt quá giới hạn '128' của nó

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));
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL SQL:Cách hiển thị nano giây của TIMESTAMP

  2. Oracle sql hoặc pl / sql:Tính toán dựa trên các giá trị hàng trước đó và trên cột ngày tháng

  3. Khóa ngoại tham chiếu đến một khung nhìn trong Oracle

  4. Tham chiếu đến bộ sưu tập chưa được khởi tạo PL / SQL

  5. Cách tạo một thủ tục bên trong một gói trong Oracle