2016-07-03 29 views
1

當我運行此查詢:在Oracle中的默認值創建一個表列

Create table ACCT_MSTR 
("Acct_no" varchar2 (10) NOT NULL PRIMARY KEY, 
"SF_no" varchar2 (10), 
"LF_no" varchar2 (10), 
"Branch_no" varchar2 (10), 
"Intro_Cust_no" varchar2 (10), 
"Intro_Acct_no" varchar2 (10), 
"Intro_sign" varchar2 (1), 
"Type" Varchar2 (2), 
"Opr_mode" varchar2 (2), 
"Cust_accut_type" varchar2 (4), 
"Title" varchar2 (30), 
"Corp_Cust_no" varchar2 (10), 
"Aplndt" Date, 
"Opendt" Date, 
"Veri_Emp_no" VARCHAR2 (10), 
"Veri_sign" varchar2 (1), 
"Manager_sign" varchar2 (1), 
"Curbal" NUMBER(8,2), 
"Status" varchar2 (1) DEFAULT (A), 
CONSTRAINT Am_Bn_fk FOREIGN KEY("Branch_no") references BRANCH_MSTR ("Branch_no"), 
CONSTRAINT Am_Icn_fk FOREIGN KEY("Intro_Cust_no") references CUST_MSTR ("Cust_no"), 
CONSTRAINT Am_Ian_fk FOREIGN KEY("Intro_Acct_no") references ACCT_MSTR ("Acct_no"), 
CONSTRAINT Am_ccn_fk FOREIGN KEY("Corp_Cust_no") references CUST_MSTR ("Cust_no"), 
CONSTRAINT Am_ven_fk FOREIGN KEY("Veri_Emp_no") references EMP_MSTR ("Emp_no") 
); 

我得到這個錯誤:

SQL Error: ORA-00984: column not allowed here
00984. 00000 - "column not allowed here"

+3

是什麼意思 「狀態」 VARCHAR2(1)DEFAULT(A)?可能是'A'? –

回答

1

的問題是與"Status"的默認值柱。 SQL中的字符串常量用單引號(')表示。沒有它們,裸詞被解釋爲對象名稱,在這種情況下是不允許的。

爲了使長話短說,添加引號爲默認值,你應該確定:

"Status" varchar2 (1) DEFAULT ('A'), 
-- Here -----------------------^-^ 
2

字符串常量需要被封閉在引號。任何沒有引號是一個標識符。

所以A

"Status" varchar2 (1) DEFAULT (A), 

引用一列名爲 'A'。

你想

"Status" varchar2 (1) DEFAULT ('A'),