sql >> Database teknologi >  >> RDS >> Oracle

Hvordan overfører man værdier til IN-operatøren dynamisk?

Opret en samlingstype:

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

Derefter kan du videregive det til en procedure og bruge MEMBER OF operator (i stedet for IN operatør):

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

Hvis du opretter forbindelse fra et eksternt sprog, kan du ganske nemt videregive et array til proceduren (Java-eksempel), eller du kan oprette listen i PL/SQL eller fra en afgrænset liste.




  1. Nærmest match, del 3

  2. 'adgangskodegodkendelse mislykkedes for bruger postgres'

  3. Forbedring af backend-ydeevne Del 2/3:Brug af databaseindekser

  4. Opnå MySQL Failover &Failback på Google Cloud Platform (GCP)