Comparar cadenas en PL/SQL

tema enviado por Javi en ORACLE
tema iniciado el 10/07/2007

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.