Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PL/SQL — użyj zmiennej listy w miejscu gdzie w klauzuli

Użyj kolekcji:

CREATE TYPE Varchar2TableType AS TABLE OF VARCHAR2(200);

Lub użyj wbudowanego typu, takiego jak SYS.ODCIVARCHAR2LIST lub SYS.ODCINUMBERLIST :

VARIABLE cursor REFCURSOR;

DECLARE
  your_collection SYS.ODCIVARCHAR2LIST := SYS.ODCIVARCHAR2LIST();
BEGIN
  your_collection.EXTEND( 100 );

  your_collection(  1) := 'Some value';
  your_collection(  2) := 'Some other value';
  -- ...
  your_collection(100) := DBMS_RANDOM.STRING( 'x', 20 );

  OPEN :cursor FOR
  SELECT t.*
  FROM   your_table t
         INNER JOIN
         TABLE( your_collection ) c
         ON t.id = c.COLUMN_VALUE;
END;
/

PRINT cursor;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lista języków obsługiwanych przez bazę danych Oracle

  2. Funkcja JSON_TABLE() w Oracle

  3. TO_TIMESTAMP() Funkcja w Oracle

  4. Jak wpisać znak nowej linii w Oracle?

  5. Jak skonfigurować połączony serwer z bazą danych Oracle na SQL 2000/2005?