给定查询在ORACLE SQL Developer上运行时执行良好,但在通过Java代码执行时会抛出ORA-00923: FROM keyword not found where expected
。
UPDATE RESTRICTED_MARKET_OWNER
SET OWNER_ID='abc'
WHERE OWNER_ID='xyz' AND RESTRICTED_MARKET_ID IN
(
SELECT M.RESTRICTED_MARKET_ID
FROM RESTRICTED_MARKET M, RESTRICTED_MARKET_OWNER RM
WHERE RM.RESTRICTED_MARKET_ID = M.RESTRICTED_MARKET_ID AND
M.RELEASE='Rel123' AND RM.OWNER_ID='xyz'
)
对此有任何建议
爪哇查询
UPDATE RESTRICTED_MARKET_OWNER SET OWNER_ID=? WHERE OWNER_ID=? AND RESTRICTED_MARKET_ID IN ( SELECT M.RESTRICTED_MARKET_IDFROM RESTRICTED_MARKET M , RESTRICTED_MARKET_OWNER RM WHERE RM.RESTRICTED_MARKET_ID=M.RESTRICTED_MARKET_ID AND M.RELEASE=? AND RM.OWNER_ID=? )
pstmt.setString(1, 'abc');
pstmt.setString(2, 'xyz');
pstmt.setString(3, 'Rel123');
pstmt.setString(4, 'xyz');
pstmt.executeUpdate();
这似乎是 Java 查询中的拼写错误,表名和 FROM
关键字之间缺少空格:
SELECT M.RESTRICTED_MARKET_IDFROM RESTRICTED_MARKET M.
因此,更正语法将使查询正常工作。