2012-10-13 20 views
7

Sto cercando di modificare una tabella nel database Oracle con l'aggiunta di due nuove colonne ad essa con query SQL, come di seguito:ALTER sintassi TABLE

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

Su eseguirla, sto ottenendo un errore come di seguito:

SQL Error: ORA-30649: missing DIRECTORY keyword

Ho giocato intorno ma non è stato d'aiuto. Cosa c'è di sbagliato nella query SQL?

+0

E 'questo per Oracle o per MySQL? –

+0

Errore MySQL o Oracle? –

+4

Se tutto il resto fallisce, leggere il manuale: http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#CJAHHIBI –

risposta

26

penso che è necessario mettere NOT NULL dopo il DEFAULT 52.50:

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

@ypercubeIt ha funzionato. Sembra che l'ordine degli attributi abbia fatto la differenza. Grazie – Sarahfromnowhere

+0

Modifica il tag della domanda. Hai chiaramente Oracle, non importa quale applicazione stai usando per connettersi ad esso. –

+0

Indipendentemente dal nome del corso, il messaggio di errore *** "Errore SQL: ORA-30649: manca la parola chiave DIRECTORY" *** ha un ** "ORA -" ** che indica chiaramente che il DBMS a cui si è connessi è Oracle. Inoltre, la sintassi per 'ALTER TABLE' varia leggermente tra i due. –

-1

questa è la sintassi corretta per il vostro problema

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

Si prega di non aggiungere risposte che ripetono solo ciò che è stato già detto (cinque anni fa ...) – Mat

Problemi correlati