Selección de SQL desde muy larga lista de valores

Lucas Noetzold:

Necesito seleccionar sobre la base de una gran lista:

SELECT ... FROM tb WHERE tb.cl IN (?, ?, ?, ..................many)

No puedo hacerlo de esta manera debido a que la implementación del controlador ( Jaybird ) limita la consulta a 1500 max parámetros, también no puedo seleccionar / cargar todos y filtro dentro de la aplicación, ya que no hay suficiente memoria.

¿Qué tengo que hacer?

Otros detalles

Estoy usando Boot primavera con Hibernate y JPA repositorios, por lo que si se podía hacer en JPQL o usar alguna otra técnica relacionada con el medio ambiente que podría encajar mejor.

En realidad voy a utilizar una ...WHERE tb.cl NOT IN..., si hace alguna diferencia.
Es un poco como un EDI, estoy conexión de dos bases de datos distintas, por lo que usar un selecto anidado no es una opción.

Gerardo Arroyo :

Una alternativa es utilizar una tabla temporal y hacer tantas como sea necesario insertos en esa tabla. Después de que se puede utilizar un:

Select .. from tb where tb.cl in (select cl from myTempTable)

y luego hacer un truncado en la tabla temporal o una caída. Por lo que yo sé, todas las bases de datos relacionales líderes establecen un límite en la cláusula IN si está utilizando parámetros. Por otro lado, el uso de una tabla temporal hará el truco.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331527&siteId=1
Recomendado
Clasificación