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

¿Por qué obtengo ORA-00932:tipos de datos inconsistentes:esperado - obtenido - cuando uso COLLECT() en una declaración preparada?

Finalmente obtuve una solución a este problema, gracias a la investigación de un usuario. El problema no estaba en el marcador de posición; por qué funcionó sin el marcador de posición en la imagen de VirtualBox, no tengo idea. No, el problema estaba en COLLECT() . Parece que ambos valores que se recopilan deben convertirse en un tipo específico, y la matriz resultante también debe convertirse en un tipo de datos de matriz predefinido. Da la casualidad de que mi código tiene un tipo de matriz personalizada:

CREATE TYPE sqitch_array AS varray(1024) OF VARCHAR2(512);

Entonces puedo hacer que la consulta funcione emitiendo COLLECT() así:

CAST(COLLECT(CAST(t.tags as VARCHAR2(512))) AS sqitch_array)