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
Post a Comment