java - ERROR: el operador no existe: numeric = character varying -


i call next query by:

resultobject = em.createnativequery(sql)     .setparameter(1, codentidad)     .setparameter(2, nrolote)     .getresultlist()     ; 

(codentidad, nrolote integer) , gives next error:

internal exception: org.postgresql.util.psqlexception: error: el operador no existe: numeric = character varying
hint: ningĂșn operador coincide con el nombre y el tipo de los argumentos. puede ser necesario agregar conversiones explĂ­citas de tipos.
position: 4539
error code: 0

but when copy result query , replace "?" numbers , execute query in pgadim, works correctly.

select c.nro_ci, c.nombre_completo, c.nro_operacion, c.moneda, c.nro_lote,     c.faja_inform, c.cod_entidad, sum(c.saldo_operacion) saldo_operacion,     sum(c.mto_capital) mto_capital, sum(c.val_int_adelantado)     val_int_adelantado, sum(c.int_dia_pago) int_dia_pago,     sum(c.monto_a_pagar) monto_a_pagar  (select p.nro_documento nro_ci, p.nom_completo nombre_completo,    c.operacion nro_operacion, s.nro_solicitud, s.cod_moneda moneda,    sc.nro_cuota, sc.mto_capital saldo_operacion, sc.fec_vto_habil     fec_vencimiento, next_work_day3( case                     when to_char(sc.fec_vto_habil, 'mm') = '02'                         last_day(sc.fec_vto_habil)                     else to_date('30/'||to_char(sc.fec_vto_habil, 'mm/yyyy'), 'dd/mm/yyyy') end) fec_pago,    case    when sc.fec_vto_habil > next_work_day3( case when to_char(sc.fec_vto_habil, 'mm') = '02' last_day(sc.fec_vto_habil)                                             else to_date('30/'||to_char(sc.fec_vto_habil, 'mm/yyyy'), 'dd/mm/yyyy')                                            end)    0    else next_work_day3( case                         when to_char(sc.fec_vto_habil, 'mm') = '02'                             last_day(sc.fec_vto_habil)                         else to_date('30/'||to_char(sc.fec_vto_habil, 'mm/yyyy'), 'dd/mm/yyyy')                        end) - to_date(to_char(sc.fec_vto_habil, 'dd/mm/yyyy'), 'dd/mm/yyyy')    end dias_interes, sc.mto_capital, sc.val_int_adelantado,    case    when sc.fec_vto_habil > next_work_day3( case when to_char(sc.fec_vto_habil, 'mm') = '02' last_day(sc.fec_vto_habil)                                             else to_date('30/'||to_char(sc.fec_vto_habil, 'mm/yyyy'), 'dd/mm/yyyy')                                             end)     round((sc.mto_capital * 0 * 21) / 36500)    else round((sc.mto_capital * (next_work_day3(case when to_char(sc.fec_vto_habil, 'mm') = '02' last_day(sc.fec_vto_habil)                                                 else to_date('30/'||to_char(sc.fec_vto_habil, 'mm/yyyy'), 'dd/mm/yyyy')                                                 end) - to_date(to_char(sc.fec_vto_habil, 'dd/mm/yyyy'), 'dd/mm/yyyy')) * 21) / 36500)    end int_dia_pago,    case    when sc.fec_vto_habil > next_work_day3( case when to_char(sc.fec_vto_habil, 'mm') = '02' last_day(sc.fec_vto_habil)                                             else to_date('30/'||to_char(sc.fec_vto_habil, 'mm/yyyy'), 'dd/mm/yyyy')                                            end)    (sc.mto_capital - sc.val_int_adelantado) - round((sc.mto_capital * 0     * 21) / 36500)    else       (sc.mto_capital - sc.val_int_adelantado) - round((sc.mto_capital *          (next_work_day3( case when to_char(sc.fec_vto_habil, 'mm') = '02'     last_day(sc.fec_vto_habil)                          else to_date('30/'||to_char(sc.fec_vto_habil,     'mm/yyyy'), 'dd/mm/yyyy')                          end) - to_date(to_char(sc.fec_vto_habil,     'dd/mm/yyyy'), 'dd/mm/yyyy')) * 21) / 36500)    end monto_a_pagar, c.faja faja_inform, s.fec_insercion, c.nro_lote, c.cod_entidad    pr_solicitudes s, pr_sol_cuotas  sc, mi_com_cartera c, ba_personas p    s.nro_solicitud  = c.nro_solicitud , p.cod_persona = s.cod_persona    , sc.nro_solicitud = s.nro_solicitud , sc.nro_cuota     <> 0) c    c.cod_entidad = ?-->@cod_entidad , c.nro_lote    = ?-->@nro_lote.   group c.nro_ci, c.nombre_completo, c.nro_operacion, c.moneda, c.nro_lote, c.faja_inform, c.cod_entidad order 3; 

you wrote "codentidad, nrolote integer".
make sure, none of them null, jpa tend misconvert null values.

or add cast parameters, this:

 c.cod_entidad = cast(? integer) , c.nro_lote = cast(? integer) 

cannot use postgresql's :: operator this, in jpa colon : marks beginning of parameter name.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -