2012-10-21 71 views
1

我是SQL新手,試圖創建一個基本的emp表來學習一點。當我編寫查詢並嘗試執行它時,我不斷收到消息「ORA-00907:缺少右括號」。不過,我覺得我已經爲每個功能包含了一對大括號。任何人都可以請幫我找出問題,如果可能的話可以糾正我,如果我錯了?SQL:試圖在SQL中創建表時爲什麼會出現此錯誤?

下面是示例

SQL> create table emp 
    2 (emp id number(4), 
    3 first name varchar2(25), 
    4 last name varchar2(25), 
    5 phone number number (10), 
    6 department id number (4), 
    7 job id number (4), 
    8 salary number (6,2), 
    9 commission_pct number (4,2), 
10 manager id number (4); 
(emp id number (4), 
     * 
ERROR at line 2: 
ORA-00907: missing right parenthesis 
+3

不要光想着自己是完全new..think自己作爲一個聰明聰明的傢伙..你會很容易地通過查看錯誤消息來發現這樣愚蠢的錯誤。 – dotNETbeginner

回答

6

你必須要在第2行開始括號;

(emp id number(4), 
^ 

在第10行沒有關閉;

manager id number (4); 
        ^missing 

此外,您不能在列名中引用空格而不引用它們。我建議用_來替換空格,而不必在任何地方引用它們。

SQL> create table emp 
    2 (emp_id number(4), 
    3 first_name varchar2(25), 
    4 last_name varchar2(25), 
    5 phone_number number (10), 
    6 department_id number (4), 
    7 job_id number (4), 
    8 salary number (6,2), 
    9 commission_pct number (4,2), 
10 manager_id number (4)); 

SQLfiddle test

+2

這就是人們應該如何教導的方式:) – manix

2

你列上有空間,如果你要離開的空間你的桌子上,用雙引號"

create table emp 
(
    "emp id" number(4), 
    "first name" varchar2(25), 
    ..... 
); 

但最好的方法是沒有它增加空間來創建列名包裹。

create table emp 
(
    empID number(4), 
    firstName varchar2(25), 
    ..... 
); 
2

我在這裏發現了3個錯誤。

  1. 在SQL中,您必須使用numeric而不是數字。
  2. 你不能在字段中保留空格。
  3. 你需要關閉查詢的梅開二度結束,

代碼:

create table emp 
     (emp_id numeric(4), 
     first_name varchar(25), 
     lastname varchar(25), 
     phone_number numeric (10), 
     department_id numeric (4), 
     job_id numeric (4), 
     salary numeric (6,2), 
     commission_pct numeric (4,2), 
     manager_id numeric (4)) 

這裏是SQL Fiddle Demo

+2

'number'是Oracle中完全有效的數據類型。 –

+0

@a_horse_with_no_name他問這個基於SQL的問題。 – DevT

+1

SQL是Oracle使用的查詢語言。那麼你有什麼意見? –

相關問題