在 java oracle 如何绑定值,java.sql.SQLException:索引处缺少 IN 或 OUT 参数::
in java oracle How can I bind value ,java.sql.SQLException: Missing IN or OUT parameter at index::
这是我的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"))
但我收到错误
java.sql.SQLException:索引处缺少 IN 或 OUT 参数:: 4
我在 SQL 中有两个“GOODS_NO”、“GOODS_NAME”和“DISPLAY_LOCATION”
所以
我该怎么办?
OracleConnection connection = conn.unwrap(OracleConnection.class);
ocall = (OracleCallableStatement) connection.prepareCall(SQL);
……………………………………
ocall.setObjectAtName(obj.getString("ParameterName"),obj.get("Value"),obj.getInteger("Type"));
这是我的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"))
但我收到错误 java.sql.SQLException:索引处缺少 IN 或 OUT 参数:: 4
我在 SQL 中有两个“GOODS_NO”、“GOODS_NAME”和“DISPLAY_LOCATION” 所以 我该怎么办?
OracleConnection connection = conn.unwrap(OracleConnection.class);
ocall = (OracleCallableStatement) connection.prepareCall(SQL);
……………………………………
ocall.setObjectAtName(obj.getString("ParameterName"),obj.get("Value"),obj.getInteger("Type"));