sql >> データベース >  >> RDS >> Oracle

PL/SQL-WhereIn句でリスト変数を使用

    コレクションを使用する:

    CREATE TYPE Varchar2TableType AS TABLE OF VARCHAR2(200);
    

    または、SYS.ODCIVARCHAR2LISTのような組み込み型を使用します または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. SCDタイプ3

    2. データベースに接続した後、役割を切り替えます

    3. OracleのNCHAR列またはNVARCHAR列に国別文字を挿入しても機能しません

    4. PostgreSQL外部キーが存在しない、継承の問題?