sql >> Databasteknik >  >> RDS >> Oracle

Funktion eller procedur för en IN-klausul

Här är ett fungerande exempel på den kapslade tabelllösningen med EMP-tabellen:

create type t_ids is table of integer
/

create or replace function get_office_ids return t_ids
is
   l_ids t_ids := t_ids();
   l_idx integer := 0;
begin
   for r in (select empno from emp where deptno=10)
   loop
      l_ids.extend;
      l_idx := l_idx+1;
      l_ids(l_idx) := r.empno;
   end loop;
   return l_ids;
end;
/

select ename from emp where empno in (select * from table(get_office_ids));


ENAME
----------
CLARK
KING
TEST
MILLER
BINNSY
FARMER


  1. Hantera roller och rollattribut i PostgreSQL

  2. Använda Passport med Sequelize och MySQL

  3. Byt roll efter anslutning till databasen

  4. Visa alla frågor som kommer till en Oracle-databas