Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak przekazać tablicę ciągów z C# do procedury składowanej Oracle

Jest to nieprawidłowe składniowo, ponieważ ma dodatkowy INDEX słowo kluczowe na końcu, ale jeśli to naprawisz:

create type T_STRING_TAB is table of varchar2(260);

Jest to typ danych kolekcji zdefiniowany w zakresie SQL. C# obecnie nie obsługuje przekazywania tablicy nieskojarzeniowej.

Twój kod C# oczekuje tablicy asocjacyjnej zdefiniowanej w zakresie PL/SQL:

Aby utworzyć tablicę asocjacyjną PL/SQL, musisz zrobić to wewnątrz pakietu i dołączyć INDEX BY <numeric data type> klauzula:

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

Wtedy twoja procedura może być:

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. JDBC Oracle — Pobieranie planu wyjaśnień dla zapytania

  2. Jak dodać wskaźnik Meridiem (AM/PM) do wartości czasu w Oracle?

  3. Transponuj jeden wiersz na wiele wierszy Oracle

  4. oracle::occi::ResultSet::next() zawiesza mój program

  5. stół ora-04091 jest mutujący-