Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号错误_Java_Oracle - Fatal编程技术网

java.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号错误

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

我想在godownname和itemname匹配时从表中获取最后可用余额

我试过一些代码。但是我对Oracle中的
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字段值。(考虑到有更多的事务完成。在这个环境中只得到最后一个可用的平衡字段值)。