The usual suspect I see is the absence of size in the VARCHAR declaration for @BNP.
Could you maybe change
DECLARE @BNP VARCHAR
to
DECLARE @BNP VARCHAR(10)
and check if it works?
EDIT: Reason why I think this might be the problem ISTR that declaring a variable VARCHAR allots it size=1, so it stores just the first character. By explicitly specifying the appropriate size, we ensure the entire string is stored in the variable.