I think if you rewrite the UDF like this, it might work:
CREATE FUNCTION LASTPOLNR(POL CHAR(20))
RETURNS CHAR(20)
language SQL NOT deterministic NO EXTERNAL ACTION READS SQL DATA CALLED ON NULL INPUT
BEGIN ATOMIC
DECLARE value char(20)
DECLARE astring varchar(30);
SET astring = pol || '%';
SET (value) = (SELECT A211.POLNR FROM A211 WHERE A211.POLNR LIKE astring);
RETURN value;
END @
HTH
Andy