sql >> Database >  >> RDS >> Oracle

Een array van strings van C# doorgeven aan een opgeslagen procedure van Oracle

Dit is syntactisch ongeldig omdat het een extra INDEX . heeft zoekwoord aan het einde, maar als u dat oplost:

create type T_STRING_TAB is table of varchar2(260);

Dat is een verzamelingsgegevenstype dat is gedefinieerd in het SQL-bereik. C# biedt momenteel geen ondersteuning voor het doorgeven van een niet-associatieve array.

Uw C#-code verwacht een associatieve array gedefinieerd in de PL/SQL-scope:

Om een ​​associatieve PL/SQL-array te maken, moet u dit in een pakket doen en een INDEX BY <numeric data type> opnemen clausule:

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

Dan kan uw procedure zijn:

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



  1. MySQL converteert kolomgegevenstype van VARCHAR naar INT

  2. Mysql-query naar ElasticSearch

  3. MySQL-vriendentabel

  4. MVC4:UserIsInRole - Kan geen verbinding maken met SQL Server-database