Oracle java.sql.sqlException:意外标记:第一个\u值
我正在使用Java6、OracleDB和Spring3.0JDBCTemplate开发一个遗留系统 我尝试执行的查询是:Oracle java.sql.sqlException:意外标记:第一个\u值,oracle,spring-jdbc,jdbctemplate,Oracle,Spring Jdbc,Jdbctemplate,我正在使用Java6、OracleDB和Spring3.0JDBCTemplate开发一个遗留系统 我尝试执行的查询是: SELECT department_id, last_name, salary, FIRST_VALUE(last_name) OVER (ORDER BY salary ASC ROWS UNBOUNDED PRECEDING) AS lowest_sal FROM (SELECT * FROM employees WHERE department_id = 90
SELECT department_id, last_name, salary, FIRST_VALUE(last_name)
OVER (ORDER BY salary ASC ROWS UNBOUNDED PRECEDING) AS lowest_sal
FROM (SELECT * FROM employees WHERE department_id = 90
ORDER BY employee_id)
ORDER BY department_id, last_name, salary, lowest_sal;
但我得到了以下错误:
java.sql.SQLException:意外标记:语句中的第一个值
[选择部门id、姓氏、薪资、首值(姓氏)
以上(按薪资ASC行排序,前面无限制)为…]
在sql developer中运行相同的查询可以正常运行。我不知道出了什么问题。在我看来,Java 6应用程序实现的客户端版本存在问题,早期客户端可能不支持FIRST_值和窗口构造(OVER子句)等指令,因为它们自9i版本起就被合并到DBMS中 在Forms6i环境中尝试使用select语句时,我遇到了一些问题,例如select语句中的“无效”CASE条件,因为该版本的内置客户端无法解析该语句,即使我连接到11g DBMS
解决方法可能是在数据库中创建一个存储过程来检索数据,然后执行并读取应用程序的结果。我觉得Java 6应用程序实现的客户端版本、FIRST_值和窗口构造(OVER子句)等指令都有问题在旧客户端中可能不受支持,因为自9i版本以来,旧客户端已并入DBMS 在Forms6i环境中尝试使用select语句时,我遇到了一些问题,例如select语句中的“无效”CASE条件,因为该版本的内置客户端无法解析该语句,即使我连接到11g DBMS 解决方法可能是在数据库中创建一个存储过程来检索数据,然后从应用程序中执行并读取结果