为什么我在尝试创建表时遇到ORA-00922:丢失或无效选项?

时间:2011-03-12 12:55:11

标签: sql syntax oracle10g

CREATE TABLE form1
  (
     empcid   VARCHAR2(25),
     empname  VARCHAR2(100),
     empid    VARCHAR2(25),
     empdgn   VARCHAR2(50),
     empdob   DATE,
     empadd   VARCHAR2(200),
     empcom   VARCHAR2(15),
     empshare VARCHAR2(10),
     empsdoj  DATE,
     empedoj  DATE,
     constraint pkform1 primary key (empcid, empname, empid, empdgn)
  ); 

CREATE TABLE deposit
  (
     loanid    VARCHAR(25),
     openbal   DECIMAL(20, 3),
     subcrp    DATE,
     subamt    DECIMAL(20, 3),
     totdep    DECIMAL(20, 3),
     subamtint DECIMAL(25, 3),
     cumuint   DECIMAL(20, 3),
     empcid    VARCHAR2(25),
     empname   VARCHAR2(100),
     empid     VARCHAR2(25),
     empdgn    VARCHAR2(50),
     constraint pkedeposit primary key (loanid),
     constraint fkform1 foreign key (empcid, empname, empid, empdgn) references
     form1
  ); 

CREATE TABLE sharecapital
  (
     loanid    VARCHAR2(25),
     empedoj   DATE,
     empshare  VARCHAR2(10),
     shareint  DECIMAL(20, 3),
     loandt    DATE,
     loandeduc VARCHAR2(25),
     dividend  DECIMAL(25, 3),
     sharetot  DECIMAL(25, 3),
     empcid    VARCHAR2(25),
     empname   VARCHAR2(100),
     empid     VARCHAR2(25),
     empdgn    VARCHAR2(50),
     constraint fkdep foreign key(loanid) references deposit),
     constraint fkscform1 foreign key(empcid, empname, empid, empdgn) references
     form1
  ); 

当我执行 sharecapital 表“缺失或无效选项”时显示错误

ORA-00922:缺少或无效选项

我不知道如何纠正它。

1 个答案:

答案 0 :(得分:2)

存在语法错误。

CREATE TABLE sharecapital
  (
     loanid    VARCHAR2(25),
     empedoj   DATE,
     empshare  VARCHAR2(10),
     shareint  DECIMAL(20, 3),
     loandt    DATE,
     loandeduc VARCHAR2(25),
     dividend  DECIMAL(25, 3),
     sharetot  DECIMAL(25, 3),
     empcid    VARCHAR2(25),
     empname   VARCHAR2(100),
     empid     VARCHAR2(25),
     empdgn    VARCHAR2(50),

<强> constraint fkdep foreign key(loanid) references deposit),

     constraint fkscform1 foreign key(empcid, empname, empid, empdgn) references
     form1
  ); 

应该是

CREATE TABLE sharecapital
  (
     loanid    VARCHAR2(25),
     empedoj   DATE,
     empshare  VARCHAR2(10),
     shareint  DECIMAL(20, 3),
     loandt    DATE,
     loandeduc VARCHAR2(25),
     dividend  DECIMAL(25, 3),
     sharetot  DECIMAL(25, 3),
     empcid    VARCHAR2(25),
     empname   VARCHAR2(100),
     empid     VARCHAR2(25),
     empdgn    VARCHAR2(50),

<强> constraint fkdep foreign key(loanid) references deposit,

     constraint fkscform1 foreign key(empcid, empname, empid, empdgn) references
     form1
  );