sql >> Base de Datos >  >> RDS >> Oracle

Función JPQL LOWER en expresión IN

JPQL está funcionando según lo diseñado. Está interpretándolo bien, así es como se definen la función y el parámetro en su código.

Para lograr el resultado deseado con Oracle, puede utilizar el tipo de colección de Oracle incorporado ODCIVARCHAR2LIST . Entonces JPQL se verá a continuación:

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

NOTA: Para Oracle 12.2+, no necesita table función, por lo que a continuación también funcionará:

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