More than 4000 chars gives string literal too long error on oracle
Alex Poole is correct, the call is in an SQL context which can only handle 4000 characters.  You could solve this by calling the method in a block like this:

Begin
   UPDATE_LETTER_BODY('long string',201);
End;
/


Other options include using another method to call Update_Letter_Body, creating a method to be called repeatedly to add text over 4000 characters, or using multiple input parameters.