2014-12-27 47 views
0
create table patient (
    p_code number(5) primary key, 
    p_name varchar2(50) not null, 
    DOB date(15) not null, 
    p_phone number(30) default null, 
    st varchar2(20) not null, 
    city varchar2(15) not null, 
    state varchar2(15) default null, 
    zip_code number(10) not null, 
    w_code number(5) references ward (w_code) 
) 

它給了我ORA-00907: missing right parenthesis如何使默認爲空在Oracle

+1

默認情況下它的null,你不需要說缺省爲null。 – SMA 2014-12-27 13:48:12

回答

1

在所有數據庫中,某列的默認值是NULL當你離開了not null。所以,你可以寫:

create table patient (
    p_code number(5) not null primary key, 
    p_name varchar2(50) not null, 
    DOB date not null, 
    p_phone number(30), 
    st varchar2(20) not null, 
    city varchar2(15) not null, 
    state varchar2(15), 
    zip_code number(10) not null, 
    w_code number(5) references ward (w_code) 
) 

作爲一個說明。 Oracle還接受用於此目的nulldefault null,所以這些也都是可以接受的:

p_phone number(30) null, 
    p_phone number(30) default null, 

與您的代碼的問題是date(15)date不包含長度參數。

順便說一句,你應該使用字符串而不是數字來存儲電話號碼和郵政編碼。他們可以有前導零。