sql >> Database >  >> RDS >> Oracle

Hoe waarden dynamisch doorgeven aan de IN-operator?

Maak een collectietype aan:

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

Dan kun je het doorgeven aan een procedure en de MEMBER OF . gebruiken operator (in plaats van de IN operator):

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

Als u verbinding maakt vanuit een externe taal, kunt u vrij eenvoudig een array doorgeven aan de procedure (Java-voorbeeld) of u kunt de lijst maken in PL/SQL of van een gescheiden lijst.




  1. Hoe het type van een variabele in PL/SQL te bekijken?

  2. Ontwerppatroon voor aangepaste velden in relationele database

  3. Kopieer een tabel (inclusief indexen) in postgres

  4. Sql Server Service Broker-gespreksgroepen