2017-07-13 151 views
0

我試圖運行這個腳本,併爲我的生活我無法得到它的工作..這是我給的信息來創建腳本,並且我的教授告訴我不要使用INT,而是使用數字或varchar。仍然不起作用..下面是我創建的腳本,以及錯誤代碼。我究竟做錯了什麼?如何在Oracle SQL Developer中跟蹤CREATE TABLE語句中的語法錯誤?

INV_NUMBER is an integer,    
LINE_NUMBER is an integer,    
P_CODE is a varchar with length 10    
LINE_UNITS is a number with length 9 and two digits after decimal point    
LINE_PRICE is a number with length 9 and two digits after decimal point     


CREATE TABLE LINE (
INV_NUMBER int, 
LINE_NUMBER int, 
P_CODE VARCHAR (10), 
LINE_UNITS NUMBER(9,2), 
LINE_PRICE NUMBER(9,2), 
); 

Error starting at line : 1 in command - 
CREATE TABLE LINE (
INV_NUMBER int, 
LINE_NUMBER int, 
P_CODE VARCHAR (10), 
LINE_UNITS NUMBER(9,2), 
LINE_PRICE NUMBER(9,2), 
) 

錯誤報告 - ORA-00904:無效的標識符 00904. 00000 - 「%s的:無效的標識符」 *原因:
*操作:

+0

oracle通常是varchar2不是嗎?按照ANSI標準規定,VARCHAR被Oracle保留以支持將來的NULL和空字符串之間的區分。 VARCHAR2不區分NULL和空字符串,永遠不會。如果你依賴於空字符串和NULL是相同的東西,你應該使用VARCHAR2 – xQbert

回答

1

重新格式化你的代碼清晰的狀態使得錯誤更加清晰:

CREATE TABLE LINE ( 
    INV_NUMBER int 
    , LINE_NUMBER int 
    , P_CODE VARCHAR (10) 
    , LINE_UNITS NUMBER(9,2) 
    , LINE_PRICE NUMBER(9,2) 
    , 
); 

尾隨逗號是你的問題。刪除它,你的CREATE應該工作。

CREATE TABLE LINE ( 
    INV_NUMBER int 
    , LINE_NUMBER int 
    , P_CODE VARCHAR (10) 
    , LINE_UNITS NUMBER(9,2) 
    , LINE_PRICE NUMBER(9,2) 
); 
+0

你是令人難以置信的人..哇,它總是最小的事情.. – cvelasquez1121

+0

@ cvelasquez1121如果回答你的問題,請考慮接受答案。這是投票按鈕下的小複選標記:) – Jacobm001

+0

做到了! :)抱歉,我是本網站的新手。祝您愉快! – cvelasquez1121

0

你有一個逗號在年底有.. 還教授告訴您不使用「INT」,但它看起來像你還在使用嗎......?爲什麼?...

+1

是的Idk ..但我刪除它,並添加了NUMBER。問題是,我不知道要把什麼放在括號內。除非我不需要做任何事情? – cvelasquez1121

+1

經驗法則:如果您永遠不需要對它進行數學運算,而且它不是日期,則將其存儲爲varchar。如果你需要做數學運算,將它作爲數字進行存儲。如果它是一個日期存儲它作爲日期。數字和varchar的精度和比例因需求而異。 – xQbert

+0

我會記住這一點。非常感謝。 – cvelasquez1121

相關問題