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

Předejte seznam celých čísel z C# do uložené procedury Oracle

Oracle umožňuje předávat pole hodnot jako parametry. Vypůjčením z této otázky SO a této můžete definovat INT_ARRAY zadejte takto:

create or replace type CHAR_ARRAY as table of INTEGER;

Poté definujte uloženou proceduru jako:

CREATE OR REPLACE PROCEDURE product_search(
        ...
        myIds IN CHAR_ARRAY,
        ...)
AS  
    SELECT ...
    ...
    WHERE SomeIdField IN (Select column_value FROM TABLE(myIds))
    ...

Seznam hodnot pak můžete předat nastavením vlastnosti OracleParameter.CollectionType takto:

OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Int32;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;


  1. Příkaz SQL CASE

  2. MariaDB ROUND() vs. TRUNCATE()

  3. Jak zaokrouhlit časové razítko v MySQL

  4. Oracle:jak získat procento z celkového počtu dotazem?