An important restriction involves both parameter markers and the NULL value.
You cannot code the following:
BLOOP(?)
or
BLOOP(NULL)
Since function resolution does not know what data type the argument may turn out to be, it cannot resolve the reference. You can use the CAST specification to provide a data type for the parameter marker or NULL value that function resolution can use:
BLOOP(CAST(? AS INTEGER))
or
BLOOP(CAST(NULL AS INTEGER))