2015-08-20 89 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'); 

您創造顧客,然後嘗試插入進去。