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

Pole v klauzuli IN() Oracle PLSQL

Za předpokladu, že je vaše kolekce definována v SQL, nejen v PL/SQL, můžete použít TABLE operátor (definice, kterou jste zveřejnili, není syntakticky platná – budete muset zadat délku pro VARCHAR2 )

AND p.plc_status IN (SELECT column_value
                       FROM TABLE( plcListchar ))

Protože nemám vaše tabulky, příklad pomocí SCOTT schéma

SQL> create type ename_tbl is table of varchar2(30);
  2  /

Type created.

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    l_enames ename_tbl := ename_tbl( 'KING', 'SMITH' );
  3  begin
  4    for i in (select *
  5                from emp
  6               where ename in (select column_value
  7                                 from table( l_enames )))
  8    loop
  9      dbms_output.put_line( 'ENAME = ' || i.ename );
 10    end loop;
 11* end;
SQL> /
ENAME = KING
ENAME = SMITH

PL/SQL procedure successfully completed.



  1. Odkazování na alias vybraného agregovaného sloupce v klauzuli have v Postgres

  2. Je NOLOCK (nápověda pro SQL Server) špatný postup?

  3. Instalace MySQL Pythonu na Mac OS X

  4. Co je výchozí omezení v SQL Server - SQL Server / TSQL výukový program, část 90