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

IN式のJPQLLOWER関数

    JPQLは設計どおりに機能しています。それを正しく解釈することで、関数とパラメーターがコードで定義されます。

    Oracleで目的の結果を得るには、組み込みのOracleコレクションタイプODCIVARCHAR2LISTを使用できます。 。したがって、JPQLは次のようになります。

    SELECT e 
    FROM   myentity e 
    WHERE  Lower(e.myattribute) IN 
           ( 
                  SELECT Lower(column_value) 
                  FROM   table(sys.odcivarchar2list(?1)))
    

    注: Oracle 12.2 +の場合、tableは必要ありません。 機能するので、以下も機能します:

    SELECT e 
    FROM   myentity e 
    WHERE  Lower(e.myattribute) IN 
           ( 
                  SELECT Lower(column_value) 
                  FROM   sys.odcivarchar2list(?1))
    



    1. JDBCによるOracleの非アクティブなセッション

    2. SQLで列を削除する方法は?

    3. 部分和を計算するMySQLクエリ

    4. Djangomanage.pysyncdbがMySQLdbという名前のモジュールをスローしません