oracle在执行SQL语句是。有同名变量怎么绑定啊

ighack ighack 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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


我是这样做的,选生成perpareCall对像
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

然后我有6个变量但是同名的。实际只有3个。我也绑定了三个。但还是报错。但在.NET里这个同名变量绑定是可以正常执行的

就算我把同名的变量绑定两次也不行。报同样的错误
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
ighack
Java SE 62,620 成员 307,251 内容