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

Cách chuyển một mảng chuỗi từ C # sang một thủ tục được lưu trữ trong Oracle

Điều này không hợp lệ về mặt cú pháp vì nó có thêm INDEX từ khóa ở cuối nhưng nếu bạn sửa lỗi đó:

create type T_STRING_TAB is table of varchar2(260);

Đó là một kiểu dữ liệu thu thập được xác định trong phạm vi SQL. C # hiện không hỗ trợ truyền một mảng không liên kết.

Mã C # của bạn đang mong đợi một mảng kết hợp được xác định trong phạm vi PL / SQL:

Để tạo một mảng liên kết PL / SQL, bạn cần thực hiện nó bên trong một gói và bao gồm một INDEX BY <numeric data type> manh mối:

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

Sau đó, thủ tục của bạn có thể là:

create or replace procedure spTest(
  eventids in PACKAGE_NAME.STRING_MAP
)
as
  starteventid integer;
begin
  starteventid := 1000000;
end;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. vấn đề ORA-00001:ràng buộc duy nhất bị vi phạm trong INSERT / UPDATE

  2. Quy trình lưu trữ của Spring - kết quả trả về từ quy trình luôn trống

  3. Kích hoạt:làm cách nào để tôi có thể khởi tạo giá trị trên bảng với giá trị trên bảng khác?

  4. Nhóm kết nối JDBC mùa xuân và kết quả InputStream

  5. Cách thay đổi cài đặt cho Nhà phát triển SQL để nhận dạng chính xác phiên bản SDK hiện tại