【问题标题】:"missing right parenthesis" error with my VIEW statement (Oracle)我的 VIEW 语句出现“缺少右括号”错误 (Oracle)
【发布时间】:2015-01-19 23:53:26
【问题描述】:

我的 SQL 代码出现以下错误:

命令行错误:50 列:1 错误报告:SQL 错误:ORA-00907: 缺少右括号 00907. 00000 - “缺少右括号” *原因:
*行动:

这是我的代码

CREATE VIEW mytestview1 (a,b,c,d,e,f,g,h,i,j,k)
AS 
(
  SELECT *
  FROM employees
  WHERE employee_id BETWEEN 5 AND 200
  ORDER BY first_name asc

)

我想根据这个表创建视图:Employees

-------------- -------- ------------ 
EMPLOYEE_ID    NOT NULL NUMBER(6)    
FIRST_NAME              VARCHAR2(20) 
LAST_NAME      NOT NULL VARCHAR2(25) 
EMAIL          NOT NULL VARCHAR2(25) 
PHONE_NUMBER            VARCHAR2(20) 
HIRE_DATE      NOT NULL DATE         
JOB_ID         NOT NULL VARCHAR2(10) 
SALARY                  NUMBER(8,2)  
COMMISSION_PCT          NUMBER(2,2)  
MANAGER_ID              NUMBER(6)    
DEPARTMENT_ID           NUMBER(4)    

【问题讨论】:

    标签: sql oracle view


    【解决方案1】:

    完全去掉括号:

    CREATE VIEW mytestview1 (a,b,c,d,e,f,g,h,i,j,k)
    AS 
      SELECT *
      FROM employees
      WHERE employee_id BETWEEN 5 AND 200
      ORDER BY first_name asc;
    

    问题是在这里订购。这也可以:

    CREATE VIEW mytestview1 (a,b,c,d,e,f,g,h,i,j,k)
    AS (
      SELECT *
      FROM employees
      WHERE employee_id BETWEEN 5 AND 200
      )
      ORDER BY first_name asc;
    

    创建视图定义为:CREATE ... VIEW ... AS <subquery>。其中<subquery> 的语法如下:

    如您所见,ORDER BY 必须在(<subquery>) 之外

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多