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

Jak dynamicky předávat hodnoty operátoru IN?

Vytvořte typ kolekce:

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

Poté jej můžete předat proceduře a použít MEMBER OF operátor (spíše než IN operátor):

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;
/

Pokud se připojujete z externího jazyka, můžete proceduře celkem snadno předat pole (příklad Java) nebo můžete vytvořit seznam v PL/SQL nebo z odděleného seznamu.




  1. Matematické funkce serveru SQL (úplný seznam)

  2. Mít sloupce s časovým razítkem Vytvořeno i Poslední aktualizace v MySQL 4.0

  3. Hekaton se zvratem:TVP v paměti – část 3

  4. Vyhýbání se řazení pomocí zřetězení sloučení spojení