在java oracle中,如何绑定值java.sql.SQLException:索引处缺少in或OUT参数:
这是我的SQL在java oracle中,如何绑定值java.sql.SQLException:索引处缺少in或OUT参数:,java,oracle,jdbc,Java,Oracle,Jdbc,这是我的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.MARKETINGAUT
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
但我有一个错误
java.sql.SQLException:索引::4处缺少IN或OUT参数 我在SQL中有两个“货物编号”、“货物名称”和“显示位置” 所以
我该怎么办?请用英语提供错误文本java.sql.SQLException:index::4缺少in或OUT参数如果我只有一个“GOODS\u NO”、“GOODS\u NAME”和“DISPLAY\u LOCATION”,它可以工作我对java不是很熟悉,无法告诉您这是否可以按您期望的方式工作,但是
CallableStatement
用于过程调用。对于DML,您需要PreparedStatement
,这反过来又不支持命名参数。您可以使用自己的类包装器解决此问题,或者重写代码,如GOODS\u-NO-like coalesce('%'.\124; |'%','%')
,以避免重复。
OracleConnection connection = conn.unwrap(OracleConnection.class);
ocall = (OracleCallableStatement) connection.prepareCall(SQL);
……………………………………
ocall.setObjectAtName(obj.getString("ParameterName"),obj.get("Value"),obj.getInteger("Type"));
OracleConnection connection = conn.unwrap(OracleConnection.class);
ocall = (OracleCallableStatement) connection.prepareCall(SQL);
……………………………………
ocall.setObjectAtName(obj.getString("ParameterName"),obj.get("Value"),obj.getInteger("Type"));