Oracle异常:SQL命令没有正确结束



我正在使用JSP和Servlet (IDE: Eclipse, Container: Tomcat7.0, DB: Oracle 10)开发web应用程序

我想在一个查询中从两个表中获取数据

查询:

query = "select * from PROTOCOL as a, ACTIONS as b where a.PROTOCOL_ID = b.PROTOCOL_ID";

但是在运行应用程序后,我得到以下异常:

java.sql.SQLException: ORA-00933: SQL command not properly ended

查询有什么问题吗?

问题是关键字AS。这用于SELECT部分中的列。对于指定表的FROM无效。

你有

select * from PROTOCOL as a, ACTIONS as b

应该

select * from PROTOCOL a, ACTIONS b...

From Oracle Docs

t_alias

指定关联名称,该名称是表、视图、物化视图,或用于计算查询的子查询。别名是如果选择列表引用任何对象类型属性或对象类型方法。关联名称最常用于相关查询。对表、视图或物化的其他引用整个查询中的视图必须引用此别名。

例子:

SELECT select_list 
    FROM table1 t_alias1 
    WHERE expr operator 
        (SELECT column_list 
            FROM table2 t_alias2 
            WHERE t_alias1.column 
               operator t_alias2.column); 

别名语法错误。试试以下命令:

query = "select * from PROTOCOL a,ACTIONS b where a.PROTOCOL_ID = b.PROTOCOL_ID";

这里有一个评论,任何人可能需要它。PostgreSQL似乎在FROM/JOIN

旁边接受AS

最新更新