Hola a todos, estoy desesperado con un problema. Os cuento, tengo un procedimiento almacenado que recupera de una tabla mediante un cursor una serie de datos, necesito comprar un campo de del registro (que está declarado como Varchar2) con un literal. Pues bien aunque el literal es identico al valor del campo no se cumple la comparación. Soy nuevo en esto del PL/SQL y no se si para comparar cadenas hay que hacer algo especial. Os pongo el código para que lo veais.
Este es el cursor:
CURSOR TLINEAS_NUEVAS IS SELECT REL.CODART, REL.DESART, REL.TIPO_IVA,
SUM(ALB.CANTIDAD) CANTIDAD, REL.PVP PRECIO
FROM MIC2000V14.d03DET_ALBARANES_CLIE_TBL ALB,
MIC2000V14.d03ARTICULOS_TBL ART,
MIC2000V14.d03ARTICULOS_TBL REL
WHERE (ALb.codemp = pcodemp and ALB.PERIODO = PPERIODO
AND ALB.TIPO = PTIPO
AND ALB.CODSERIE = PCODSERIE
AND ALB.NUMALB = PNUMALB ) AND
(ART.CODART = ALB.CODART ) AND
(REL.CODART = ART.CODART_RELACIONADO)
GROUP BY REL.CODART, REL.DESART, REL.TIPO_IVA, REL.PVP;
CLINEAS_NUEVAS TLINEAS_NUEVAS%ROWTYPE;
FOR CLINEAS_NUEVAS IN TLINEAS_NUEVAS LOOP
--ACUMULAMOS LAS CANTIDADESD DE LOS CESTILLOS
IF (CLINEAS_NUEVAS.CODART = '0000000002070') THEN
VCANTIDAD_CESTILLO := VCANTIDAD_CESTILLO + CLINEAS_NUEVAS.CANTIDAD;
END IF;
END LOOP;
Este es el cógigo, lo que resalto en negrita es lo que no se cumple.