sql >> Databáze >  >> RDS >> Oracle

Jak předat pole řetězců z C# do uložené procedury Oracle

Toto je syntakticky neplatné, protože obsahuje navíc INDEX klíčové slovo na konci, ale pokud to opravíte:

create type T_STRING_TAB is table of varchar2(260);

To je datový typ kolekce definovaný v rozsahu SQL. C# aktuálně nepodporuje předávání neasociativního pole.

Váš kód C# očekává asociativní pole definované v rozsahu PL/SQL:

Chcete-li vytvořit asociativní pole PL/SQL, musíte to udělat uvnitř balíčku a zahrnout INDEX BY <numeric data type> klauzule:

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

Pak váš postup může být:

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



  1. Zbytečné dotazy v Hibernate - MySql

  2. Vložení objektu JSON do tabulky MySQL pomocí Angular/PHP

  3. Nedávno provedené SQL není ve V$SQL

  4. Chyba syntaxe MySQL:poblíž '1' na řádku 1