2015-08-20 91 views
0

我一直在收到一个错误,告诉我插入的值过多,但显然不是这种情况。有谁能够帮助我。这是我的代码。目前,该错误信息是INSERT INTO a2_account VALUES * ERROR位于第1行: ORA-00913:值过多在Oracle Sql中创建表时出错

DROP TABLE a2_loanr; 
    DROP TABLE a2_accr; 
    DROP TABLE a2_customer; 
    DROP TABLE a2_account; 
    DROP TABLE a2_loan; 
    DROP TABLE a2_bankbranch; 
    DROP TABLE a2_bank; 

    CREATE TABLE a2_bank (
      routingcode VARCHAR(200) PRIMARY KEY, 
      name   VARCHAR(200) NOT NULL, 
      address  VARCHAR(200) NOT NULL 
    ); 

    INSERT INTO a2_bank VALUES 
    ('123456',' Stan walker', '3 gladstone rd'); 
    INSERT INTO a2_bank VALUES 
    ('123556',' Sam ben', '5 gladstone rd'); 
    INSERT INTO a2_bank VALUES 
    ('1256',' Stacy talker', '4 gladstone rd'); 


    CREATE TABLE a2_bankbranch (
    branch_num  VARCHAR(200) PRIMARY KEY, 
    name   VARCHAR(200) NOT NULL, 
    address  VARCHAR(200) NOT NULL 
    ); 
    INSERT INTO a2_bankbranch VALUES 
    ('Ben Heir', '5', '3 gladstone rd'); 
    INSERT INTO a2_bankbranch VALUES 
    ('Kane Wen', '4', '28 stevee rd'); 

    CREATE TABLE a2_loan (
    loan_num  VARCHAR(200) PRIMARY KEY, 
    type   VARCHAR(200) NOT NULL, 
    amount   VARCHAR(200) NOT NULL, 
    contract_date DATE   NOT NULL 
    ); 

    INSERT INTO a2_loan VALUES 
    ('323', 'Mortgage', '$2000000', TO_DATE('11-03-1994', 'DD-MM-YYYY')); 
    INSERT INTO a2_loan VALUES 
    ('33', 'Car', '$2000', TO_DATE('12-08-1994', 'DD-MM-YYYY')); 
    INSERT INTO a2_loan VALUES 
    ('3243', 'Pesonal', '$875', TO_DATE('14-06-1994', 'DD-MM-YYYY')); 
    INSERT INTO a2_loan VALUES 
    ('6', 'Mortgage', '$400500', TO_DATE('11-06-1994', 'DD-MM-YYYY')); 

    CREATE TABLE a2_account (
    acc_num  VARCHAR(20) PRIMARY KEY, 
    type   VARCHAR(20) NOT NULL, 
    balance   VARCHAR(10) NOT NULL 
    ); 
    INSERT INTO a2_account VALUES 
    ('2539267332', 'Savings', '20'); 
    INSERT INTO a2_account VALUES 
    ('8237893378', 'Cash', '300'); 
    INSERT INTO a2_account VALUES 
    ('2378723936', 'Cheque', '75'); 

    CREATE TABLE a2_customer (
    ird_num   CHAR(8) PRIMARY KEY, 
    name   VARCHAR(200) NOT NULL, 
    address   VARCHAR(200) NOT NULL, 
    phone   VARCHAR(20) 
    ); 
    INSERT INTO a2_customer VALUES 
    ('25362672', 'Stan Yel', '5 Wanna way', '02010201'); 
    INSERT INTO a2_account VALUES 
    ('83783783', 'Cam Birch', '34 Trada st', '02302020202'); 
    INSERT INTO a2_account VALUES 
    ('23723367', 'Jeff King', '5 Queens st', '38982383'); 
    INSERT INTO a2_account VALUES 
    ('54637822', 'John Smith', '24 Queen st', '38922383'); 


    CREATE TABLE a2_accr (
    ird_num    CHAR(8) NOT NULL UNIQUE, 
    account_num   CHAR(10) NOT NULL UNIQUE 
    ); 
    INSERT INTO a2_accr VALUES 
    ('25362672', '2537626722'); 
    INSERT INTO a2_accr VALUES 
    ('83783783', '8237832783'); 

    CREATE TABLE a2_loanr (
    ird_num    CHAR(8) NOT NULL UNIQUE, 
    loan_num   CHAR(10) NOT NULL UNIQUE 
    ); 
    INSERT INTO a2_loanr VALUES 
    ('54637822', '323'); 
    INSERT INTO a2_loanr VALUES 
    ('23723367', '33'); 

    COMMIT; 
