Oracle异常:SQL命令未正确结束

时间:2013-01-02 11:53:08

标签: java sql oracle

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

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

查询:

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

查询有什么问题吗?

3 个答案:

答案 0 :(得分:12)

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

你有

select * from PROTOCOL as a, ACTIONS as b

应该是

select * from PROTOCOL a, ACTIONS b...

来自Oracle Docs

  

<强> t_alias

     

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

示例:

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); 

答案 1 :(得分:2)

错误的别名语法。尝试以下方法:

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

答案 2 :(得分:0)

这里的评论可能需要它.PostgreSQL似乎接受FROM / JOIN旁边的AS