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

Ánh xạ Oracle UDT chứa mảng liên kết trong C #

Đó không phải là kiểu dữ liệu mảng kết hợp (còn được gọi là "chỉ mục theo bảng"); nó là một kiểu dữ liệu thu thập và được định nghĩa trong phạm vi SQL.

Mảng liên kết chỉ có sẵn trong phạm vi PL / SQL và có thể được định nghĩa như:

CREATE PACKAGE package_name AS
  TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/

C # hỗ trợ chuyển các mảng liên kết tới các thủ tục được lưu trữ bằng cách sử dụng một cái gì đó như sau:

OracleParameter parameter = new OracleParameter();
parameter.ParameterName  = "YourParameterName";
parameter.OracleDbType   = OracleDbType.Varchar2;
parameter.Direction      = ParameterDirection.Input;
parameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
parameter.Value          = new String[5]{"a","b","c","d","e"};

C # không KHÔNG hỗ trợ chuyển các mảng không liên kết.

Nếu bạn muốn có một tập hợp (một mảng không liên kết) được xác định là thành viên của kiểu do người dùng xác định (UDT) thì bạn sẽ phải sử dụng bước trung gian là truyền một mảng kết hợp và sau đó sử dụng PL / SQL để chuyển đổi nó. vào một bộ sưu tập trước khi gán nó cho UDT. Bạn có thể gói tất cả điều này trong một thủ tục được lưu trữ trong gói PL / SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. API cơ sở dữ liệu:Cách đối phó với điều kiện multi where trong Python

  2. Tên cột bắt đầu bằng số?

  3. Cách giải quyết ORA-29280:đường dẫn thư mục không hợp lệ

  4. Tìm kiếm tên trong cx_Oracle

  5. Trong Oracle, có thể CHÈN hoặc CẬP NHẬT một bản ghi thông qua một khung nhìn không?