+1

对我来说工作得很好,你运行的是哪个版本的oracle? – davegreen100

+0

这是您正在运行的代码的文字复制粘贴,并且错误消息明确指向此表?在桌子上是否定义了触发器或物化视图? –

+0

Oracle数据库11g版本11.2.0.2.0 - 64位生产 – Val

回答

1

的问题是在INSERTS创建表a2_customer后,看起来你已经复制贴一些INSERTS并没有改变表名

CREATE TABLE a2_customer (
ird_num   CHAR(8) PRIMARY KEY, 
name   VARCHAR(200) NOT NULL, 
address   VARCHAR(200) NOT NULL, 
phone   VARCHAR(20) 
); 
INSERT INTO a2_customer VALUES 
('25362672', 'Stan Yel', '5 Wanna way', '02010201'); 
INSERT INTO a2_account VALUES 
('83783783', 'Cam Birch', '34 Trada st', '02302020202'); 
INSERT INTO a2_account VALUES 
('23723367', 'Jeff King', '5 Queens st', '38982383'); 
INSERT INTO a2_account VALUES 
('54637822', 'John Smith', '24 Queen st', '38922383'); 

应该

CREATE TABLE a2_customer (
ird_num   CHAR(8) PRIMARY KEY, 
name   VARCHAR(200) NOT NULL, 
address   VARCHAR(200) NOT NULL, 
phone   VARCHAR(20) 
); 
INSERT INTO a2_customer VALUES 
('25362672', 'Stan Yel', '5 Wanna way', '02010201'); 
INSERT INTO a2_customer VALUES 
('83783783', 'Cam Birch', '34 Trada st', '02302020202'); 
INSERT INTO a2_customer VALUES 
('23723367', 'Jeff King', '5 Queens st', '38982383'); 
INSERT INTO a2_customer VALUES 
('54637822', 'John Smith', '24 Queen st', '38922383'); 
+0

干杯!真是愚蠢的我! – Val

+0

轻松完成,您能否将答案标记为正确请 – davegreen100

+0

您可以通过不包装插入线来避免此类错误。只需在一行上格式化每条命令,并垂直对齐每条命令的常见元素,并且该错字将作为代码视觉模式中意想不到的差异出现在您身上。 –

0

嗯..

这3条线有4个值和下划线表只能有3列:

INSERT INTO a2_account VALUES 
('83783783', 'Cam Birch', '34 Trada st', '02302020202'); 
INSERT INTO a2_account VALUES 
('23723367', 'Jeff King', '5 Queens st', '38982383'); 
INSERT INTO a2_account VALUES 
('54637822', 'John Smith', '24 Queen st', '38922383'); 

调整这一点,一切都会好起来的。

0

这是你的问题:

CREATE TABLE a2_customer (
    ird_num   CHAR(8) PRIMARY KEY, 
    name   VARCHAR(200) NOT NULL, 
    address   VARCHAR(200) NOT NULL, 
    phone   VARCHAR(20) 
    ); 
    INSERT INTO a2_customer VALUES 
    ('25362672', 'Stan Yel', '5 Wanna way', '02010201'); 
    INSERT INTO a2_account VALUES 
    ('83783783', 'Cam Birch', '34 Trada st', '02302020202'); 
    INSERT INTO a2_account VALUES 
    ('23723367', 'Jeff King', '5 Queens st', '38982383'); 
    INSERT INTO a2_account VALUES 
    ('54637822', 'John Smith', '24 Queen st', '38922383'); 

您创造顾客,然后尝试插入进去。