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

Как да предавам динамично стойности към IN оператор?

Създайте тип колекция:

CREATE TYPE stringlist IS TABLE OF VARCHAR2(100);
/

След това можете да го предадете на процедура и да използвате MEMBER OF оператор (вместо IN оператор):

CREATE PROCEDURE Test (
  in_list     IN  stringlist,
  out_results OUT SYS_REFCURSOR
)
IS
BEGIN
  OPEN out_results FOR
  SELECT *
  FROM   your_table
  WHERE  your_column MEMBER OF in_list;
END;
/

Ако се свързвате от външен език, можете доста лесно да предадете масив на процедурата (пример на Java) или можете да създадете списъка в PL/SQL или от списък с разделители.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на вложени транзакции в oracle

  2. Как автоматично да генерирам идентичност за база данни на Oracle чрез Entity framework?

  3. Пример за Oracle FOR LOOP REVERSE

  4. Колона за автоматично увеличение – последователност като стойност по подразбиране в Oracle

  5. Предоставяне на права върху Съхранена процедура на друг потребител на Oracle