this is my SQL
SELECT *
FROM (SELECT T_GDS.OWNER_NO,
T_GDS.GOODS_NO,
T_GDS.GOODS_NAME,
T_GDS.GOODS_LENGTH,
T_GDS.GOODS_WIDTH,
T_GDS.GOODS_HEIGHT,
T_GDS.MARKETINGAUTHORISATIONHOLDER,
(SELECT MIN(T_STK.DISPLAY_LOCATION)
FROM VIW_FD_STOCK T_STK
WHERE T_STK.GOODS_ID = T_GDS.GOODS_ID) DISPLAY_LOCATION
FROM FD_GOODS T_GDS
LEFT JOIN REC_GOODS_RST T_RST
ON T_GDS.GOODS_ID = T_RST.GOODS_ID
WHERE T_GDS.IS_AVAILABLE = 'Y'
AND T_RST.LWH_MOD_FLG IS NULL
AND T_GDS.IS_GIFT = 'N'
AND (T_GDS.GOODS_LENGTH < = 1 OR T_GDS.GOODS_WIDTH < = 1 OR
T_GDS.GOODS_HEIGHT < = 1)
AND EXISTS
(SELECT 1 FROM FD_STOCK T WHERE T.GOODS_ID = T_GDS.GOODS_ID))
WHERE (:GOODS_NO IS NULL OR GOODS_NO LIKE '%' || :GOODS_NO || '%')
AND (:GOODS_NAME IS NULL OR GOODS_NAME LIKE '%' || :GOODS_NAME || '%')
AND (:DISPLAY_LOCATION IS NULL OR DISPLAY_LOCATION LIKE '%' || :DISPLAY_LOCATION || '%')
ORDER BY DISPLAY_LOCATION,GOODS_NO
call = conn.prepareCall(SQL);
call.setObject("GOODS_NO", obj.get("Value"), obj.getInteger("Type"))
call.setObject("GOODS_NAME", obj.get("Value"), obj.getInteger("Type"))
call.setObject("DISPLAY_LOCATION", obj.get("Value"), obj.getInteger("Type"))
but I get error java.sql.SQLException: Missing IN or OUT parameter at index:: 4
I have two "GOODS_NO","GOODS_NAME" and "DISPLAY_LOCATION" in SQL so what should I do?