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

OracleBIND変数での複数の値の宣言

    Oracleバインド変数は1対1の関係であるため、INに含める値ごとに1つ定義する必要があります。 条項:

    SELECT JOB
      FROM EMP 
     WHERE JOB IN (:JOB1, :JOB2, :JOB3, ..., :JOB3000)
    

    OracleのINにも注意する必要があります 最大1,000個の値のみをサポートします。そうでない場合は、次のようになります。

    最良の代替方法は、テーブル(派生、一時、実際、またはビュー)を作成し、それに結合して必要な値を取得することです。 IE:

    SELECT a.job
      FROM EMP a
      JOIN (SELECT :JOB1 AS col FROM DUAL
            UNION ALL
            SELECT :JOB2 FROM DUAL
            UNION ALL
            SELECT :JOB3 FROM DUAL
            UNION ALL 
            ...
            UNION ALL 
            SELECT :JOB3000 FROM DUAL) b ON b.col = a.job
    


    1. HTMLコードをPostgresqlDBテーブルフィールドに保存するにはどうすればよいですか?

    2. MySQLの2つの日付間の年の差を整数として取得します

    3. サーバーの応答に時間がかかる

    4. 3つのテーブルでjoinを使用する方法