Hi nphana,
Instead of using single function, you can create another function and Invoke the function and can use IN parameter.
Here is the example:
CREATE FUNCTION RAJ.MY_FUNC (I_VKORG NVARCHAR (4), I_VTWEG NVARCHAR (2),
I_SPART NVARCHAR (2), I_PARVW NVARCHAR (2), I_PARZA NVARCHAR (3) )
RETURNS TABLE (KUNNR NVARCHAR (10))
LANGUAGE SQLSCRIPT AS
BEGIN
RETURN
SELECT "ECC2HANA"."KNVP".KUNNR FROM "ECC2HANA"."KNVP"
WHERE "ECC2HANA"."KNVP".VKORG = :I_VKORG
AND "ECC2HANA"."KNVP".VTWEG = :I_VTWEG
AND "ECC2HANA"."KNVP".SPART = :I_SPART
AND "ECC2HANA"."KNVP".PARVW = :I_PARVW
AND "ECC2HANA"."KNVP".PARZA = :I_PARZA
;
END
;
SELECT * FROM RAJ.MY_FUNC('7500','10','00','AG','000');
Result is shown below:
Now I created another function so that I can use the result set of above function which is used as criteria for some other table.
I not used any input parameter for second function but can be used if required.
CREATE FUNCTION RAJ.FUNC_MY_FUNC ( )
RETURNS TABLE (NAME1 NVARCHAR (35))
LANGUAGE SQLSCRIPT AS
BEGIN
RETURN
SELECT "ECC2HANA"."KNA1".NAME1 FROM "ECC2HANA"."KNA1"
WHERE "ECC2HANA"."KNA1".KUNNR IN (SELECT * FROM RAJ.MY_FUNC('7500','10','00','AG','000'));
END;
Result is shown below:
Similarly you can do for your requirement.
Regards
Raj