Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java oracle中,如何绑定值java.sql.SQLException:索引处缺少in或OUT参数:_Java_Oracle_Jdbc - Fatal编程技术网

在java oracle中,如何绑定值java.sql.SQLException:索引处缺少in或OUT参数:

在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

这是我的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  
但我有一个错误
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"));