2012-10-13 13 views
7

Próbuję zmienić tabelę w bazie danych Oracle, dodając dwie nowe kolumny do niego z zapytaniem SQL jak poniżej:ALTER TABLE składni

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

Na wykonanie go, otrzymuję komunikat o błędzie, jak poniżej:

SQL Error: ORA-30649: missing DIRECTORY keyword

Grałem w to, ale to nie pomogło. Co jest nie tak w zapytaniu SQL?

+0

Czy to dla Oracle lub MySQL? –

+0

Błąd MySQL lub Oracle? –

+4

Jeśli wszystko inne zawiedzie, przeczytaj instrukcję: http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#CJAHHIBI –

Odpowiedz

26

myślę, że trzeba umieścić NOT NULL po DEFAULT 52.50:

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

@ ypercubePoprawił. Wygląda na to, że kolejność atrybutów sprawiła różnicę. Dzięki – Sarahfromnowhere

+0

Edytuj znacznik pytania. Masz wyraźnie Oracle, bez względu na to, z jakiej aplikacji korzystasz. –

+0

Bez względu na nazwę kursu, komunikat o błędzie *** "Błąd SQL: ORA-30649: brakujące słowo kluczowe DIRECTORY" *** ma ** "ORA -" ** co jest wyraźnym sygnałem, że DBMS, do którego jesteś podłączony to jest Oracle. Ponadto składnia "ALTER TABLE" różni się nieco między tymi dwoma. –

-1

to jest poprawna składnia dla problemu

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

Proszę nie dodawać odpowiedzi, które po prostu powtarzają to, co zostało już powiedziane (pięć lat temu ...) – Mat

Powiązane problemy