2012-10-13 207 views
7

我試圖通過增加兩個新的列在它與SQL查詢,如下來改變的Oracle數據庫中的表:ALTER TABLE語法

ALTER TABLE Members 
     ADD annual_dues NUMBER(5,2) not null DEFAULT '52.50', 
     ADD payment_date DATE; 

上執行它,我收到了如下錯誤:

SQL Error: ORA-30649: missing DIRECTORY keyword

我玩過它,但沒有幫助。 SQL查詢中有什麼錯誤?

+0

這是對Oracle或MySQL的? –

+0

MySQL或Oracle錯誤? –

+4

如果一切都失敗,請閱讀手冊:http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#CJAHHIBI –

回答

26

我認爲你需要把NOT NULLDEFAULT 52.50後:

ALTER TABLE Members 
    ADD (annual_dues NUMBER(5,2) DEFAULT 52.50 NOT NULL 
     , payment_date DATE); 
+0

@ypercubeIt工作。似乎屬性的順序造成了差異。謝謝 – Sarahfromnowhere

+0

請編輯問題的標籤。無論您使用哪種應用程序來連接它,您都清楚擁有Oracle。 –

+0

無論課程名是什麼,錯誤消息***「SQL錯誤:ORA-30649:缺少DIRECTORY關鍵字」***都有一個**「ORA - 」**,這清楚地表明您連接到的DBMS是Oracle。另外,'ALTER TABLE'的語法在兩者之間略有不同。 –

-1

這是正確的語法您的問題

alter table members 
    add (annual_dues decimal (5,2) default '52.50' not null, 
payment_date date); 
+4

請不要添加只是重複已經說過的答案(五年前...) – Mat