Oracle
 sql >> база данни >  >> RDS >> Oracle

Предайте списък с цели числа от C# в съхранената процедура на Oracle

Oracle ви позволява да предавате масиви от стойности като параметри. Заемайки от този SO въпрос и този, можете да дефинирате INT_ARRAY напишете така:

create or replace type CHAR_ARRAY as table of INTEGER;

След това дефинирайте вашата съхранена процедура като:

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

След това можете да предадете списъка със стойности, като зададете свойството OracleParameter.CollectionType по следния начин:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 40 въпрос, който трябва да знаете за R12.2

  2. Функция DBTIMEZONE в Oracle

  3. Неуспехи на addnode resolv.conf

  4. Създаване или симулиране на двумерни масиви в PL/SQL

  5. Клауза на Oracle SQL Where за намиране на записи за дата, по-стари от 30 дни