错误:ORA-00933:SQL命令未正确结束

时间:2014-08-13 16:29:16

标签: mysql sql oracle oracle11g

我正试图从MySQL迁移到Oracle,我的一个查询最初看起来像这样

SELECT t1.table_name 
FROM db_available AS t1 
INNER JOIN db_user_access AS t2 
    ON t1.id=t2.db_id 
WHERE t2.user_id=100 AND t2.expires >= NOW(); 

但是,当我在ORACLE中运行相同的查询并进行微小更改时......

SELECT t1.table_name 
FROM db_available AS t1 
INNER JOIN db_user_access AS t2 
    ON t1.id=t2.db_id 
WHERE t2.user_id=100 
    AND t2.expires >= SYSDATE;

它给了我以下错误:

  

SQL错误:ORA-00933:SQL命令未正确结束00933. 00000 - “SQL命令未正确结束”

Oracle SQL Developer工具强调了语句

部分的问题
  

AS t1

我读了一些其他问题,提到围绕Oracle语句的某些部分放置括号,但是我只是一个初学者并且还没有完全理解Oracle数据库,所以我真的不知道在哪里放置它们或者如果它们在这种情况下甚至需要。

2 个答案:

答案 0 :(得分:2)

中,您在表格别名时不需要指定as

SELECT t1.table_name 
FROM db_available t1 
INNER JOIN db_user_access t2 
    ON t1.id=t2.db_id 
WHERE t2.user_id=100 
    AND t2.expires >= SYSDATE;

答案 1 :(得分:0)

SELECT t1.table_name 
FROM db_available t1, db_user_access t2 
WHERE t1.id=t2.db_id 
  AND t2.user_id=100 
  AND t2.expires >= SYSDATE;

根据oracle文档,您也不需要使用显式连接。