Java Oracle异常:SQL命令未正确结束
我正在使用JSP和Servlet开发web应用程序(IDE:Eclipse,容器:Tomcat7.0,DB:Oracle10) 我想在一个查询中从两个表中获取数据 查询:Java Oracle异常:SQL命令未正确结束,java,sql,oracle,Java,Sql,Oracle,我正在使用JSP和Servlet开发web应用程序(IDE:Eclipse,容器:Tomcat7.0,DB:Oracle10) 我想在一个查询中从两个表中获取数据 查询: query = "select * from PROTOCOL as a, ACTIONS as b where a.PROTOCOL_ID = b.PROTOCOL_ID"; SELECT select_list FROM table1 t_alias1 WHERE expr operator
query = "select * from PROTOCOL as a, ACTIONS as b where a.PROTOCOL_ID = b.PROTOCOL_ID";
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);
但在运行应用程序后,我得到以下异常:
java.sql.SQLException: ORA-00933: SQL command not properly ended
查询中有什么错误吗?您遇到的问题是关键字
AS
。这用于SELECT
部分中的列。它对于指定表格的中的无效
你有
从协议中选择*作为a,从操作中选择*作为b
应该是
从协议a、操作b中选择*。
从
t\u别名
指定相关名称,该名称是表、视图和,
物化视图,或用于计算查询的子查询。这个别名是
如果选择列表引用任何对象类型属性或
对象类型方法。相关性名称最常用于
相关查询。对表、视图或物化的其他引用
整个查询中的视图必须引用此别名
示例:
query = "select * from PROTOCOL as a, ACTIONS as b where a.PROTOCOL_ID = b.PROTOCOL_ID";
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相邻的名称@gdoron,Yeap。这很常见。但在Oracle中,不允许使用as。@Bhushan协议和操作是否存在,以及查询它们的用户是否可以看到它们(此外,如果您不是以表所有者身份登录,请确保存在同义词,否则必须以所有者名称作为前缀)?@Vash,不确定你在哪里看到了关于alias或as
grammer的任何信息。@gdoron,我已经添加了要回答的文档。你在那里找不到关于As
的任何信息,因为它是不允许的。@Vash,那么你添加的文档到底添加了什么(?!)无论如何,我明天在工作中看到了它是允许的。我将检查As
,我承认我从未使用过它……这是因为协议或操作表不存在,或者在不同的架构中,你没有任何补助金。首先检查表名是否正确,如果正确,请从“所有对象/dba对象”视图中查找详细信息。检查对象名称、对象类型和所有者。如果所有者是,则使用apps.PROTOCOL和apps.ACTIONS更改查询