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

IN演算子に動的に値を渡す方法は?

    コレクションタイプを作成します:

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

    次に、それをプロシージャに渡して、MEMBER OFを使用できます。 演算子(INではなく 演算子):

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

    外部言語から接続している場合は、配列をプロシージャに簡単に渡すことができます(Javaの例)。または、PL/SQLまたは区切りリストからリストを作成できます。




    1. 売れ筋商品を取得するためのMySQLクエリ

    2. データベース付きのアプリケーションを出荷する

    3. MySQLドロップデータベース

    4. データストレージ:アーカイブおよびHSMのRESTとPOSIX