2016-07-03 1 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

をしたいですか? 「A」かもしれない? –

答えて

1

問題は"Status"のデフォルト値でありますカラム。 SQLの文字列定数は、一重引用符(')で示されます。それらがなければ、裸の単語はオブジェクト名として解釈されますが、この文脈では許可されません。

長い話を短くするために、デフォルト値に引用符を追加し、[OK]を次のようになります。

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

文字列定数は、単一引用符で囲む必要があります。何でも引用符なしの識別子は識別子です。

ので

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

Aは、 'A' という名前の列を参照します。

は、あなたはそれが "ステータス" VARCHAR2(1)DEFAULT(A)をどういう意味

"Status" varchar2 (1) DEFAULT ('A'), 
関連する問題