I'm afraid neither UDF nor procedure accept null scalar params. Depending on your business case and solution requirements, you may try to assume:
- passed scalar param is null if one's length is 0
- pass and recognize unique value within function if param is null, I mean:
select * from SP_TEST_FN_PARAM_NULL(CASE WHEN <param> is NULL THEN '<unique value>' ELSE <param> END);
and inside your TUDF:return select case when :p = '<unique value>' ...
Regards,
Michal