java.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号错误
我想在godownname和itemname匹配时从表中获取最后可用余额 我试过一些代码。但是我对Oracle中的java.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号错误,java,oracle,Java,Oracle,我想在godownname和itemname匹配时从表中获取最后可用余额 我试过一些代码。但是我对Oracle中的last\u value()函数有一个问题 我得到了一个错误: 严重:空 java.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号 位于oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:450) 位于oracle.jdbc.driver.t4cttiore.processError
last\u value()
函数有一个问题
我得到了一个错误:
严重:空
java.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号位于oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:450)
位于oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:399)
位于oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
位于oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
位于oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
位于oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
位于oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
位于oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
在oracle.jdbc.driver.T4CPreparedStatement.executeforderdescripe(T4CPreparedStatement.java:776)
在oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)
在oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
在oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
在oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
在oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)
我不知道哪里出错了?。 有人能帮我吗 这是我的密码:
String updateQuery = "select last_value(availablebalance) ignore nulls over(order by receiveddate or transdate) from t_stocks_status where godownname = ? and itemname = ?";
ps = con.prepareStatement(updateQuery);
ps.setString(1, fromField);
ps.setString(2, itemName);
rs = ps.executeQuery();
if (rs.next()) {
availableQty = rs.getInt(1);
}
您的order by子句有问题。
over(order by receiveddate或transdate)
它可能类似于over(按接收日期、转换日期订购)
从中查看ORDERBY子句语法--
按{column Name | ColumnPosition | Expression}排序
[ASC | DESC]
[先空|后空]
[,列名称|列位置|表达式
[ASC | DESC]
[先空|后空]
]*
你能解释一下你想问什么吗?
over
条款对我来说没有任何意义。按收货日期或按日期订购您想用它做什么?这在语法上是不正确的。发布一些示例数据,解释规则并显示所需的输出。这是一个事务表,这里我想在godownname和itemnames匹配时从表中获取上次更新或插入的AvailableLence字段值。(考虑到有更多的事务完成。在这个环境中只得到最后一个可用的平衡字段值)。