gpt4 book ai didi

java.sql.SQLException : ORA-01036: illegal variable name/number

转载 作者:行者123 更新时间:2023-12-01 12:07:21 26 4
gpt4 key购买 nike

我在使用 Oracle 11g 从 Java 运行 Oracle 查询时遇到了一个奇怪的问题。同样的查询在 Oracle 10g 上运行良好。 tool_availability 是一个 View 。

final String SELECT_SQL = "select * " +
"from tool_availability " +
"where tool_code = ? " +
"and tool_number = ? " +
"and unit = ? " +
"and part_id = ? ";

ps = con.prepareStatement(SELECT_SQL);
ps.setFetchDirection(ResultSet.FETCH_FORWARD);
ps.setFetchSize(1);
ps.setString(1, tool_code);
ps.setString(2, tool_number);
ps.setString(3, unit);
ps.setString(4, part_id);
rs = ps.executeQuery();

查询在“?”前后有空格标记。相同的查询不适用于 11g,并且出现以下错误:

java.sql.SQLException: ORA-01036: illegal variable name/number  

如果我删除“?”前后的空格标记。相同的查询适用于 11g。

任何人都可以提供一些可能出现问题的见解吗?

最佳答案

你必须避免在preparedstatement中设置String。

在preparedStatement中,您需要设置实际类型。

ps.setString(1, tool_code);
ps.setInt(2, tool_number);
ps.setInt(3, unit);
ps.setString(4, part_id);

就像你必须做的那样

关于java.sql.SQLException : ORA-01036: illegal variable name/number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com