【问题标题】:Oracle sql - ORA-00907 and my incorrect syntaxOracle sql - ORA-00907 和我不正确的语法
【发布时间】:2015-02-09 06:33:03
【问题描述】:

我无法弄清楚以下代码的语法问题。当我运行它时,我得到错误

ORA-00907:缺少右括号

谁能指出我的缺点?

CREATE OR REPLACE VIEW LATESTAPPLICATIONS AS 
SELECT *
FROM application_history
WHERE entry_time IN
    (SELECT entry_time
    FROM application_history
    GROUP BY application_number; )
ORDER BY entry_number;​

这是application_history 的表定义。理想情况下,我只想查看带有最新时间戳的应用程序编号。

 CREATE TABLE  "APPLICATION_HISTORY" 
   (    "ENTRY_NUMBER" NUMBER(28,0), 
"APPLICATION_NUMBER" NUMBER(16,0) CONSTRAINT "APP_NUM_NN" NOT NULL ENABLE, 
"ACTIVE" CHAR(1) DEFAULT 0 CONSTRAINT "ACTIVE_NN" NOT NULL ENABLE, 
"STATUS" VARCHAR2(40) DEFAULT 'APPLICATION ENTERED' CONSTRAINT "STATUS_NN" NOT NULL ENABLE, 
"DATE_APPROVED" DATE, 
"DATE_APPLIED" DATE DEFAULT SYSDATE CONSTRAINT "DATE_APPLIED_NN" NOT NULL ENABLE, 
"ENTRY_TIME" TIMESTAMP (6) DEFAULT SYSDATE, 
 CONSTRAINT "ENTRY_NUM_PK" PRIMARY KEY ("ENTRY_NUMBER")
USING INDEX  ENABLE
 )

【问题讨论】:

  • 您的查询中间有一个;。应该作为错字关闭...

标签: oracle parentheses ora-00907


【解决方案1】:

您在最后一行有一个分号,但只有 1 行。 GROUP BY application_number; )删除它,你应该没事。

分号在 Oracle 中充当查询终止符,因为您将它放在 ) Oracle 找不到它之前。

【讨论】:

  • 当我删除分号时,我收到错误:ORA-00933: SQL 命令未正确结束
  • @IamPancakeMan 你还面临这个问题吗?最后需要 1 个分号
猜你喜欢
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 2021-07-29
相关资源
最近更新 更多